From be01f8c8e3e09a1c71165640ab722df948c4dfbb Mon Sep 17 00:00:00 2001
From: Michele Calgaro
Date: Mon, 4 Nov 2024 13:01:41 +0900
Subject: rename qmake to tqmake
Signed-off-by: Michele Calgaro
---
.gitignore | 16 +-
MANIFEST | 2 +-
Makefile | 42 +-
config.tests/unix/cups.test | 2 +-
config.tests/unix/nis.test | 2 +-
config.tests/unix/precomp.test | 2 +-
config.tests/x11/opengl.test | 2 +-
config.tests/x11/sm.test | 2 +-
config.tests/x11/xcursor.test | 2 +-
config.tests/x11/xfreetype.test | 2 +-
config.tests/x11/xinerama.test | 2 +-
config.tests/x11/xinput.test | 2 +-
config.tests/x11/xkb.test | 2 +-
config.tests/x11/xrandr.test | 2 +-
config.tests/x11/xrender.test | 2 +-
config.tests/x11/xshape.test | 2 +-
configure | 114 +-
doc/appicon.doc | 10 +-
doc/changes.doc | 8 +-
doc/html/appicon.html | 10 +-
doc/html/assistant-6.html | 2 +-
doc/html/commonproblems.html | 2 +-
doc/html/designer-manual-1.html | 4 +-
doc/html/designer-manual-13.html | 2 +-
doc/html/designer-manual-2.html | 2 +-
doc/html/designer-manual-3.html | 6 +-
doc/html/designer-manual-5.html | 6 +-
doc/html/designer-manual-6.html | 12 +-
doc/html/designer-manual-7.html | 4 +-
doc/html/designer-manual-8.html | 4 +-
doc/html/designer-manual-9.html | 8 +-
doc/html/helpsystem-example.html | 2 +-
doc/html/i18n.html | 4 +-
doc/html/index.html | 2 +-
doc/html/integration.html | 10 +-
doc/html/keyfeatures30.html | 6 +-
doc/html/linguist-manual-2.html | 4 +-
doc/html/linguist-manual-4.html | 8 +-
doc/html/mac-differences.html | 4 +-
doc/html/porting.html | 4 +-
doc/html/qmake-manual-1.html | 45 -
doc/html/qmake-manual-2.html | 52 -
doc/html/qmake-manual-3.html | 93 -
doc/html/qmake-manual-4.html | 173 --
doc/html/qmake-manual-5.html | 114 --
doc/html/qmake-manual-6.html | 241 ---
doc/html/qmake-manual-7.html | 202 --
doc/html/qmake-manual-8.html | 728 -------
doc/html/qmake-manual.html | 49 -
doc/html/qmake.dcf | 11 -
doc/html/qtmac-as-native.html | 8 +-
doc/html/signalsandslots.html | 2 +-
doc/html/sql-driver.html | 46 +-
doc/html/tools-list.html | 2 +-
doc/html/toplevel-example.html | 2 +-
doc/html/tqassistantclient.html | 2 +-
doc/html/tqmake-manual-1.html | 45 +
doc/html/tqmake-manual-2.html | 52 +
doc/html/tqmake-manual-3.html | 93 +
doc/html/tqmake-manual-4.html | 173 ++
doc/html/tqmake-manual-5.html | 114 ++
doc/html/tqmake-manual-6.html | 241 +++
doc/html/tqmake-manual-7.html | 202 ++
doc/html/tqmake-manual-8.html | 728 +++++++
doc/html/tqmake-manual.html | 49 +
doc/html/tqmake.dcf | 11 +
doc/html/tqmoc.html | 4 +-
doc/html/tutorial1-01.html | 8 +-
doc/html/tutorial1-07.html | 6 +-
doc/html/tutorial2-10.html | 4 +-
doc/i18n.doc | 6 +-
doc/indices.doc | 2 +-
doc/integration.doc | 10 +-
doc/mac.doc | 4 +-
doc/man/README | 4 +-
doc/man/man3/tqassistantclient.3qt | 2 +-
doc/misc.doc | 2 +-
doc/porting3.doc | 4 +-
doc/qtmac-as-native.doc | 8 +-
doc/signalsandslots.doc | 2 +-
doc/sql-driver.doc | 46 +-
doc/tools-list.doc | 2 +-
doc/tqmoc.doc | 4 +-
doc/tutorial.doc | 14 +-
doc/tutorial2.doc | 4 +-
examples/helpsystem/helpsystem.doc | 2 +-
examples/tablet/tablet.pro | 2 +-
examples/toplevel/toplevel.doc | 2 +-
mkspecs/aix-g++-64/qmake.conf | 80 -
mkspecs/aix-g++-64/tqmake.conf | 80 +
mkspecs/aix-g++/qmake.conf | 80 -
mkspecs/aix-g++/tqmake.conf | 80 +
mkspecs/aix-xlc-64/qmake.conf | 89 -
mkspecs/aix-xlc-64/tqmake.conf | 89 +
mkspecs/aix-xlc/qmake.conf | 87 -
mkspecs/aix-xlc/tqmake.conf | 87 +
mkspecs/bsdi-g++/qmake.conf | 83 -
mkspecs/bsdi-g++/tqmake.conf | 83 +
mkspecs/cygwin-g++/qmake.conf | 85 -
mkspecs/cygwin-g++/tqmake.conf | 85 +
mkspecs/darwin-g++/qmake.conf | 91 -
mkspecs/darwin-g++/tqmake.conf | 91 +
mkspecs/dgux-g++/qmake.conf | 76 -
mkspecs/dgux-g++/tqmake.conf | 76 +
mkspecs/dilos-g++/qmake.conf | 88 -
mkspecs/dilos-g++/tqmake.conf | 88 +
mkspecs/freebsd-clang/qmake.conf | 81 -
mkspecs/freebsd-clang/tqmake.conf | 81 +
mkspecs/freebsd-g++/qmake.conf | 81 -
mkspecs/freebsd-g++/tqmake.conf | 81 +
mkspecs/freebsd-g++34/qmake.conf | 81 -
mkspecs/freebsd-g++34/tqmake.conf | 81 +
mkspecs/freebsd-icc/qmake.conf | 99 -
mkspecs/freebsd-icc/tqmake.conf | 99 +
mkspecs/hpux-acc-64/qmake.conf | 125 --
mkspecs/hpux-acc-64/tqmake.conf | 125 ++
mkspecs/hpux-acc-o64/qmake.conf | 124 --
mkspecs/hpux-acc-o64/tqmake.conf | 124 ++
mkspecs/hpux-acc/qmake.conf | 104 -
mkspecs/hpux-acc/tqmake.conf | 104 +
mkspecs/hpux-cc/qmake.conf | 99 -
mkspecs/hpux-cc/tqmake.conf | 99 +
mkspecs/hpux-g++-64/qmake.conf | 85 -
mkspecs/hpux-g++-64/tqmake.conf | 85 +
mkspecs/hpux-g++/qmake.conf | 86 -
mkspecs/hpux-g++/tqmake.conf | 86 +
mkspecs/hpuxi-acc-32/qmake.conf | 123 --
mkspecs/hpuxi-acc-32/tqmake.conf | 123 ++
mkspecs/hpuxi-acc-64/qmake.conf | 123 --
mkspecs/hpuxi-acc-64/tqmake.conf | 123 ++
mkspecs/hurd-g++/qmake.conf | 84 -
mkspecs/hurd-g++/tqmake.conf | 84 +
mkspecs/irix-cc-64/qmake.conf | 114 --
mkspecs/irix-cc-64/tqmake.conf | 114 ++
mkspecs/irix-cc-o32/qmake.conf | 88 -
mkspecs/irix-cc-o32/tqmake.conf | 88 +
mkspecs/irix-cc/qmake.conf | 114 --
mkspecs/irix-cc/tqmake.conf | 114 ++
mkspecs/irix-g++/qmake.conf | 85 -
mkspecs/irix-g++/tqmake.conf | 85 +
mkspecs/linux-clang/qmake.conf | 89 -
mkspecs/linux-clang/tqmake.conf | 89 +
mkspecs/linux-cxx/qmake.conf | 78 -
mkspecs/linux-cxx/tqmake.conf | 78 +
mkspecs/linux-ecc-64/qmake.conf | 85 -
mkspecs/linux-ecc-64/tqmake.conf | 85 +
mkspecs/linux-g++-32/qmake.conf | 89 -
mkspecs/linux-g++-32/tqmake.conf | 89 +
mkspecs/linux-g++-64/qmake.conf | 92 -
mkspecs/linux-g++-64/tqmake.conf | 92 +
mkspecs/linux-g++-sparc/qmake.conf | 89 -
mkspecs/linux-g++-sparc/tqmake.conf | 89 +
mkspecs/linux-g++/qmake.conf | 89 -
mkspecs/linux-g++/tqmake.conf | 89 +
mkspecs/linux-icc/qmake.conf | 85 -
mkspecs/linux-icc/tqmake.conf | 85 +
mkspecs/linux-kcc/qmake.conf | 92 -
mkspecs/linux-kcc/tqmake.conf | 92 +
mkspecs/linux-kylix/qmake.conf | 83 -
mkspecs/linux-kylix/tqmake.conf | 83 +
mkspecs/linux-pgcc/qmake.conf | 83 -
mkspecs/linux-pgcc/tqmake.conf | 83 +
mkspecs/lynxos-g++/qmake.conf | 86 -
mkspecs/lynxos-g++/tqmake.conf | 86 +
mkspecs/macx-g++/Info.plist.app | 4 +-
mkspecs/macx-g++/qmake.conf | 89 -
mkspecs/macx-g++/tqmake.conf | 89 +
mkspecs/macx-mwerks/qmake.conf | 23 -
mkspecs/macx-mwerks/tqmake.conf | 23 +
mkspecs/macx-pbuilder/Info.plist.app | 4 +-
mkspecs/macx-pbuilder/qmake.conf | 80 -
mkspecs/macx-pbuilder/tqmake.conf | 80 +
mkspecs/macx-xlc/qmake.conf | 89 -
mkspecs/macx-xlc/tqmake.conf | 89 +
mkspecs/netbsd-g++/qmake.conf | 81 -
mkspecs/netbsd-g++/tqmake.conf | 81 +
mkspecs/openbsd-g++/qmake.conf | 82 -
mkspecs/openbsd-g++/tqmake.conf | 82 +
mkspecs/qnx-g++/qmake.conf | 82 -
mkspecs/qnx-g++/tqmake.conf | 82 +
mkspecs/reliant-cds-64/qmake.conf | 84 -
mkspecs/reliant-cds-64/tqmake.conf | 84 +
mkspecs/reliant-cds/qmake.conf | 84 -
mkspecs/reliant-cds/tqmake.conf | 84 +
mkspecs/sco-cc/qmake.conf | 78 -
mkspecs/sco-cc/tqmake.conf | 78 +
mkspecs/sco-g++/qmake.conf | 75 -
mkspecs/sco-g++/tqmake.conf | 75 +
mkspecs/solaris-cc-64/qmake.conf | 102 -
mkspecs/solaris-cc-64/tqmake.conf | 102 +
mkspecs/solaris-cc/qmake.conf | 85 -
mkspecs/solaris-cc/tqmake.conf | 85 +
mkspecs/solaris-g++-64/qmake.conf | 104 -
mkspecs/solaris-g++-64/tqmake.conf | 104 +
mkspecs/solaris-g++/qmake.conf | 87 -
mkspecs/solaris-g++/tqmake.conf | 87 +
mkspecs/tru64-cxx/qmake.conf | 80 -
mkspecs/tru64-cxx/tqmake.conf | 80 +
mkspecs/tru64-g++/qmake.conf | 80 -
mkspecs/tru64-g++/tqmake.conf | 80 +
mkspecs/unixware-cc/qmake.conf | 85 -
mkspecs/unixware-cc/tqmake.conf | 85 +
mkspecs/unixware-g++/qmake.conf | 82 -
mkspecs/unixware-g++/tqmake.conf | 82 +
mkspecs/win32-g++/qmake.conf | 97 -
mkspecs/win32-g++/tqmake.conf | 97 +
mkspecs/win32-icc/qmake.conf | 105 -
mkspecs/win32-icc/tqmake.conf | 105 +
mkspecs/win32-msvc.net/qmake.conf | 106 -
mkspecs/win32-msvc.net/tqmake.conf | 106 +
mkspecs/win32-msvc/qmake.conf | 105 -
mkspecs/win32-msvc/tqmake.conf | 105 +
mkspecs/win32-msvc2005/qmake.conf | 108 -
mkspecs/win32-msvc2005/tqmake.conf | 108 +
mkspecs/win32-watcom/qmake.conf | 68 -
mkspecs/win32-watcom/tqmake.conf | 68 +
qmake/CHANGES | 68 -
qmake/Makefile.unix | 214 --
qmake/Makefile.win32-g++ | 197 --
qmake/book/qmake-advanced.leaf | 401 ----
qmake/book/qmake-commandreference.leaf | 2132 --------------------
qmake/book/qmake-concepts.leaf | 187 --
qmake/book/qmake-install.leaf | 46 -
qmake/book/qmake-manual.book | 12 -
qmake/book/qmake-pch.leaf | 136 --
qmake/book/qmake-preface.leaf | 18 -
qmake/book/qmake-quick.leaf | 114 --
qmake/book/qmake-tutorial.leaf | 239 ---
qmake/examples/precompile/main.cpp | 18 -
qmake/examples/precompile/mydialog.ui | 29 -
qmake/examples/precompile/myobject.cpp | 14 -
qmake/examples/precompile/myobject.h | 8 -
qmake/examples/precompile/precompile.pro | 19 -
qmake/examples/precompile/stable.h | 10 -
qmake/examples/precompile/util.cpp | 7 -
qmake/examples/tutorial/hello.cpp | 7 -
qmake/examples/tutorial/hello.h | 7 -
qmake/examples/tutorial/hellounix.cpp | 2 -
qmake/examples/tutorial/hellowin.cpp | 2 -
qmake/examples/tutorial/main.cpp | 14 -
qmake/generators/mac/metrowerks_xml.cpp | 822 --------
qmake/generators/mac/metrowerks_xml.h | 71 -
qmake/generators/mac/pbuilder_pbx.cpp | 1428 --------------
qmake/generators/mac/pbuilder_pbx.h | 75 -
qmake/generators/makefile.cpp | 2488 ------------------------
qmake/generators/makefile.h | 193 --
qmake/generators/projectgenerator.cpp | 491 -----
qmake/generators/projectgenerator.h | 62 -
qmake/generators/unix/unixmake.cpp | 878 ---------
qmake/generators/unix/unixmake.h | 85 -
qmake/generators/unix/unixmake2.cpp | 1624 ----------------
qmake/generators/win32/mingw_make.cpp | 689 -------
qmake/generators/win32/mingw_make.h | 64 -
qmake/generators/win32/msvc_dsp.cpp | 1092 -----------
qmake/generators/win32/msvc_dsp.h | 79 -
qmake/generators/win32/msvc_nmake.cpp | 765 --------
qmake/generators/win32/msvc_nmake.h | 67 -
qmake/generators/win32/msvc_objectmodel.cpp | 2226 ---------------------
qmake/generators/win32/msvc_objectmodel.h | 801 --------
qmake/generators/win32/msvc_vcproj.cpp | 1455 --------------
qmake/generators/win32/msvc_vcproj.h | 122 --
qmake/generators/win32/winmakefile.cpp | 487 -----
qmake/generators/win32/winmakefile.h | 75 -
qmake/main.cpp | 193 --
qmake/meta.cpp | 195 --
qmake/meta.h | 96 -
qmake/option.cpp | 548 ------
qmake/option.h | 137 --
qmake/project.cpp | 1397 -------------
qmake/project.h | 124 --
qmake/property.cpp | 189 --
qmake/property.h | 63 -
qmake/qtmd5.cpp | 304 ---
qmake/qtmd5.h | 11 -
src/qt.pro | 2 +-
src/sql/drivers/mysql/tqsql_mysql.cpp | 20 +-
src/sql/drivers/odbc/tqsql_odbc.cpp | 32 +-
src/sql/drivers/psql/tqsql_psql.cpp | 14 +-
src/sql/drivers/sqlite3/tqsql_sqlite3.cpp | 10 +-
src/tools/tqfile.cpp | 2 +-
tools/assistant/book/assistant.leaf | 2 +-
tools/assistant/config.cpp | 2 +-
tools/assistant/lib/tqassistantclient.cpp | 2 +-
tools/assistant/profile.cpp | 6 +-
tools/designer/designer/designer.pro | 2 +-
tools/designer/editor/yyindent.cpp | 2 +-
tools/designer/tools/tqtconv2ui/tqtconv2ui.pro | 2 +-
tools/designer/tquic/form.cpp | 2 +-
tools/linguist/book/linguist-manager.leaf | 6 +-
tools/linguist/book/linguist-programmer.leaf | 8 +-
tools/linguist/lupdate/fetchtr.cpp | 2 +-
tools/linguist/shared/proparser.cpp | 2 +-
tqmake/CHANGES | 68 +
tqmake/Makefile.unix | 214 ++
tqmake/Makefile.win32-g++ | 197 ++
tqmake/book/tqmake-advanced.leaf | 401 ++++
tqmake/book/tqmake-commandreference.leaf | 2132 ++++++++++++++++++++
tqmake/book/tqmake-concepts.leaf | 187 ++
tqmake/book/tqmake-install.leaf | 46 +
tqmake/book/tqmake-manual.book | 12 +
tqmake/book/tqmake-pch.leaf | 136 ++
tqmake/book/tqmake-preface.leaf | 18 +
tqmake/book/tqmake-quick.leaf | 114 ++
tqmake/book/tqmake-tutorial.leaf | 239 +++
tqmake/examples/precompile/main.cpp | 18 +
tqmake/examples/precompile/mydialog.ui | 29 +
tqmake/examples/precompile/myobject.cpp | 14 +
tqmake/examples/precompile/myobject.h | 8 +
tqmake/examples/precompile/precompile.pro | 19 +
tqmake/examples/precompile/stable.h | 10 +
tqmake/examples/precompile/util.cpp | 7 +
tqmake/examples/tutorial/hello.cpp | 7 +
tqmake/examples/tutorial/hello.h | 7 +
tqmake/examples/tutorial/hellounix.cpp | 2 +
tqmake/examples/tutorial/hellowin.cpp | 2 +
tqmake/examples/tutorial/main.cpp | 14 +
tqmake/generators/mac/metrowerks_xml.cpp | 822 ++++++++
tqmake/generators/mac/metrowerks_xml.h | 71 +
tqmake/generators/mac/pbuilder_pbx.cpp | 1428 ++++++++++++++
tqmake/generators/mac/pbuilder_pbx.h | 75 +
tqmake/generators/makefile.cpp | 2488 ++++++++++++++++++++++++
tqmake/generators/makefile.h | 193 ++
tqmake/generators/projectgenerator.cpp | 491 +++++
tqmake/generators/projectgenerator.h | 62 +
tqmake/generators/unix/unixmake.cpp | 878 +++++++++
tqmake/generators/unix/unixmake.h | 85 +
tqmake/generators/unix/unixmake2.cpp | 1624 ++++++++++++++++
tqmake/generators/win32/mingw_make.cpp | 689 +++++++
tqmake/generators/win32/mingw_make.h | 64 +
tqmake/generators/win32/msvc_dsp.cpp | 1092 +++++++++++
tqmake/generators/win32/msvc_dsp.h | 79 +
tqmake/generators/win32/msvc_nmake.cpp | 765 ++++++++
tqmake/generators/win32/msvc_nmake.h | 67 +
tqmake/generators/win32/msvc_objectmodel.cpp | 2226 +++++++++++++++++++++
tqmake/generators/win32/msvc_objectmodel.h | 801 ++++++++
tqmake/generators/win32/msvc_vcproj.cpp | 1455 ++++++++++++++
tqmake/generators/win32/msvc_vcproj.h | 122 ++
tqmake/generators/win32/winmakefile.cpp | 487 +++++
tqmake/generators/win32/winmakefile.h | 75 +
tqmake/main.cpp | 193 ++
tqmake/meta.cpp | 195 ++
tqmake/meta.h | 96 +
tqmake/option.cpp | 548 ++++++
tqmake/option.h | 137 ++
tqmake/project.cpp | 1397 +++++++++++++
tqmake/project.h | 124 ++
tqmake/property.cpp | 189 ++
tqmake/property.h | 63 +
tqmake/qtmd5.cpp | 304 +++
tqmake/qtmd5.h | 11 +
350 files changed, 30968 insertions(+), 30968 deletions(-)
delete mode 100644 doc/html/qmake-manual-1.html
delete mode 100644 doc/html/qmake-manual-2.html
delete mode 100644 doc/html/qmake-manual-3.html
delete mode 100644 doc/html/qmake-manual-4.html
delete mode 100644 doc/html/qmake-manual-5.html
delete mode 100644 doc/html/qmake-manual-6.html
delete mode 100644 doc/html/qmake-manual-7.html
delete mode 100644 doc/html/qmake-manual-8.html
delete mode 100644 doc/html/qmake-manual.html
delete mode 100644 doc/html/qmake.dcf
create mode 100644 doc/html/tqmake-manual-1.html
create mode 100644 doc/html/tqmake-manual-2.html
create mode 100644 doc/html/tqmake-manual-3.html
create mode 100644 doc/html/tqmake-manual-4.html
create mode 100644 doc/html/tqmake-manual-5.html
create mode 100644 doc/html/tqmake-manual-6.html
create mode 100644 doc/html/tqmake-manual-7.html
create mode 100644 doc/html/tqmake-manual-8.html
create mode 100644 doc/html/tqmake-manual.html
create mode 100644 doc/html/tqmake.dcf
delete mode 100644 mkspecs/aix-g++-64/qmake.conf
create mode 100644 mkspecs/aix-g++-64/tqmake.conf
delete mode 100644 mkspecs/aix-g++/qmake.conf
create mode 100644 mkspecs/aix-g++/tqmake.conf
delete mode 100644 mkspecs/aix-xlc-64/qmake.conf
create mode 100644 mkspecs/aix-xlc-64/tqmake.conf
delete mode 100644 mkspecs/aix-xlc/qmake.conf
create mode 100644 mkspecs/aix-xlc/tqmake.conf
delete mode 100644 mkspecs/bsdi-g++/qmake.conf
create mode 100644 mkspecs/bsdi-g++/tqmake.conf
delete mode 100644 mkspecs/cygwin-g++/qmake.conf
create mode 100644 mkspecs/cygwin-g++/tqmake.conf
delete mode 100644 mkspecs/darwin-g++/qmake.conf
create mode 100644 mkspecs/darwin-g++/tqmake.conf
delete mode 100644 mkspecs/dgux-g++/qmake.conf
create mode 100644 mkspecs/dgux-g++/tqmake.conf
delete mode 100644 mkspecs/dilos-g++/qmake.conf
create mode 100644 mkspecs/dilos-g++/tqmake.conf
delete mode 100644 mkspecs/freebsd-clang/qmake.conf
create mode 100644 mkspecs/freebsd-clang/tqmake.conf
delete mode 100644 mkspecs/freebsd-g++/qmake.conf
create mode 100644 mkspecs/freebsd-g++/tqmake.conf
delete mode 100644 mkspecs/freebsd-g++34/qmake.conf
create mode 100644 mkspecs/freebsd-g++34/tqmake.conf
delete mode 100644 mkspecs/freebsd-icc/qmake.conf
create mode 100644 mkspecs/freebsd-icc/tqmake.conf
delete mode 100644 mkspecs/hpux-acc-64/qmake.conf
create mode 100644 mkspecs/hpux-acc-64/tqmake.conf
delete mode 100644 mkspecs/hpux-acc-o64/qmake.conf
create mode 100644 mkspecs/hpux-acc-o64/tqmake.conf
delete mode 100644 mkspecs/hpux-acc/qmake.conf
create mode 100644 mkspecs/hpux-acc/tqmake.conf
delete mode 100644 mkspecs/hpux-cc/qmake.conf
create mode 100644 mkspecs/hpux-cc/tqmake.conf
delete mode 100644 mkspecs/hpux-g++-64/qmake.conf
create mode 100644 mkspecs/hpux-g++-64/tqmake.conf
delete mode 100644 mkspecs/hpux-g++/qmake.conf
create mode 100644 mkspecs/hpux-g++/tqmake.conf
delete mode 100644 mkspecs/hpuxi-acc-32/qmake.conf
create mode 100644 mkspecs/hpuxi-acc-32/tqmake.conf
delete mode 100644 mkspecs/hpuxi-acc-64/qmake.conf
create mode 100644 mkspecs/hpuxi-acc-64/tqmake.conf
delete mode 100644 mkspecs/hurd-g++/qmake.conf
create mode 100644 mkspecs/hurd-g++/tqmake.conf
delete mode 100644 mkspecs/irix-cc-64/qmake.conf
create mode 100644 mkspecs/irix-cc-64/tqmake.conf
delete mode 100644 mkspecs/irix-cc-o32/qmake.conf
create mode 100644 mkspecs/irix-cc-o32/tqmake.conf
delete mode 100644 mkspecs/irix-cc/qmake.conf
create mode 100644 mkspecs/irix-cc/tqmake.conf
delete mode 100644 mkspecs/irix-g++/qmake.conf
create mode 100644 mkspecs/irix-g++/tqmake.conf
delete mode 100644 mkspecs/linux-clang/qmake.conf
create mode 100644 mkspecs/linux-clang/tqmake.conf
delete mode 100644 mkspecs/linux-cxx/qmake.conf
create mode 100644 mkspecs/linux-cxx/tqmake.conf
delete mode 100644 mkspecs/linux-ecc-64/qmake.conf
create mode 100644 mkspecs/linux-ecc-64/tqmake.conf
delete mode 100644 mkspecs/linux-g++-32/qmake.conf
create mode 100644 mkspecs/linux-g++-32/tqmake.conf
delete mode 100644 mkspecs/linux-g++-64/qmake.conf
create mode 100644 mkspecs/linux-g++-64/tqmake.conf
delete mode 100644 mkspecs/linux-g++-sparc/qmake.conf
create mode 100644 mkspecs/linux-g++-sparc/tqmake.conf
delete mode 100644 mkspecs/linux-g++/qmake.conf
create mode 100644 mkspecs/linux-g++/tqmake.conf
delete mode 100644 mkspecs/linux-icc/qmake.conf
create mode 100644 mkspecs/linux-icc/tqmake.conf
delete mode 100644 mkspecs/linux-kcc/qmake.conf
create mode 100644 mkspecs/linux-kcc/tqmake.conf
delete mode 100644 mkspecs/linux-kylix/qmake.conf
create mode 100644 mkspecs/linux-kylix/tqmake.conf
delete mode 100644 mkspecs/linux-pgcc/qmake.conf
create mode 100644 mkspecs/linux-pgcc/tqmake.conf
delete mode 100644 mkspecs/lynxos-g++/qmake.conf
create mode 100644 mkspecs/lynxos-g++/tqmake.conf
delete mode 100644 mkspecs/macx-g++/qmake.conf
create mode 100644 mkspecs/macx-g++/tqmake.conf
delete mode 100644 mkspecs/macx-mwerks/qmake.conf
create mode 100644 mkspecs/macx-mwerks/tqmake.conf
delete mode 100644 mkspecs/macx-pbuilder/qmake.conf
create mode 100644 mkspecs/macx-pbuilder/tqmake.conf
delete mode 100644 mkspecs/macx-xlc/qmake.conf
create mode 100644 mkspecs/macx-xlc/tqmake.conf
delete mode 100644 mkspecs/netbsd-g++/qmake.conf
create mode 100644 mkspecs/netbsd-g++/tqmake.conf
delete mode 100644 mkspecs/openbsd-g++/qmake.conf
create mode 100644 mkspecs/openbsd-g++/tqmake.conf
delete mode 100644 mkspecs/qnx-g++/qmake.conf
create mode 100644 mkspecs/qnx-g++/tqmake.conf
delete mode 100644 mkspecs/reliant-cds-64/qmake.conf
create mode 100644 mkspecs/reliant-cds-64/tqmake.conf
delete mode 100644 mkspecs/reliant-cds/qmake.conf
create mode 100644 mkspecs/reliant-cds/tqmake.conf
delete mode 100644 mkspecs/sco-cc/qmake.conf
create mode 100644 mkspecs/sco-cc/tqmake.conf
delete mode 100644 mkspecs/sco-g++/qmake.conf
create mode 100644 mkspecs/sco-g++/tqmake.conf
delete mode 100644 mkspecs/solaris-cc-64/qmake.conf
create mode 100644 mkspecs/solaris-cc-64/tqmake.conf
delete mode 100644 mkspecs/solaris-cc/qmake.conf
create mode 100644 mkspecs/solaris-cc/tqmake.conf
delete mode 100644 mkspecs/solaris-g++-64/qmake.conf
create mode 100644 mkspecs/solaris-g++-64/tqmake.conf
delete mode 100644 mkspecs/solaris-g++/qmake.conf
create mode 100644 mkspecs/solaris-g++/tqmake.conf
delete mode 100644 mkspecs/tru64-cxx/qmake.conf
create mode 100644 mkspecs/tru64-cxx/tqmake.conf
delete mode 100644 mkspecs/tru64-g++/qmake.conf
create mode 100644 mkspecs/tru64-g++/tqmake.conf
delete mode 100644 mkspecs/unixware-cc/qmake.conf
create mode 100644 mkspecs/unixware-cc/tqmake.conf
delete mode 100644 mkspecs/unixware-g++/qmake.conf
create mode 100644 mkspecs/unixware-g++/tqmake.conf
delete mode 100644 mkspecs/win32-g++/qmake.conf
create mode 100644 mkspecs/win32-g++/tqmake.conf
delete mode 100644 mkspecs/win32-icc/qmake.conf
create mode 100644 mkspecs/win32-icc/tqmake.conf
delete mode 100644 mkspecs/win32-msvc.net/qmake.conf
create mode 100644 mkspecs/win32-msvc.net/tqmake.conf
delete mode 100644 mkspecs/win32-msvc/qmake.conf
create mode 100644 mkspecs/win32-msvc/tqmake.conf
delete mode 100644 mkspecs/win32-msvc2005/qmake.conf
create mode 100644 mkspecs/win32-msvc2005/tqmake.conf
delete mode 100644 mkspecs/win32-watcom/qmake.conf
create mode 100644 mkspecs/win32-watcom/tqmake.conf
delete mode 100644 qmake/CHANGES
delete mode 100644 qmake/Makefile.unix
delete mode 100644 qmake/Makefile.win32-g++
delete mode 100644 qmake/book/qmake-advanced.leaf
delete mode 100644 qmake/book/qmake-commandreference.leaf
delete mode 100644 qmake/book/qmake-concepts.leaf
delete mode 100644 qmake/book/qmake-install.leaf
delete mode 100644 qmake/book/qmake-manual.book
delete mode 100644 qmake/book/qmake-pch.leaf
delete mode 100644 qmake/book/qmake-preface.leaf
delete mode 100644 qmake/book/qmake-quick.leaf
delete mode 100644 qmake/book/qmake-tutorial.leaf
delete mode 100644 qmake/examples/precompile/main.cpp
delete mode 100644 qmake/examples/precompile/mydialog.ui
delete mode 100644 qmake/examples/precompile/myobject.cpp
delete mode 100644 qmake/examples/precompile/myobject.h
delete mode 100644 qmake/examples/precompile/precompile.pro
delete mode 100644 qmake/examples/precompile/stable.h
delete mode 100644 qmake/examples/precompile/util.cpp
delete mode 100644 qmake/examples/tutorial/hello.cpp
delete mode 100644 qmake/examples/tutorial/hello.h
delete mode 100644 qmake/examples/tutorial/hellounix.cpp
delete mode 100644 qmake/examples/tutorial/hellowin.cpp
delete mode 100644 qmake/examples/tutorial/main.cpp
delete mode 100644 qmake/generators/mac/metrowerks_xml.cpp
delete mode 100644 qmake/generators/mac/metrowerks_xml.h
delete mode 100644 qmake/generators/mac/pbuilder_pbx.cpp
delete mode 100644 qmake/generators/mac/pbuilder_pbx.h
delete mode 100644 qmake/generators/makefile.cpp
delete mode 100644 qmake/generators/makefile.h
delete mode 100644 qmake/generators/projectgenerator.cpp
delete mode 100644 qmake/generators/projectgenerator.h
delete mode 100644 qmake/generators/unix/unixmake.cpp
delete mode 100644 qmake/generators/unix/unixmake.h
delete mode 100644 qmake/generators/unix/unixmake2.cpp
delete mode 100644 qmake/generators/win32/mingw_make.cpp
delete mode 100644 qmake/generators/win32/mingw_make.h
delete mode 100644 qmake/generators/win32/msvc_dsp.cpp
delete mode 100644 qmake/generators/win32/msvc_dsp.h
delete mode 100644 qmake/generators/win32/msvc_nmake.cpp
delete mode 100644 qmake/generators/win32/msvc_nmake.h
delete mode 100644 qmake/generators/win32/msvc_objectmodel.cpp
delete mode 100644 qmake/generators/win32/msvc_objectmodel.h
delete mode 100644 qmake/generators/win32/msvc_vcproj.cpp
delete mode 100644 qmake/generators/win32/msvc_vcproj.h
delete mode 100644 qmake/generators/win32/winmakefile.cpp
delete mode 100644 qmake/generators/win32/winmakefile.h
delete mode 100644 qmake/main.cpp
delete mode 100644 qmake/meta.cpp
delete mode 100644 qmake/meta.h
delete mode 100644 qmake/option.cpp
delete mode 100644 qmake/option.h
delete mode 100644 qmake/project.cpp
delete mode 100644 qmake/project.h
delete mode 100644 qmake/property.cpp
delete mode 100644 qmake/property.h
delete mode 100644 qmake/qtmd5.cpp
delete mode 100644 qmake/qtmd5.h
create mode 100644 tqmake/CHANGES
create mode 100644 tqmake/Makefile.unix
create mode 100644 tqmake/Makefile.win32-g++
create mode 100644 tqmake/book/tqmake-advanced.leaf
create mode 100644 tqmake/book/tqmake-commandreference.leaf
create mode 100644 tqmake/book/tqmake-concepts.leaf
create mode 100644 tqmake/book/tqmake-install.leaf
create mode 100644 tqmake/book/tqmake-manual.book
create mode 100644 tqmake/book/tqmake-pch.leaf
create mode 100644 tqmake/book/tqmake-preface.leaf
create mode 100644 tqmake/book/tqmake-quick.leaf
create mode 100644 tqmake/book/tqmake-tutorial.leaf
create mode 100644 tqmake/examples/precompile/main.cpp
create mode 100644 tqmake/examples/precompile/mydialog.ui
create mode 100644 tqmake/examples/precompile/myobject.cpp
create mode 100644 tqmake/examples/precompile/myobject.h
create mode 100644 tqmake/examples/precompile/precompile.pro
create mode 100644 tqmake/examples/precompile/stable.h
create mode 100644 tqmake/examples/precompile/util.cpp
create mode 100644 tqmake/examples/tutorial/hello.cpp
create mode 100644 tqmake/examples/tutorial/hello.h
create mode 100644 tqmake/examples/tutorial/hellounix.cpp
create mode 100644 tqmake/examples/tutorial/hellowin.cpp
create mode 100644 tqmake/examples/tutorial/main.cpp
create mode 100644 tqmake/generators/mac/metrowerks_xml.cpp
create mode 100644 tqmake/generators/mac/metrowerks_xml.h
create mode 100644 tqmake/generators/mac/pbuilder_pbx.cpp
create mode 100644 tqmake/generators/mac/pbuilder_pbx.h
create mode 100644 tqmake/generators/makefile.cpp
create mode 100644 tqmake/generators/makefile.h
create mode 100644 tqmake/generators/projectgenerator.cpp
create mode 100644 tqmake/generators/projectgenerator.h
create mode 100644 tqmake/generators/unix/unixmake.cpp
create mode 100644 tqmake/generators/unix/unixmake.h
create mode 100644 tqmake/generators/unix/unixmake2.cpp
create mode 100644 tqmake/generators/win32/mingw_make.cpp
create mode 100644 tqmake/generators/win32/mingw_make.h
create mode 100644 tqmake/generators/win32/msvc_dsp.cpp
create mode 100644 tqmake/generators/win32/msvc_dsp.h
create mode 100644 tqmake/generators/win32/msvc_nmake.cpp
create mode 100644 tqmake/generators/win32/msvc_nmake.h
create mode 100644 tqmake/generators/win32/msvc_objectmodel.cpp
create mode 100644 tqmake/generators/win32/msvc_objectmodel.h
create mode 100644 tqmake/generators/win32/msvc_vcproj.cpp
create mode 100644 tqmake/generators/win32/msvc_vcproj.h
create mode 100644 tqmake/generators/win32/winmakefile.cpp
create mode 100644 tqmake/generators/win32/winmakefile.h
create mode 100644 tqmake/main.cpp
create mode 100644 tqmake/meta.cpp
create mode 100644 tqmake/meta.h
create mode 100644 tqmake/option.cpp
create mode 100644 tqmake/option.h
create mode 100644 tqmake/project.cpp
create mode 100644 tqmake/project.h
create mode 100644 tqmake/property.cpp
create mode 100644 tqmake/property.h
create mode 100644 tqmake/qtmd5.cpp
create mode 100644 tqmake/qtmd5.h
diff --git a/.gitignore b/.gitignore
index cdb998c83..581a73bf3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,7 +86,7 @@ Makefile
/examples/network/ftpclient/ftpclient
/examples/network/ftpclient/ftpmainwindow.cpp
/examples/network/ftpclient/ftpmainwindow.h
-/examples/network/ftpclient/qmake_image_collection.cpp
+/examples/network/ftpclient/tqmake_image_collection.cpp
/examples/network/httpd/httpd
/examples/network/infoprotocol/infoclient/clientbase.cpp
/examples/network/infoprotocol/infoclient/clientbase.h
@@ -165,7 +165,7 @@ Makefile
/examples/tablet/tabletstatsbase.cpp
/examples/tablet/tabletstatsbase.h
/examples/tetrix/tetrix
-/examples/textedit/qmake_image_collection.cpp
+/examples/textedit/tqmake_image_collection.cpp
/examples/textedit/textedit
/examples/themes/themes
/examples/thread/prodcons/prodcons
@@ -190,7 +190,7 @@ Makefile
/plugins/inputmethods/
/plugins/sqldrivers/
/plugins/styles/
-/qmake/tqmake
+/tqmake/tqmake
/src/tools/tqconfig.cpp
/tools/assistant/finddialog.cpp
/tools/assistant/finddialog.h
@@ -198,7 +198,7 @@ Makefile
/tools/assistant/helpdialog.h
/tools/assistant/mainwindow.cpp
/tools/assistant/mainwindow.h
-/tools/assistant/qmake_image_collection.cpp
+/tools/assistant/tqmake_image_collection.cpp
/tools/assistant/settingsdialog.cpp
/tools/assistant/settingsdialog.h
/tools/assistant/tabbedbrowser.cpp
@@ -258,7 +258,7 @@ Makefile
/tools/designer/designer/previewwidget.h
/tools/designer/designer/projectsettings.cpp
/tools/designer/designer/projectsettings.h
-/tools/designer/designer/qmake_image_collection.cpp
+/tools/designer/designer/tqmake_image_collection.cpp
/tools/designer/designer/replacedialog.cpp
/tools/designer/designer/replacedialog.h
/tools/designer/designer/richtextfontdialog.cpp
@@ -280,13 +280,13 @@ Makefile
/tools/designer/plugins/cppeditor/projectsettings.h
/tools/designer/plugins/wizards/mainwindowwizard.cpp
/tools/designer/plugins/wizards/mainwindowwizard.h
-/tools/designer/plugins/wizards/qmake_image_collection.cpp
+/tools/designer/plugins/wizards/tqmake_image_collection.cpp
/tools/designer/plugins/wizards/sqlformwizard.cpp
/tools/designer/plugins/wizards/sqlformwizard.h
/tools/designer/tools/tqtcreatecw/tqtcreatecw
/tools/linguist/linguist/about.cpp
/tools/linguist/linguist/about.h
-/tools/linguist/linguist/qmake_image_collection.cpp
+/tools/linguist/linguist/tqmake_image_collection.cpp
/tools/linguist/linguist/statistics.cpp
/tools/linguist/linguist/statistics.h
/tools/linguist/linguist/tqlinguist.png
@@ -302,6 +302,6 @@ Makefile
/tools/qtconfig/paletteeditoradvancedbase.h
/tools/qtconfig/previewwidgetbase.cpp
/tools/qtconfig/previewwidgetbase.h
-/tools/qtconfig/qmake_image_collection.cpp
+/tools/qtconfig/tqmake_image_collection.cpp
/tools/qtconfig/tqtconfig.png
/tools/tqtmergetr/tqtmergetr
diff --git a/MANIFEST b/MANIFEST
index c000748d9..25c72ab1e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -15,7 +15,7 @@ include TQt include files
lib Place for the TQt libraries
mkspecs Platform/compiler configuration files
plugins TQt plugins
-qmake TQt build system
+tqmake TQt build system
src TQt library source code
tools TQt tools source code
tutorial TQt tutorial source code
diff --git a/Makefile b/Makefile
index ce6f2f7ec..bdfaa0624 100644
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@ uninstall: FORCE
install: FORCE
@$(MAKE) qt.install
-all: symlinks src-qmake src-tqmoc sub-src sub-tools sub-tutorial sub-examples
+all: symlinks src-tqmake src-tqmoc sub-src sub-tools sub-tutorial sub-examples
@echo
@echo "The TQt library is now built in ./lib"
@echo "The TQt examples are built in the directories in ./examples"
@@ -20,35 +20,35 @@ all: symlinks src-qmake src-tqmoc sub-src sub-tools sub-tutorial sub-examples
@echo "Enjoy! - the Trolltech team"
@echo
-qt.install: qmake-install tqmoc-install src-install tools-install plugins-install
-qt.uninstall: qmake-uninstall tqmoc-uninstall src-uninstall tools-uninstall plugins-uninstall
+qt.install: tqmake-install tqmoc-install src-install tools-install plugins-install
+qt.uninstall: tqmake-uninstall tqmoc-uninstall src-uninstall tools-uninstall plugins-uninstall
#tqmoc
-tqmoc-uninstall: .qmake.cache
+tqmoc-uninstall: .tqmake.cache
cd src/tqmoc && $(MAKE) uninstall
tqmoc-install: src-tqmoc
cd src/tqmoc && $(MAKE) install
-src-tqmoc: src-qmake FORCE
+src-tqmoc: src-tqmake FORCE
cd src/tqmoc && $(MAKE)
#Qt
-src-uninstall: .qmake.cache
+src-uninstall: .tqmake.cache
cd src && $(MAKE) uninstall
src-install: sub-src
cd src && $(MAKE) install
-sub-src: src-tqmoc .qmake.cache FORCE
+sub-src: src-tqmoc .tqmake.cache FORCE
cd src && $(MAKE)
-#qmake
-qmake-uninstall: .qmake.cache
- cd qmake && $(MAKE) uninstall
-qmake-install: src-qmake
- cd qmake && $(MAKE) install
-src-qmake: symlinks FORCE
- cd qmake && $(MAKE)
+#tqmake
+tqmake-uninstall: .tqmake.cache
+ cd tqmake && $(MAKE) uninstall
+tqmake-install: src-tqmake
+ cd tqmake && $(MAKE) install
+src-tqmake: symlinks FORCE
+ cd tqmake && $(MAKE)
#tools
-tools-uninstall: .qmake.cache
+tools-uninstall: .tqmake.cache
cd tools && $(MAKE) uninstall
tools-install: sub-tools
cd tools && $(MAKE) install
@@ -56,11 +56,11 @@ sub-tools: sub-plugins FORCE
cd tools && $(MAKE)
#plugins
-plugins-uninstall: .qmake.cache
+plugins-uninstall: .tqmake.cache
cd plugins/src && $(MAKE) uninstall
plugins-install: sub-plugins
cd plugins/src && $(MAKE) install
-sub-plugins: sub-src .qmake.cache FORCE
+sub-plugins: sub-src .tqmake.cache FORCE
cd plugins/src && $(MAKE)
#tutorials
@@ -75,7 +75,7 @@ sub-examples: sub-tools FORCE
doc: FORCE
qdoc util/qdoc/qdoc.conf
-symlinks: .qmake.cache
+symlinks: .tqmake.cache
# @cd include && rm -f q*.h; ln -s ../src/*/q*.h .; ln -s ../extensions/*/src/q*.h .; rm -f q*_p.h
distclean clean uiclean mocclean:
@@ -91,9 +91,9 @@ distclean clean uiclean mocclean:
cd config.tests/unix/largefile && $(MAKE) distclean
cd config.tests/unix/ptrsize && $(MAKE) distclean
[ ! -f config.tests/x11/notype/Makefile ] || cd config.tests/x11/notype && $(MAKE) $@
- cd qmake && $(MAKE) $@
+ cd tqmake && $(MAKE) $@
-#confclean is actually the same as distclean, except qmake and tqmoc
+#confclean is actually the same as distclean, except tqmake and tqmoc
#are not cleaned.
confclean:
cd tools && $(MAKE) distclean
@@ -108,7 +108,7 @@ confclean:
cd config.tests/unix/ptrsize && $(MAKE) distclean
[ ! -f config.tests/x11/notype/Makefile ] || cd config.tests/x11/notype && $(MAKE) distclean
-.qmake.cache:
+.tqmake.cache:
@echo
@echo ' TQt must first be configured using the "configure" script.'
@echo
diff --git a/config.tests/unix/cups.test b/config.tests/unix/cups.test
index 55f5aeee7..a172d7f78 100755
--- a/config.tests/unix/cups.test
+++ b/config.tests/unix/cups.test
@@ -2,7 +2,7 @@
CUPS=yes
XPLATFORM=`basename $1`
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_INCDIRS=""
diff --git a/config.tests/unix/nis.test b/config.tests/unix/nis.test
index 21f9f89c9..922dca032 100755
--- a/config.tests/unix/nis.test
+++ b/config.tests/unix/nis.test
@@ -2,7 +2,7 @@
NIS=yes
XPLATFORM=`basename $1`
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_INCDIRS=""
diff --git a/config.tests/unix/precomp.test b/config.tests/unix/precomp.test
index 1a553d352..bffc9ccfd 100755
--- a/config.tests/unix/precomp.test
+++ b/config.tests/unix/precomp.test
@@ -2,7 +2,7 @@
PRECOMP_SUPPORT=no
XPLATFORM=`basename $1`
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
>precomp_header.h
diff --git a/config.tests/x11/opengl.test b/config.tests/x11/opengl.test
index 74cd29535..53f3754bd 100755
--- a/config.tests/x11/opengl.test
+++ b/config.tests/x11/opengl.test
@@ -1,7 +1,7 @@
#!/bin/sh
OPENGL=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
THREAD=$2
VERBOSE=$3
shift 3
diff --git a/config.tests/x11/sm.test b/config.tests/x11/sm.test
index ad99d0e70..361744612 100755
--- a/config.tests/x11/sm.test
+++ b/config.tests/x11/sm.test
@@ -1,7 +1,7 @@
#!/bin/sh
SM=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_INCDIRS=""
diff --git a/config.tests/x11/xcursor.test b/config.tests/x11/xcursor.test
index 514e33ca9..8a2375d5b 100755
--- a/config.tests/x11/xcursor.test
+++ b/config.tests/x11/xcursor.test
@@ -1,7 +1,7 @@
#!/bin/sh
XCURSOR=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_LIBDIRS=""
diff --git a/config.tests/x11/xfreetype.test b/config.tests/x11/xfreetype.test
index d4cb4ba17..1fb1a9d5a 100755
--- a/config.tests/x11/xfreetype.test
+++ b/config.tests/x11/xfreetype.test
@@ -3,7 +3,7 @@
XFT=yes
XFT2=no
XFT2_HEADER=no
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
SRCDIR=$3
OUTDIR=$4
diff --git a/config.tests/x11/xinerama.test b/config.tests/x11/xinerama.test
index dc015589d..962adc2d0 100755
--- a/config.tests/x11/xinerama.test
+++ b/config.tests/x11/xinerama.test
@@ -1,7 +1,7 @@
#!/bin/sh
XINERAMA=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_LIBDIRS=""
diff --git a/config.tests/x11/xinput.test b/config.tests/x11/xinput.test
index c31388bd1..d4ea290c8 100755
--- a/config.tests/x11/xinput.test
+++ b/config.tests/x11/xinput.test
@@ -1,7 +1,7 @@
#!/bin/sh
XINPUT=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_LIBDIRS=""
diff --git a/config.tests/x11/xkb.test b/config.tests/x11/xkb.test
index 5560b0809..2901adb00 100755
--- a/config.tests/x11/xkb.test
+++ b/config.tests/x11/xkb.test
@@ -2,7 +2,7 @@
XKB=yes
XPLATFORM=`basename $1`
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_INCDIRS=""
diff --git a/config.tests/x11/xrandr.test b/config.tests/x11/xrandr.test
index 59145a17e..1cde8c693 100755
--- a/config.tests/x11/xrandr.test
+++ b/config.tests/x11/xrandr.test
@@ -1,7 +1,7 @@
#!/bin/sh
XRANDR=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_LIBDIRS=""
diff --git a/config.tests/x11/xrender.test b/config.tests/x11/xrender.test
index 64ccc205f..a91b153d1 100755
--- a/config.tests/x11/xrender.test
+++ b/config.tests/x11/xrender.test
@@ -1,7 +1,7 @@
#!/bin/sh
XRENDER=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_LIBDIRS=""
diff --git a/config.tests/x11/xshape.test b/config.tests/x11/xshape.test
index 4fae606d9..fd91d067d 100755
--- a/config.tests/x11/xshape.test
+++ b/config.tests/x11/xshape.test
@@ -1,7 +1,7 @@
#!/bin/sh
XSHAPE=yes
-XCONFIG=$1/qmake.conf
+XCONFIG=$1/tqmake.conf
VERBOSE=$2
shift 2
IN_LIBDIRS=
diff --git a/configure b/configure
index 92bdf2227..283522d72 100755
--- a/configure
+++ b/configure
@@ -784,7 +784,7 @@ while [ "$#" -gt 0 ]; do
;;
v|verbose)
if [ "$VAL" = "yes" ]; then
- if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
+ if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on tqmake debugs
QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
else
OPT_VERBOSE=yes
@@ -928,19 +928,19 @@ WHICH=$unixtests/which.test
### skip this if the user just needs help...
if [ "$OPT_HELP" != "yes" ]; then
-# create the include and include/qmake directory (for tqconfig.h and tqmodules.h)
-[ -d $outpath/include/qmake ] || mkdir -p $outpath/include/qmake
+# create the include and include/tqmake directory (for tqconfig.h and tqmodules.h)
+[ -d $outpath/include/tqmake ] || mkdir -p $outpath/include/tqmake
-# create temporary tqconfig.h for compiling qmake
-# when building qmake, we use #defines for the install paths,
+# create temporary tqconfig.h for compiling tqmake
+# when building tqmake, we use #defines for the install paths,
# however they are real functions in the library
-cat >>$outpath/include/qmake/tqconfig.h <>$outpath/include/tqmake/tqconfig.h <>$outpath/include/qmake/tqmodules.h <>$outpath/include/tqmake/tqmodules.h </dev/null '^QMAKE_LIBS_THREAD' $XQMAKESPEC/qmake.conf; then
+if grep >/dev/null '^QMAKE_LIBS_THREAD' $XQMAKESPEC/tqmake.conf; then
AUTOTHREAD=yes
else
AUTOTHREAD=never
fi
-# common qmake.conf file but dependency on OS version
+# common tqmake.conf file but dependency on OS version
if [ "$UNAME_SYSTEM" = "HP-UX" ]; then
if echo $UNAME_RELEASE | grep -E "^B\.(09|10)" >/dev/null 2>&1; then
AUTOTHREAD=never
@@ -1326,15 +1326,15 @@ fi
if [ "$UNAME_SYSTEM" = "SunOS" ]; then
# Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris >=7
if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
- sed -e "s,-lrt,-lposix4," $XQMAKESPEC/qmake.conf > $XQMAKESPEC/qmake.conf.new
- mv $XQMAKESPEC/qmake.conf.new $XQMAKESPEC/qmake.conf
+ sed -e "s,-lrt,-lposix4," $XQMAKESPEC/tqmake.conf > $XQMAKESPEC/tqmake.conf.new
+ mv $XQMAKESPEC/tqmake.conf.new $XQMAKESPEC/tqmake.conf
fi
fi
if [ $AUTOTHREAD = never ]; then
if [ "$CFG_THREAD" = "yes" ]; then
echo
echo "ERROR: TQt is not configured to support threading on this platform"
- echo " See the THREAD settings in $XQMAKESPEC/qmake.conf"
+ echo " See the THREAD settings in $XQMAKESPEC/tqmake.conf"
echo
exit 2
fi
@@ -1344,7 +1344,7 @@ fi
#-------------------------------------------------------------------------------
-# tests that don't need qmake (must be run before displaying help)
+# tests that don't need tqmake (must be run before displaying help)
#-------------------------------------------------------------------------------
# auto-detect precompiled header support
@@ -1766,7 +1766,7 @@ Configure options:
-fast .............. Configure TQt quickly by generating Makefiles only for
library and subdirectory targets. All other Makefiles
- are created as wrappers, which will in turn run qmake.
+ are created as wrappers, which will in turn run tqmake.
* -no-fast ........... Configure TQt normally by generating Makefiles for all
project files.
@@ -2058,7 +2058,7 @@ irix-cc*)
esac
# -----------------------------------------------------------------------------
-# build qmake
+# build tqmake
# -----------------------------------------------------------------------------
# symlink includes
@@ -2073,9 +2073,9 @@ if [ "$OPT_SHADOW" = "yes" ]; then
QMAKE_VARS="$QMAKE_VARS \"INCLUDEPATH+=${outpath}/include\""
fi
-# build qmake
+# build tqmake
if true; then ###[ '!' -f "$outpath/bin/tqmake" ];
- echo "Creating qmake. Please wait..."
+ echo "Creating tqmake. Please wait..."
rm -f mkspecs/default
ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
# fix makefiles
@@ -2084,13 +2084,13 @@ if true; then ###[ '!' -f "$outpath/bin/tqmake" ];
EXTRA_CFLAGS=
in_mkfile="${mkfile}.in"
if [ "$mkfile" = "Makefile" ]; then
-# if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
-# (cd qmake && qmake) >/dev/null 2>&1 && continue
+# if which tqmake >/dev/null 2>&1 && [ -f tqmake/tqmake.pro ]; then
+# (cd tqmake && tqmake) >/dev/null 2>&1 && continue
# fi
in_mkfile="${mkfile}.unix"
fi
- in_mkfile="$relpath/qmake/$in_mkfile"
- mkfile="$outpath/qmake/$mkfile"
+ in_mkfile="$relpath/tqmake/$in_mkfile"
+ mkfile="$outpath/tqmake/$mkfile"
if [ -f "$mkfile" ]; then
[ "$Edition" = "troll" ] && $WHICH chflags >/dev/null 2>&1 && chflags nouchg $mkfile
rm -f $mkfile
@@ -2103,19 +2103,19 @@ if true; then ###[ '!' -f "$outpath/bin/tqmake" ];
EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
- grep "^QMAKE_CC[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,QMAKE_CC,CC," >>$mkfile
- grep "^QMAKE_CXX[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,QMAKE_CXX,CXX," >>$mkfile
- grep "^QMAKE_CFLAGS[^_A-Z0-9]" $QMAKESPEC/qmake.conf >>$mkfile
- grep "^QMAKE_CXXFLAGS[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS)," >>$mkfile
- grep "^QMAKE_LFLAGS[^_A-Z0-9]" $QMAKESPEC/qmake.conf >>$mkfile
+ grep "^QMAKE_CC[^_A-Z0-9]" $QMAKESPEC/tqmake.conf | sed "s,QMAKE_CC,CC," >>$mkfile
+ grep "^QMAKE_CXX[^_A-Z0-9]" $QMAKESPEC/tqmake.conf | sed "s,QMAKE_CXX,CXX," >>$mkfile
+ grep "^QMAKE_CFLAGS[^_A-Z0-9]" $QMAKESPEC/tqmake.conf >>$mkfile
+ grep "^QMAKE_CXXFLAGS[^_A-Z0-9]" $QMAKESPEC/tqmake.conf | sed "s,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS)," >>$mkfile
+ grep "^QMAKE_LFLAGS[^_A-Z0-9]" $QMAKESPEC/tqmake.conf >>$mkfile
if [ "$CFG_DEBUG" = "yes" ]; then
- grep "QMAKE_CFLAGS_DEBUG[^_A-Z0-9]" $QMAKESPEC/qmake.conf >>$mkfile
- grep "^QMAKE_CXXFLAGS_DEBUG[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG)," >>$mkfile
+ grep "QMAKE_CFLAGS_DEBUG[^_A-Z0-9]" $QMAKESPEC/tqmake.conf >>$mkfile
+ grep "^QMAKE_CXXFLAGS_DEBUG[^_A-Z0-9]" $QMAKESPEC/tqmake.conf | sed "s,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG)," >>$mkfile
EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
else
- grep "QMAKE_CFLAGS_RELEASE[^_A-Z0-9]" $QMAKESPEC/qmake.conf >>$mkfile
- grep "^QMAKE_CXXFLAGS_RELEASE[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE)," >>$mkfile
+ grep "QMAKE_CFLAGS_RELEASE[^_A-Z0-9]" $QMAKESPEC/tqmake.conf >>$mkfile
+ grep "^QMAKE_CXXFLAGS_RELEASE[^_A-Z0-9]" $QMAKESPEC/tqmake.conf | sed "s,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE)," >>$mkfile
EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
fi
@@ -2157,21 +2157,21 @@ if true; then ###[ '!' -f "$outpath/bin/tqmake" ];
if [ "$Edition" = "troll" ] &&
$WHICH makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
- (cd $outpath/qmake && $MAKE -f $mkfile depend) >/dev/null 2>&1
+ (cd $outpath/tqmake && $MAKE -f $mkfile depend) >/dev/null 2>&1
fi
done
- (cd $outpath/qmake; $MAKE || (echo "qmake failed to build. Aborting." && exit 2)) || exit 2
+ (cd $outpath/tqmake; $MAKE || (echo "tqmake failed to build. Aborting." && exit 2)) || exit 2
fi
# clean up temporary tqconfig.h and tqmodules.h
-rm -f $outpath/include/qmake/tqconfig.h
-rm -f $outpath/include/qmake/tqmodules.h
-rmdir $outpath/include/qmake
+rm -f $outpath/include/tqmake/tqconfig.h
+rm -f $outpath/include/tqmake/tqmodules.h
+rmdir $outpath/include/tqmake
#-------------------------------------------------------------------------------
-# tests that need qmake
+# tests that need tqmake
#-------------------------------------------------------------------------------
# work around broken X11 headers when using GCC 2.95 or later
@@ -2186,7 +2186,7 @@ if [ $PLATFORM = "hpux-acc" -a "$CFG_STL" != "no" ]; then
echo
echo "As of aCC A.3.0.30 you may enable STL support in TQt by adding -AA"
echo "to the QMAKE_CXXFLAGS and QMAKE_LFLAGS variables in"
- echo "$XQMAKESPEC/qmake.conf"
+ echo "$XQMAKESPEC/tqmake.conf"
echo "and re-running configure. Make sure to use the -AA compiler switch"
echo "in all your software projects using TQt as it turns on the new C++"
echo "Standard Library which is not binary compatible with the old one."
@@ -2473,7 +2473,7 @@ fi
[ '!' -z "$l_FLAGS" ] && QMAKE_VARS="$QMAKE_VARS \"LIBS+=$l_FLAGS\""
if [ '!' -z "$R_FLAGS" ]; then
- if grep QMAKE_RPATH $XQMAKESPEC/qmake.conf >/dev/null; then
+ if grep QMAKE_RPATH $XQMAKESPEC/tqmake.conf >/dev/null; then
echo # Using -R/-rpath, so no need to warn
else
echo
@@ -2557,7 +2557,7 @@ fi
case "$COMPILER" in
g++*)
# GNU C++
- QMAKE_CONF_COMPILER=`grep "QMAKE_CXX[^_A-Z0-9a-z]" $QMAKESPEC/qmake.conf | sed "s,.* *= *\(.*\)$,\1,"`
+ QMAKE_CONF_COMPILER=`grep "QMAKE_CXX[^_A-Z0-9a-z]" $QMAKESPEC/tqmake.conf | sed "s,.* *= *\(.*\)$,\1,"`
COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null | sed 's,^[^0-9]*,,g'`
case "$COMPILER_VERSION" in
2.95.*)
@@ -2576,7 +2576,7 @@ g++*)
;;
clang)
# Clang
- QMAKE_CONF_COMPILER=`grep "QMAKE_CXX[^_A-Z0-9a-z]" $QMAKESPEC/qmake.conf | sed "s,.* *= *\(.*\)$,\1,"`
+ QMAKE_CONF_COMPILER=`grep "QMAKE_CXX[^_A-Z0-9a-z]" $QMAKESPEC/tqmake.conf | sed "s,.* *= *\(.*\)$,\1,"`
COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null | sed 's,^[^0-9]*,,g'`
case "$COMPILER_VERSION" in
*)
@@ -2818,10 +2818,10 @@ fi
#-------------------------------------------------------------------------------
-# save configuration into .qmake.cache
+# save configuration into .tqmake.cache
#-------------------------------------------------------------------------------
-CACHEFILE=$outpath/.qmake.cache
+CACHEFILE=$outpath/.tqmake.cache
[ -f $CACHEFILE.tmp ] && rm -f $CACHEFILE.tmp
cat >>$CACHEFILE.tmp <>$CACHEFILE.tmp
- [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >>$CACHEFILE.tmp
+ [ -r "$outpath/.tqmake.incremental" ] && echo "include($outpath/.tqmake.incremental)" >>$CACHEFILE.tmp
fi
-# replace .qmake.cache if it differs from the newly created temp file
+# replace .tqmake.cache if it differs from the newly created temp file
if cmp -s $CACHEFILE.tmp $CACHEFILE; then
rm -f $CACHEFILE.tmp
else
@@ -2933,8 +2933,8 @@ else
fi
if [ "$OPT_VERBOSE" = "yes" ]; then
- echo "qmake vars ...... $QMAKE_VARS"
- echo "qmake switches .. $QMAKE_SWITCHES"
+ echo "tqmake vars ...... $QMAKE_VARS"
+ echo "tqmake switches .. $QMAKE_SWITCHES"
fi
[ "$OPT_CONCURRENT" != "0" ] && echo "Concurrent .......... $OPT_CONCURRENT"
@@ -3172,7 +3172,7 @@ for file in .projects .projects.3; do
for a in `cat $file`; do
case $a in
*-kde.pro|*qtmain.pro) continue ;;
- */qmake/qmake.pro) continue ;;
+ */tqmake/tqmake.pro) continue ;;
*projects.pro) continue ;;
*-pro.pro)
[ "x$Edition" != "xpro" ] && continue
@@ -3185,8 +3185,8 @@ for file in .projects .projects.3; do
OUTDIR=$outpath/$dir
if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
# fast configure - the makefile exists, skip it
- # since the makefile exists, it was generated by qmake, which means we
- # can skip it, since qmake has a rule to regenerate the makefile if the .pro
+ # since the makefile exists, it was generated by tqmake, which means we
+ # can skip it, since tqmake has a rule to regenerate the makefile if the .pro
# file changes...
[ "$OPT_VERBOSE" = "yes" ] && echo " skipping $a"
continue;
@@ -3211,7 +3211,7 @@ for file in .projects .projects.3; do
# WARNING: This makefile will be replaced with a real makefile.
# All changes made to this file will be lost.
-all clean install qmake Makefile: FORCE
+all clean install tqmake Makefile: FORCE
$outpath/bin/tqmake $QMAKE_SWITCHES $QMAKE_SPEC_ARGS -o $OUTDIR $a
cd $OUTDIR
\$(MAKE) \$@
diff --git a/doc/appicon.doc b/doc/appicon.doc
index 0764cab02..fccb26f57 100644
--- a/doc/appicon.doc
+++ b/doc/appicon.doc
@@ -43,7 +43,7 @@ called e.g. "myapp.rc" in which you put a single line of text:
IDI_ICON1 ICON DISCARDABLE "myappico.ico"
\endcode
-Finally, assuming you are using \link qmake-manual.book qmake\endlink
+Finally, assuming you are using \link tqmake-manual.book tqmake\endlink
to generate your makefiles, add this line to your "myapp.pro" file:
\code
@@ -53,7 +53,7 @@ RC_FILE = myapp.rc
Regenerate your makefile and your application. The .exe file will now be
represented with your icon e.g. in Explorer.
-If you do not use \link qmake-manual.book qmake\endlink, the necessary
+If you do not use \link tqmake-manual.book tqmake\endlink, the necessary
steps are: first, run the "rc" program on the .rc file, then link your
application with the resulting .res file.
@@ -76,7 +76,7 @@ different sized icons (for use in different contexts) as well as the masks
that go with them. Save the set of icons to a file in your project
directory.
-If you are using \link qmake-manual.book qmake\endlink to generate
+If you are using \link tqmake-manual.book tqmake\endlink to generate
your make files, you only need to add a single line to your \c .pro
project file. For example, if the name of your icon file is
\c{myapp.icns}, and your project file is \c{myapp.pro}, add this line
@@ -84,11 +84,11 @@ to \c{myapp.pro}:
\code
RC_FILE = myapp.icns
\endcode
-This will ensure that \link qmake-manual.book qmake\endlink puts your
+This will ensure that \link tqmake-manual.book tqmake\endlink puts your
icons in the proper place and creates an \c{Info.plist} entry for the
icon.
-If you do not use \link qmake-manual.book qmake\endlink, you must do
+If you do not use \link tqmake-manual.book tqmake\endlink, you must do
the following manually:
\list 1
\i Create an Info.plist file for your application (using the
diff --git a/doc/changes.doc b/doc/changes.doc
index 773e08bc7..c974731e2 100644
--- a/doc/changes.doc
+++ b/doc/changes.doc
@@ -442,12 +442,12 @@ used by both TQt Designer and TQt Linguist for browsing their help
documentation.
-\section1 qmake
+\section1 tqmake
-To ease portability we now provide the \link qmake-manual.book
-qmake\endlink utility to replace tmake. QMake is a C++ version of
+To ease portability we now provide the \link tqmake-manual.book
+tqmake\endlink utility to replace tmake. TQMake is a C++ version of
tmake which offers additional functionallity that is difficult to
-reproduce in tmake. Trolltech uses qmake in its build system for Qt
+reproduce in tmake. Trolltech uses tqmake in its build system for Qt
and related products and we have released it as free software.
*/
diff --git a/doc/html/appicon.html b/doc/html/appicon.html
index 1b66d05b3..f1a6642af 100644
--- a/doc/html/appicon.html
+++ b/doc/html/appicon.html
@@ -70,7 +70,7 @@ called e.g. "myapp.rc" in which you put a single line of text:
IDI_ICON1 ICON DISCARDABLE "myappico.ico"
- Finally, assuming you are using qmake
+
Finally, assuming you are using tqmake
to generate your makefiles, add this line to your "myapp.pro" file:
RC_FILE = myapp.rc
@@ -78,7 +78,7 @@ RC_FILE = myapp.rc
Regenerate your makefile and your application. The .exe file will now be
represented with your icon e.g. in Explorer.
-
If you do not use qmake, the necessary
+
If you do not use tqmake, the necessary
steps are: first, run the "rc" program on the .rc file, then link your
application with the resulting .res file.
Setting the Application Icon on Mac OS X
@@ -97,7 +97,7 @@ Developer/Application folder). Icon Composer allows you to import sever
different sized icons (for use in different contexts) as well as the masks
that go with them. Save the set of icons to a file in your project
directory.
-
If you are using qmake to generate
+
If you are using tqmake to generate
your make files, you only need to add a single line to your .pro
project file. For example, if the name of your icon file is
myapp.icns, and your project file is myapp.pro, add this line
@@ -106,10 +106,10 @@ to myapp.pro:
RC_FILE = myapp.icns
-This will ensure that qmake puts your
+This will ensure that tqmake puts your
icons in the proper place and creates an Info.plist entry for the
icon.
- If you do not use qmake, you must do
+
If you do not use tqmake, you must do
the following manually:
- Create an Info.plist file for your application (using the
diff --git a/doc/html/assistant-6.html b/doc/html/assistant-6.html
index d5114eb88..1665b53cb 100644
--- a/doc/html/assistant-6.html
+++ b/doc/html/assistant-6.html
@@ -32,7 +32,7 @@ body { background: #ffffff; color: black; }
Customizing TQt Assistant
TQt Assistant can be customized by adding and removing documentation from its documentation set. In addition, TQt Assistant introduces the profiles option, which enables its properties to change, for example, the default startup page, and application icon.
Modifying the Default Documentation Set
-When it is started without any options, TQt Assistant displays a default set of documentation. When TQt is installed, the default documentation set in TQt Assistant contains the TQt reference documentation as well as the tools that come with TQt, such as TQt Designer and qmake.
+When it is started without any options, TQt Assistant displays a default set of documentation. When TQt is installed, the default documentation set in TQt Assistant contains the TQt reference documentation as well as the tools that come with TQt, such as TQt Designer and tqmake.
Documentation can be added or removed from TQt Assistant by adding and removing the content files. The format of the content files are specified below. To add a content file, type the following command line option: -addContentFile docfile. To remove a content file from the default set, type the following command line option: -removeContentFile docfile. For example:
1: > assistant -addContentFile file.dcf
diff --git a/doc/html/commonproblems.html b/doc/html/commonproblems.html
index d2b396f8c..dc964def0 100644
--- a/doc/html/commonproblems.html
+++ b/doc/html/commonproblems.html
@@ -72,7 +72,7 @@ the relevant release of TQt.
- Programmers need to run tqmoc and other tools such as tquic. These
tools are usually located in the bin subdirectory of TQt distributions.
Either run "$TQTDIR"/bin/tqmoc and "$TQTDIR"/bin/tquic or add "$TQTDIR"/bin
-to your PATH and run tqmoc and tquic. If you use qmake the
+to your PATH and run tqmoc and tquic. If you use tqmake the
appropriate lines will be added to your Makefiles so that tquic and
tqmoc will be executed as required.
- Static or shared libraries - Link time
diff --git a/doc/html/designer-manual-1.html b/doc/html/designer-manual-1.html
index a7118f662..15f19ee8e 100644
--- a/doc/html/designer-manual-1.html
+++ b/doc/html/designer-manual-1.html
@@ -35,10 +35,10 @@ body { background: #ffffff; color: black; }
TQt Designer helps you build user interfaces with layout tools that move and scale your widgets (controls in Windows terminology) automatically at runtime. The resulting interfaces are both functional and attractive, comfortably suiting your users' operating environments and preferences. TQt Designer supports TQt's signals and slots mechanism for type-safe communication between widgets. TQt Designer includes a code editor which you can use to embed your own custom slots inside the generated code. Those who prefer to separate generated code from hand crafted code can continue to use the subclassing approach pioneered in the first version of TQt Designer.
The manual introduces you to TQt Designer by leading you through the development of example applications. The first seven chapters are tutorials, each designed to be as self-contained as possible. Every chapter, except the first three, assumes that you are familiar with the material in chapters two and three which cover the basics of building a TQt application with TQt Designer. Here's a brief overview of the chapters:
Chapter one, Quick Start, is a fast hands-on tutorial that takes you through the creation of a short, simple dialog application. The aim of this chapter is to give you a feel for how TQt Designer works, with explanations and details deferred to later chapters.
-Chapter two, Creating a Main Window Application, introduces TQt Designer and takes you step by step through the creation of a small but fully functional application. Along the way you will learn how to create a main window with menus, toolbars and a status bar. Most of the application's implementation will be covered, but the custom dialogs are deferred until chapter three. In the course of this chapter you will use the form and property editors to customize the application. You'll also learn how to use TQt's signals and slots mechanism and TQt Designer's built-in code editor to make the application functional. We will also explain how to use qmake to generate a Makefile so that you can compile and run the application.
+Chapter two, Creating a Main Window Application, introduces TQt Designer and takes you step by step through the creation of a small but fully functional application. Along the way you will learn how to create a main window with menus, toolbars and a status bar. Most of the application's implementation will be covered, but the custom dialogs are deferred until chapter three. In the course of this chapter you will use the form and property editors to customize the application. You'll also learn how to use TQt's signals and slots mechanism and TQt Designer's built-in code editor to make the application functional. We will also explain how to use tqmake to generate a Makefile so that you can compile and run the application.
In chapter three, Creating Dialogs, we will create the custom dialogs required by the main window application created in chapter two. In addition to demonstrating various ways of creating dialogs, you will also learn how to lay out forms using the layout tools.
Chapter four, The Designer Approach, provides information on the TQt Designer approach to developing applications, and explains some of the rationale behind TQt Designer.
-Chapter five, Subclassing and Dynamic Dialogs, will show you how to subclass a form; this allows you to clearly separate the user interface from the underlying code that implements its functionality. Additional information on qmake and tquic is included in this chapter. This chapter will also explain how you can dynamically load dialogs from .ui files into your application using TQWidgetFactory and how to access the widgets and sub-widgets of these dialogs.
+Chapter five, Subclassing and Dynamic Dialogs, will show you how to subclass a form; this allows you to clearly separate the user interface from the underlying code that implements its functionality. Additional information on tqmake and tquic is included in this chapter. This chapter will also explain how you can dynamically load dialogs from .ui files into your application using TQWidgetFactory and how to access the widgets and sub-widgets of these dialogs.
Chapter six, Creating Custom Widgets, explains how you can create your own custom widgets. Both the simple method, that was introduced with the first version of TQt Designer, and the new more powerful method using plugins, are explained.
Chapter seven, Creating Database Applications introduces TQt's SQL classes and takes you through an example that demonstrates how to execute SQL queries and how to set up master-detail relationships, perform drilldown and handle foreign keys.
Chapter eight, Customizing and Integrating TQt Designer, focuses on TQt Designer itself, showing you how to customize Designer, how to integrate Designer with Visual Studio and how to create Makefiles.
diff --git a/doc/html/designer-manual-13.html b/doc/html/designer-manual-13.html
index 34d49611a..5d4231e9f 100644
--- a/doc/html/designer-manual-13.html
+++ b/doc/html/designer-manual-13.html
@@ -204,7 +204,7 @@ body { background: #ffffff; color: black; }
Project Settings- C++ Tab
-Click the C++ Tab to change the qmake options. See the qmake documentation for details on what these options mean. Click the 'Template' combobox and choose application or library to create makefiles for building applications or libraries. Click the 'Config' combobox to select the project configuration and compiler options for all platforms, or specific platforms. Type the Config value in the line edit. Note: Unix defaults to a shared library. If you want a shared library in Windows, type 'dll' at the end of the default config command and make sure you select lib from the Template combobox. Click the 'Libs' combobox to select a platform. Type the libraries in the line edit. Click the 'Defines' combobox and select a platform. 'Defines' values are added as compiler pre-processor macros. Type the 'Defines' values in the line edit. Click the 'Includepath' combobox to select a platform. Includepath specifies the directories that should be searched for include files when compiling the project. Type the 'Includepath' values in the line edit.
+Click the C++ Tab to change the tqmake options. See the tqmake documentation for details on what these options mean. Click the 'Template' combobox and choose application or library to create makefiles for building applications or libraries. Click the 'Config' combobox to select the project configuration and compiler options for all platforms, or specific platforms. Type the Config value in the line edit. Note: Unix defaults to a shared library. If you want a shared library in Windows, type 'dll' at the end of the default config command and make sure you select lib from the Template combobox. Click the 'Libs' combobox to select a platform. Type the libraries in the line edit. Click the 'Defines' combobox and select a platform. 'Defines' values are added as compiler pre-processor macros. Type the 'Defines' values in the line edit. Click the 'Includepath' combobox to select a platform. Includepath specifies the directories that should be searched for include files when compiling the project. Type the 'Includepath' values in the line edit.
Cick OK to accept changes to the project settings. Click Cancel to exit the dialog without making any changes to the project settings.
The Search Dialogs
Find Text Dialog
diff --git a/doc/html/designer-manual-2.html b/doc/html/designer-manual-2.html
index b925f7ad4..189e7dc57 100644
--- a/doc/html/designer-manual-2.html
+++ b/doc/html/designer-manual-2.html
@@ -277,7 +277,7 @@ body { background: #ffffff; color: black; }
Click Save to save the project.
Compiling and Running the Application
Start or switch to a console, and navigate to the directory where the project is saved.
-Run qmake on the project file (metric.pro) by typing qmake -o Makefile metric.pro.
+Run tqmake on the project file (metric.pro) by typing tqmake -o Makefile metric.pro.
Run make (or nmake depending on your system).
After the project has compiled, run the application.
Wrapping Up
diff --git a/doc/html/designer-manual-3.html b/doc/html/designer-manual-3.html
index 46dc87d3e..aadcad5a1 100644
--- a/doc/html/designer-manual-3.html
+++ b/doc/html/designer-manual-3.html
@@ -55,7 +55,7 @@ body { background: #ffffff; color: black; }
Creating a Project
Whenever you create a new application we recommend that you create a project file and open the project rather than individual .ui files. Using a project has the advantage that all the forms you create for the project are available via a single mouse click rather than having to be loaded individually through file open dialogs. An additional benefit of using project files is that they allow you to store all your images in a single file rather than duplicate them in each form in which they appear. See The Designer Approach chapter's Project management section for detailed information on the benefits of using project files.
-Project files use the .pro suffix and are used by the qmake tool to create makefiles for the relevant target platforms.
+Project files use the .pro suffix and are used by the tqmake tool to create makefiles for the relevant target platforms.
Create a new project as follows:
Click File|New to invoke the New File dialog.
@@ -492,9 +492,9 @@ body { background: #ffffff; color: black; }
This ensures that our application will cleanly terminate. Later we'll revise this function to give the user the opportunity to save any unsaved data.
Building and Running
We now have some code in the application and a main.cpp containing the main() function, so we should be able to compile, link and run the application.
-Click File|Save to ensure that all our work is saved to disk. Open a console (e.g. an xterm or DOS window), change directory to where you have saved the colortool project, and run qmake to generate a Makefile:
+Click File|Save to ensure that all our work is saved to disk. Open a console (e.g. an xterm or DOS window), change directory to where you have saved the colortool project, and run tqmake to generate a Makefile:
- qmake -o Makefile colortool.pro
+ tqmake -o Makefile colortool.pro
Now make the project (run nmake on Windows, make on other platforms). Providing you commented out the "findForm" and "loadSettings" lines in the init() function, the program should build. (If it doesn't build see the Troubleshooting section.)
Once the make has finished, run the program. You still can't change views since we haven't written the code for that yet, but it does create a default set of colors. You can terminate the application by clicking the close (X) button or by clicking File|Exit.
diff --git a/doc/html/designer-manual-5.html b/doc/html/designer-manual-5.html
index 9e8e4281f..80e4f0724 100644
--- a/doc/html/designer-manual-5.html
+++ b/doc/html/designer-manual-5.html
@@ -57,9 +57,9 @@ body { background: #ffffff; color: black; }
When you've opened or created a project you can set up its database connections using the Edit Database Connections dialog (invoked by the Project|Database Connections menu option). The connections you make are stored in a .db file. When you reload a project you can reconnect by going to the Edit Database Connections dialog, clicking a connection in the list and clicking the Connect button.
In most non-trivial database applications you will want to access the database from more than one form. This is why the .db file is part of a project, not just part of a single form.
.pro files
-TQt Designer needs to store information on projects, for example, the list of forms, the image collection and information about available databases and how to access them. The majority of TQt users already use a project file format to create multiplatform makefiles: tmake (and with TQt 3.0 qmake) project .pro files. These files already contain the list of forms, .ui files, used in the project for tquic.
-We've extended the sections in the .pro file to include the extra information that TQt Designer needs to manage projects. For example, when you add a form to your project in TQt Designer, it is automatically added to the FORMS section of the project file, and thus qmake will generate the required build rules without any further work. Similarly, the images are added to the IMAGES section and thus gets automatically compiled into your executable.
-We don't force you to use qmake; if you prefer another build system, for example automake/autoconf or jam, you can still continue to use it. Look upon the .pro file as a file that describes the GUI part of your application. All you need to do -- as previously -- is add the .ui files and the images collection to your own Makefiles.
+TQt Designer needs to store information on projects, for example, the list of forms, the image collection and information about available databases and how to access them. The majority of TQt users already use a project file format to create multiplatform makefiles: tmake (and with TQt 3.0 tqmake) project .pro files. These files already contain the list of forms, .ui files, used in the project for tquic.
+We've extended the sections in the .pro file to include the extra information that TQt Designer needs to manage projects. For example, when you add a form to your project in TQt Designer, it is automatically added to the FORMS section of the project file, and thus tqmake will generate the required build rules without any further work. Similarly, the images are added to the IMAGES section and thus gets automatically compiled into your executable.
+We don't force you to use tqmake; if you prefer another build system, for example automake/autoconf or jam, you can still continue to use it. Look upon the .pro file as a file that describes the GUI part of your application. All you need to do -- as previously -- is add the .ui files and the images collection to your own Makefiles.
Extending the functionality of a form
First let us look at a small figure that shows the relationship between .ui files, generated code and application code:
diff --git a/doc/html/designer-manual-6.html b/doc/html/designer-manual-6.html
index 503dcd9dd..38d688672 100644
--- a/doc/html/designer-manual-6.html
+++ b/doc/html/designer-manual-6.html
@@ -34,14 +34,14 @@ body { background: #ffffff; color: black; }
Subclassing
We'll start with a general description of how to subclass a form and follow with a short example. Note that subclassing has some disadvantages compared with putting your code into a form directly; see Extending the functionality of a form in The Designer Approach chapter for details.
Generating Source Code from TQt Designer .ui Files
-TQt Designer reads and writes qmake .pro (project) files which are used to record the files used to build the application and from which Makefiles are generated. TQt Designer also reads and writes .ui (user interface) files. These are XML files that record the widgets, layouts, source code and settings you've used for a form. Every .ui file is converted by the tquic (user interface compiler) into a C++ .h file and a C++ .cpp file. These C++ files are then read by tqmoc (meta object compiler), and finally compiled by your compiler into a working application.
+TQt Designer reads and writes tqmake .pro (project) files which are used to record the files used to build the application and from which Makefiles are generated. TQt Designer also reads and writes .ui (user interface) files. These are XML files that record the widgets, layouts, source code and settings you've used for a form. Every .ui file is converted by the tquic (user interface compiler) into a C++ .h file and a C++ .cpp file. These C++ files are then read by tqmoc (meta object compiler), and finally compiled by your compiler into a working application.
If you create applications wholly within TQt Designer you only need to create a main.cpp.
If you create the main.cpp file within TQt Designer, it will automatically be added to your project file by TQt Designer. If you create the main.cpp file outside of TQt Designer you must add it to the project file manually by adding the following line at the end of your project's .pro file:
SOURCES += main.cpp
-You can then use qmake to generate the Makefile. (For example qmake -o Makefile myproject.pro.) Running make (Linux or Unix compilers), or nmake (Visual C++), will then call tquic, tqmoc and your compiler as necessary to build your application.
-If you use TQt Designer to create your main window and dialogs, but also add other C++ files, or if you subclass any of your forms you will need to add these files to the .pro file so that they are compiled with the rest of your application's source files. Each .h file that you create separately from TQt Designer should be added to the HEADERS line, and each .cpp file should be added to the SOURCES line, just as we've done for main.cpp. If you get undefined reference errors it is worth checking that you've added the names of all your header and implementation files to the .pro file.
+You can then use tqmake to generate the Makefile. (For example tqmake -o Makefile myproject.pro.) Running make (Linux or Unix compilers), or nmake (Visual C++), will then call tquic, tqmoc and your compiler as necessary to build your application.
+If you use TQt Designer to create your main window and dialogs, but also add other C++ files, or if you subclass any of your forms you will need to add these files to the .pro file so that they are compiled with the rest of your application's source files. Each .h file that you create separately from TQt Designer should be added to the HEADERS line, and each .cpp file should be added to the SOURCES line, just as we've done for main.cpp. If you get undefined reference errors it is worth checking that you've added the names of all your header and implementation files to the .pro file.
Subclassing a Form
When subclassing a form it is helpful to use a naming convention to help us identify which files are generated from TQt Designer's .ui files and which are hand coded.
Suppose, for example, that we are developing a dialog and writing the code directly in TQt Designer. We might call our dialog 'OptionsForm' and the .ui file, optionsform.ui. The automatically generated files will be optionsform.h and optionsform.cpp.
@@ -94,7 +94,7 @@ int main( int argc, char *argv[] )
}
Note that we're including creditformbase.h and instantiating a CreditFormBase object; once we've written our subclass we'll replace the header with our subclass, creditform.h, and instantiate a CreditForm.
-We can now generate the application with qmake, e.g. qmake -o Makefile credit.pro, make it and run it. The form should run fine, but doesn't yet have the behaviour we require.
+We can now generate the application with tqmake, e.g. tqmake -o Makefile credit.pro, make it and run it. The form should run fine, but doesn't yet have the behaviour we require.
Creating the Subclass
We need to create a header and an implementation file for our subclass. The code for our subclass is minimal. The header file is qt/tools/designer/examples/credit/creditform.h:
#include "creditformbase.h"
@@ -134,7 +134,7 @@ int main( int argc, char *argv[] )
}
We call setAmount() in the constructor to ensure that the correct amount is shown when the form starts based on whichever radio button we checked in TQt Designer. In setAmount() we set the amount if the standard or none radio button is checked. If the user has checked the special radio button they are free to change the amount themselves.
-To be able to test our subclass we change main.cpp to include creditform.h rather than creditformbase.h and change the instantiation of the creditForm object:
+To be able to test our subclass we change main.cpp to include creditform.h rather than creditformbase.h and change the instantiation of the creditForm object:
#include <tqapplication.h>
#include "creditform.h"
@@ -154,7 +154,7 @@ int main( int argc, char *argv[] )
HEADERS += creditform.h
SOURCES += creditform.cpp
-To test the form rerun qmake to regenerate the Makefile, then make and run.
+To test the form rerun tqmake to regenerate the Makefile, then make and run.
The subclassing example we've used is simple, but this reflects subclassing forms in TQt: it is easy to do.
Creating Dynamic Dialogs from .ui Files
TQt programs are capable of loading TQt Designer .ui files and instantiating the forms represented by the .ui files. Since the .ui file is not compiled it cannot include any C++ code, (e.g. slot implementations). In this section we will explain how to load a dynamic dialog and how to create a class that can be used to implement the dynamic dialog's custom slots.
diff --git a/doc/html/designer-manual-7.html b/doc/html/designer-manual-7.html
index 587cff348..fc45eeb98 100644
--- a/doc/html/designer-manual-7.html
+++ b/doc/html/designer-manual-7.html
@@ -244,7 +244,7 @@ CONFIG += qt warn_on release
DBFILE = filechooser.db
DEFINES += FILECHOOSER_IS_WIDGET
-We can create the makefile using qmake: qmake -o Makefile filechooser.pro, then we can make and run the harness to test our new widget. Once we're satisfied that the custom widget is robust and has the behaviour we require we can embed it into a plugin.
+We can create the makefile using tqmake: tqmake -o Makefile filechooser.pro, then we can make and run the harness to test our new widget. Once we're satisfied that the custom widget is robust and has the behaviour we require we can embed it into a plugin.
Creating a Plugin
TQt Plugins can be used to provide self-contained software components for TQt applications. TQt currently supports the creation of five kinds of plugins: codecs, image formats, database drivers, styles and custom widgets. In this section we will explain how to convert our filechooser custom widget into a TQt Designer custom widget plugin.
A TQt Designer custom widget plugin is always derived from TQWidgetPlugin. The amout of code that needs to be written is minimal.
@@ -372,7 +372,7 @@ INCLUDEPATH += $$QT_SOURCE_TREE/tools/designer/interfaces
DBFILE = plugin.db
qt/tools/designer/examples/filechooser/plugin/plugin.pro
-Change the HEADERS line to list your plugin's header file plus a header file for each of your widgets. Make the equivalent change for the SOURCES line. If you create a Makefile with qmake and make the project the plugin will be created and placed in a directory where TQt Designer can find it. The next time you run TQt Designer it will detect your new plugin and load it automatically, displaying its icon in the toolbar you specified.
+Change the HEADERS line to list your plugin's header file plus a header file for each of your widgets. Make the equivalent change for the SOURCES line. If you create a Makefile with tqmake and make the project the plugin will be created and placed in a directory where TQt Designer can find it. The next time you run TQt Designer it will detect your new plugin and load it automatically, displaying its icon in the toolbar you specified.
Using the Widget Plugin
Once the plugin has been compiled it will automatically be found and loaded by TQt Designer the next time TQt Designer is run. Use your custom widget just like any other.
If you want to use the plugin in another of your projects you can link against it by adding an appropriate line to the project, e.g. by adding a line like this to the project's .pro file:
diff --git a/doc/html/designer-manual-8.html b/doc/html/designer-manual-8.html
index f22a272e6..d36491240 100644
--- a/doc/html/designer-manual-8.html
+++ b/doc/html/designer-manual-8.html
@@ -67,7 +67,7 @@ body { background: #ffffff; color: black; }
Edit Database Connections Dialog
Choose Project|Database Connections from the menu bar. The Edit Database Connections dialog will appear. Click New Connection. For applications that use a single database it will probably be most convenient to use the default connection name of '(default)'. If you use more than one database then each one must be given a unique name. A driver must be chosen from the Driver combo box. The database name may be available in the Database Name combo box or may have to be typed in. The database name, username, password, hostname and port should be provided by your database system administrator. When the Connection information has been completed click Connect. If the connection is made the connection name will appear in the list box on the left hand side of the dialog. You can now close the dialog; the connection settings will remain in effect until you change or delete them or exit from TQt Designer.
Warning: If you are using an existing SQLite database, ensure that the name you specify in the "Database Name" field is not the same as the existing database file. TQt Designer will create a configuration file using the name given for the database and will overwrite any existing files with the same name.
-TQt Designer can remember database connection settings in qmake project files. Create a new project, e.g. click File|New, then click the 'C++ Project' icon to invoke the Project Settings dialog. Click the ellipsis button to invoke the Save As dialog; navigate to the project's directory (creating it if necessary). Make sure you're in the project's directory, then enter a project name of 'book.pro'. Click the Save button to return to the Project Settings dialog, then click OK. Next time you start TQt Designer instead of opening individual .ui files open the .pro project file instead and TQt Designer will automatically reload the project's connection settings. To activate the connection click Project|Database Connections. The connections previously saved with the project will be listed in the left hand list box. Click the connection you wish to use and then click Connect. This connection will be used from now on, e.g. for previewing TQDataTables. Opening a project file also causes TQt Designer to load in the list of forms associated with the project into the Project Overview window. In most of the explanation that follows we will assume that you use project files and have clicked Connect so that there is always a connection available when you work in TQt Designer.
+TQt Designer can remember database connection settings in tqmake project files. Create a new project, e.g. click File|New, then click the 'C++ Project' icon to invoke the Project Settings dialog. Click the ellipsis button to invoke the Save As dialog; navigate to the project's directory (creating it if necessary). Make sure you're in the project's directory, then enter a project name of 'book.pro'. Click the Save button to return to the Project Settings dialog, then click OK. Next time you start TQt Designer instead of opening individual .ui files open the .pro project file instead and TQt Designer will automatically reload the project's connection settings. To activate the connection click Project|Database Connections. The connections previously saved with the project will be listed in the left hand list box. Click the connection you wish to use and then click Connect. This connection will be used from now on, e.g. for previewing TQDataTables. Opening a project file also causes TQt Designer to load in the list of forms associated with the project into the Project Overview window. In most of the explanation that follows we will assume that you use project files and have clicked Connect so that there is always a connection available when you work in TQt Designer.
Setting Up Connections for Applications
The applications you create must make their own connections to the SQL database. We provide an example function, createConnections(), that you can use as a basis for your own code.
@@ -136,7 +136,7 @@ bool createConnections()
Click on the form and change its name to 'BookForm' and its caption to 'Book'. Click on the TQDataTable and change its name to 'AuthorDataTable'.
Click File|Save All.
Open the project file, e.g. book.pro, in a plain text editor and add the line: SOURCES += main.cpp at the end of the file.
-Run qmake to generate the make file, e.g. qmake -o Makefile book.pro, then make and run the book program.
+Run tqmake to generate the make file, e.g. tqmake -o Makefile book.pro, then make and run the book program.
This example shows how easy it is to use TQDataTable to show the contents of a database table or view. You can use the application we've just built to update and delete author records. In the examples that follow we will cover insertions, setting up master-detail relationships, drilldown and foreign key lookups.
A Note on Foreign Keys
diff --git a/doc/html/designer-manual-9.html b/doc/html/designer-manual-9.html
index 8dbd68fff..feee3bad1 100644
--- a/doc/html/designer-manual-9.html
+++ b/doc/html/designer-manual-9.html
@@ -101,15 +101,15 @@ body { background: #ffffff; color: black; }
New TQt Project -- A small application wizard
New TQt Dialog -- Add an empty TQt Dialog to the active project, or add an existing dialog
TQt GUI Designer -- Run TQt Designer
-Open TQt Project -- Runs qmake with a .pro file
+Open TQt Project -- Runs tqmake with a .pro file
Write TQt Project -- Saves the current VS project as a .pro file
Use TQt -- Add the TQt libraries to the active project
Add TQMoc -- Add tqmoc precompiler to the active file
Double clicking a .ui file in the workspace overview will now launch TQt Designer.
If you create a .cpp file which contains the TQ_OBJECT macro you will need an additional file which is generated by tqmoc to be included in your project. For example, if you have 'file.cpp', then the last line would be #include "file.moc" and the additional file would be called 'file.moc'. To ensure that Visual Studio executes the tqmoc and generates this file you must create a custom dependency. Double click the .cpp file (in your project workspace) that contains the TQ_OBJECT macro. Click the Add TQMoc toolbar button; this will create an empty .moc file in your project workspace. Right click the newly created .moc file, then click Settings from the pop-up menu to invoke the Project Settings dialog. Click the Custom Build tab. Click the Dependencies button to pop up the User Defined Dependencies dialog. Type in $(InputDir)\$(InputPath), then press Return. Click OK to leave the Dependencies dialog, then click OK to leave the Project Settings dialog.
If you wish to delete the add-in remove it from the toolbar then delete the qmsdev.dll file from the add-ins directory.
-Creating Makefiles without qmake
-The qmake tool provided with TQt can create Makefiles appropriate to your platform based on .pro project files. This section describes the dependencies involved in building a TQt application and gives a couple of simple example Makefiles. This section assumes that you have a good understanding of Makefiles.
+Creating Makefiles without tqmake
+The tqmake tool provided with TQt can create Makefiles appropriate to your platform based on .pro project files. This section describes the dependencies involved in building a TQt application and gives a couple of simple example Makefiles. This section assumes that you have a good understanding of Makefiles.
TQt Designer produces .ui files which are used to generate .h and .cpp files for the compiler to compile. The .ui files are processed by tquic. Classes which inherit from TQObject, e.g. those which use slots and signals, require an additional .cpp file to be generated. These files are generated by tqmoc and are named 'tqmoc_file.cpp' where the original .cpp file is called 'file.cpp'. If your .cpp file contains the TQ_OBJECT macro an additional file 'file.moc' should be generated which must be #included in the .cpp, normally at the end. This requires an extra dependency being created.
Processing .ui files with tquic is done twice:
@@ -169,7 +169,7 @@ myform.cpp: myform.h myform.ui
myform.h: myform.ui
tquic myform.ui -o myform.h
-To see more sophisticated Makefiles simply generate them using qmake on any of your TQt projects or any of the examples supplied with TQt.
+To see more sophisticated Makefiles simply generate them using tqmake on any of your TQt projects or any of the examples supplied with TQt.
Importing Foreign File Formats
To import a file in a supported foreign file format click File|Open, then click the File Type combobox to choose the file type you wish to load. Click the required file and TQt Designer will convert and load the file.
The filters that TQt Designer uses to read foreign file formats are 'works in progress'. You may have different filters available in your version of TQt Designer than those described here. The easiest way to see which filters are available is to invoke the file open dialog; all your filters are listed in the File Type combobox.
diff --git a/doc/html/helpsystem-example.html b/doc/html/helpsystem-example.html
index 3b7df0469..dac148073 100644
--- a/doc/html/helpsystem-example.html
+++ b/doc/html/helpsystem-example.html
@@ -470,7 +470,7 @@ in TQt Assistant.
The main function is a standard implementation opening
the application main window.
To build the example go to the helpsystem directory
-(TQTDIR/examples/helpsystem) run qmake to generate the makefile,
+(TQTDIR/examples/helpsystem) run tqmake to generate the makefile,
and use the make tool to build the library.
diff --git a/doc/html/i18n.html b/doc/html/i18n.html
index bd7ba3bc4..518b55ce7 100644
--- a/doc/html/i18n.html
+++ b/doc/html/i18n.html
@@ -341,8 +341,8 @@ an example project file (.pro file):
When you run lupdate or lrelease, you must give the name of the
project file as a command-line argument.
In this example, four exotic languages are supported: Danish, Finnish,
-Norwegian and Swedish. If you use qmake, you usually don't need an extra project
-file for lupdate; your qmake project file will work fine once
+Norwegian and Swedish. If you use tqmake, you usually don't need an extra project
+file for lupdate; your tqmake project file will work fine once
you add the TRANSLATIONS entry.
In your application, you must TQTranslator::load() the translation
files appropriate for the user's language, and install them using TQApplication::installTranslator().
diff --git a/doc/html/index.html b/doc/html/index.html
index 20c22b9c8..79d0b8b7c 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -157,7 +157,7 @@ Licenses & Credits
- TQt Designer
- TQt Linguist
- TQt Assistant
-
- qmake
+
- tqmake
diff --git a/doc/html/integration.html b/doc/html/integration.html
index e395653ab..d36ebe4d5 100644
--- a/doc/html/integration.html
+++ b/doc/html/integration.html
@@ -128,20 +128,20 @@ existing projects. It can also be started up by using the Ctrl+Shift+D key
combination in Visual Studio.
Using the 'Open TQt Project' button
- The 'Open TQt Project' button allows you to convert an existing qmake project file into a .dsp file which you can insert into
+ The 'Open TQt Project' button allows you to convert an existing tqmake project file into a .dsp file which you can insert into
your existing workspace. When you click the 'Open TQt Project'
-button, just select an existing qmake project file (a .pro
+button, just select an existing tqmake project file (a .pro
file) and then click OK. You will get a message box at the end
which asks you to insert the newly created .dsp file into your
existing workspace.
Using the 'Write TQt Project' button
- The 'Write TQt Project' button creates a qmake project (.pro)
+ The 'Write TQt Project' button creates a tqmake project (.pro)
file for your current project so that you can easily copy the files
-onto another platform and be able to use qmake to create a Makefile
+onto another platform and be able to use tqmake to create a Makefile
on that other platform. All you need to do is make the project you
want to create a .pro file for, and click on the button. Just
-name your qmake project file and click Save.
+name your tqmake project file and click Save.
Using the 'Use TQt In Current Project' button
The 'Use TQt In Current Project' button simply adds in the necessary
diff --git a/doc/html/keyfeatures30.html b/doc/html/keyfeatures30.html
index eaf557922..4645a7820 100644
--- a/doc/html/keyfeatures30.html
+++ b/doc/html/keyfeatures30.html
@@ -339,11 +339,11 @@ Designer and TQt Linguist. It offers index searching, a contents
overview, bookmarks history and incremental search. TQt Assistant is
used by both TQt Designer and TQt Linguist for browsing their help
documentation.
- qmake
+ tqmake
- To ease portability we now provide the qmake utility to replace tmake. TQMake is a C++ version of
+ To ease portability we now provide the tqmake utility to replace tmake. TQMake is a C++ version of
tmake which offers additional functionallity that is difficult to
-reproduce in tmake. Trolltech uses qmake in its build system for TQt
+reproduce in tmake. Trolltech uses tqmake in its build system for TQt
and related products and we have released it as free software.
diff --git a/doc/html/linguist-manual-2.html b/doc/html/linguist-manual-2.html
index ae9d33422..529f9f776 100644
--- a/doc/html/linguist-manual-2.html
+++ b/doc/html/linguist-manual-2.html
@@ -30,10 +30,10 @@ body { background: #ffffff; color: black; }
|
| [Prev: Introduction] [Home] [Next: Translators]
Release Manager
-Two tools are provided for the release manager, lupdate and lrelease. These tools depend on qmake project files. You don't have to use qmake, though.
+Two tools are provided for the release manager, lupdate and lrelease. These tools depend on tqmake project files. You don't have to use tqmake, though.
A third tool, tqm2ts, can be used for converting TQt 2.x message files to .ts files.
TQt Project Files
-lupdate and lrelease depend on information in the application's .pro TQt project file. There must be an entry in the TRANSLATIONS section of the project file for each language that is additional to the native language. A typical entry looks like this:
+lupdate and lrelease depend on information in the application's .pro TQt project file. There must be an entry in the TRANSLATIONS section of the project file for each language that is additional to the native language. A typical entry looks like this:
TRANSLATIONS = tt2_fr.ts \
tt2_nl.ts
diff --git a/doc/html/linguist-manual-4.html b/doc/html/linguist-manual-4.html
index fe06608a6..5918e5d6c 100644
--- a/doc/html/linguist-manual-4.html
+++ b/doc/html/linguist-manual-4.html
@@ -43,7 +43,7 @@ body { background: #ffffff; color: black; }
Run lupdate to incorporate any new text added to the application. lupdate synchronizes the user-visible text from the application with the translations; it does not destroy any data.
Steps 2 and 3 are repeated as often as necessary.
When a release of the application is needed lrelease is run to read the .ts files and produce the .qm files used by the application at runtime.
-
For lupdate to work successfully, it must know which translation files to produce. The files are simply listed in the application's .pro TQt project file, for example:
+
For lupdate to work successfully, it must know which translation files to produce. The files are simply listed in the application's .pro TQt project file, for example:
TRANSLATIONS = tt2_fr.ts \
tt2_nl.ts
@@ -233,7 +233,7 @@ int main( int argc, char **argv )
tt3_pt.ts is the Portuguese message file.
Line by Line Walk-through
The PrintPanel is defined in printpanel.h.
diff --git a/doc/html/mac-differences.html b/doc/html/mac-differences.html
index 62aa0a567..691a7c260 100644
--- a/doc/html/mac-differences.html
+++ b/doc/html/mac-differences.html
@@ -122,7 +122,7 @@ application bundle (the application directory), then you place these into a
directory called Frameworks, a subdirectory of the application bundle.
The application finds these dynamic libraries if the libraries have an
install name of "@executable_path/../Frameworks/libname.dylib.
-
If you use qmake and Makefiles, use the QMAKE_LFFLAGS_SONAME setting:
+
If you use tqmake and Makefiles, use the QMAKE_LFFLAGS_SONAME setting:
QMAKE_LFLAGS_SONAME = -Wl,-install_name,@executable_path/../Frameworks/
@@ -158,7 +158,7 @@ have not been called yet).
Plugin Support
Note that it is not possible to build TQt plugins using Project Builder
-or Xcode. Use qmake to configure and
+or Xcode. Use tqmake to configure and
build plugins.
Compiler Settings
diff --git a/doc/html/porting.html b/doc/html/porting.html
index a9b0bbb56..ac6bbf521 100644
--- a/doc/html/porting.html
+++ b/doc/html/porting.html
@@ -149,13 +149,13 @@ library is static. If you just use the default configuration you
don't need to set certain preprocessor defines. In TQt 3.0, the
default configuration of the TQt library is to build it as a shared
library, therefore the preprocessor define QT_DLL is needed.
- If you use tmake with TQt 2.x, and now use qmake with TQt 3.x, then the
+
If you use tmake with TQt 2.x, and now use tqmake with TQt 3.x, then the
cause of the problem is with the project file. In the project file,
there is usually line that looks like:
CONFIG = ...
this should be changed to
CONFIG += ...
-
so that qmake can look at the configuration that TQt was built with and
+
so that tqmake can look at the configuration that TQt was built with and
set any relevant preprocessor defines in the makefile.
Header file inclusion changes
diff --git a/doc/html/qmake-manual-1.html b/doc/html/qmake-manual-1.html
deleted file mode 100644
index 32b921489..000000000
--- a/doc/html/qmake-manual-1.html
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-Introduction to qmake
-
-
-
-
-
[Home] [Next: Installing qmake]
-Introduction to qmake
-Introduction to qmake
-qmake is a tool created by Trolltech to write makefiles for different compilers and platforms.
-Writing makefiles by hand can be difficult and error prone, especially if several makefiles are required for different compiler and platform combinations. With qmake, developers create a simple single 'project' file and run qmake to generate the appropriate makefiles. qmake takes care of all the compiler and platform dependencies, freeing developers to focus on their code. Trolltech uses qmake as the primary build tool for the TQt library, and for the tools supplied with TQt.
-qmake also takes care of TQt's special requirements, automatically including build rules for tqmoc and tquic.
-
-[Home] [Next: Installing qmake]
-
-
diff --git a/doc/html/qmake-manual-2.html b/doc/html/qmake-manual-2.html
deleted file mode 100644
index cb1126dba..000000000
--- a/doc/html/qmake-manual-2.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-Installing qmake
-
-
-
-
-[Prev: Introduction to qmake] [Home] [Next: The 10 minute guide to using qmake]
-Installing qmake
-Installing qmake
-qmake is built by default when TQt is built.
-This section explains how to build qmake manually. Skip ahead to The 10 minute guide to using qmake, if you already have qmake.
-Installing qmake manually
-Before building TQt manually the following environment variables must be set:
-QMAKESPEC
This must be set to the platform and compiler combination that you are using on your system.
For example, if you are using Windows and Microsoft Visual Studio, you would set this environment variable to win32-msvc. If you are using Solaris and g++, you would set this environment variable to solaris-g++.
-The following is a list of environment variables available to choose from when setting QMAKESPEC:
-aix-64 hpux-cc irix-032 netbsd-g++ solaris-cc unixware7-g++ aix-g++ hpux-g++ linux-cxx openbsd-g++ solaris-g++ aix-xlc hpux-n64 linux-g++ openunix-cc sunos-g++ win32-g++ bsdi-g++ hpux-o64 linux-icc qnx-g++ tru64-cxx win32-msvc dgux-g++ hurd-g++ linux-kcc reliant-64 tru64-g++ win32-watc freebsd-g++ irix-64 macx-pbuilder reliant-cds ultrix-g++ win32-visa hpux-acc irix-g++ macx-g++ sco-g++ unixware-g hpux-acc irix-n32 solaris-64 unixware7-cc
-TQTDIR
This must be set to where TQt is (or will be) installed. For example, c:\qt and \local\qt
-
Once the environment variables are set go into the qmake directory, $TQTDIR/qmake, e.g. C:\qt\qmake. Now run make or nmake depending on your compiler.
-When the make has completed, qmake is ready for use.
-
-[Prev: Introduction to qmake] [Home] [Next: The 10 minute guide to using qmake]
-
-
diff --git a/doc/html/qmake-manual-3.html b/doc/html/qmake-manual-3.html
deleted file mode 100644
index 7698e2985..000000000
--- a/doc/html/qmake-manual-3.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-The 10 minute guide to using qmake
-
-
-
-
-[Prev: Installing qmake] [Home] [Next: qmake Tutorial]
-The 10 minute guide to using qmake
-Creating a project file
-qmake uses information stored in project (.pro) files to determine what should go in the makefiles it generates.
-A basic project file contains information about the application, for example, which files are needed to compile the application, and which configuration settings to use.
-Here's a simple example project file:
-
- SOURCES = hello.cpp
- HEADERS = hello.h
- CONFIG += qt warn_on release
-
-We'll provide a brief line-by-line explanation, deferring the detail until later on in the manual.
-
- SOURCES = hello.cpp
-
-This line specifies the source files that implement the application. In this case there is just one file, hello.cpp. Most applications require multiple files; this situation is dealt with by listing all the files on the same line space separated, like this:
-
- SOURCES = hello.cpp main.cpp
-
-Alternatively, each file can be listed on a separate line, by escaping the newlines, like this:
-
- SOURCES = hello.cpp \
- main.cpp
-
-A more verbose approach is to list each file separately, like this:
-
- SOURCES += hello.cpp
- SOURCES += main.cpp
-
-This approach uses "+=" rather than "=" which is safer, because it always adds a new file to the existing list rather than replacing the list.
-The HEADERS line is used to specify the header files created for use by the application, e.g.
-
- HEADERS += hello.h
-
-Any of the approaches used to list source files may be used for header files.
-The CONFIG line is used to give qmake information about the application's configuration.
-
- CONFIG += qt warn_on release
-
-The "+=" is used here, because we add our configuration options to any that are already present. This is safer than using "=" which replaces all options with just those specified.
-The qt part of the CONFIG line tells qmake that the application is built using TQt. This means that qmake will link against the TQt libraries when linking and add in the neccesary include paths for compiling.
-The warn_on part of the CONFIG line tells qmake that it should set the compiler flags so that warnings are output.
-The release part of the CONFIG line tells qmake that the application must be built as a release application. During development, programmers may prefer to replace release with debug, which is discussed later.
-Project files are plain text (i.e. use an editor like notepad, vim or xemacs) and must be saved with a '.pro' extension. The name of the application's executable will be the same as the project file's name, but with an extension appropriate to the platform. For example, a project file called 'hello.pro' will produce 'hello.exe' on Windows and 'hello' on Unix.
-Generating a makefile
-When you have created your project file it is very easy to generate a makefile, all you need to do is go to where you have created your project file and type:
-Makefiles are generated from the '.pro' files like this:
-
- qmake -o Makefile hello.pro
-
-For Visual Studio users, qmake can also generate '.dsp' files, for example:
-
- qmake -t vcapp -o hello.dsp hello.pro
-
-
-[Prev: Installing qmake] [Home] [Next: qmake Tutorial]
-
-
diff --git a/doc/html/qmake-manual-4.html b/doc/html/qmake-manual-4.html
deleted file mode 100644
index 4e8ce1072..000000000
--- a/doc/html/qmake-manual-4.html
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
-
-qmake Tutorial
-
-
-
-
-[Prev: The 10 minute guide to using qmake] [Home] [Next: qmake Concepts]
-qmake Tutorial
-Introduction to the qmake tutorial
-This tutorial teaches you how to use qmake. We recommend that you read the qmake user guide after completing this tutorial.
-Starting off simple
-Let's assume that you have just finished a basic implementation of your application, and you have created the following files:
-hello.cpp
-hello.h
-main.cpp
-
You will find these files in qt/qmake/examples/tutorial. The only other thing you know about the setup of the application is that it's written in TQt. First, using your favorite plain text editor, create a file called hello.pro in qt/qmake/tutorial. The first thing you need to do is add the lines that tell qmake about the source and header files that are part of your development project.
-We'll add the source files to the project file first. To do this you need to use the SOURCES variable. Just start a new line with SOURCES += and put hello.cpp after it. You should have something like:
-
- SOURCES += hello.cpp
-
-We repeat this for each source file in the project, until we end up with:
-
- SOURCES += hello.cpp
- SOURCES += main.cpp
-
-If you prefer to use a Make-like syntax, with all the files listed in one go you can use the newline escaping like this:
-
- SOURCES = hello.cpp \
- main.cpp
-
-Now that the source files are listed in the project file, the header files must be added. These are added in exactly the same way as source files, except that the variable name is HEADERS:
-Once you have done this, your project file should look something like this:
-
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
-
-The target name is set automatically; it is the same as the project file, but with the suffix appropriate to the platform. For example, if the project file is called 'hello.pro', the target will be 'hello.exe' on Windows and 'hello' on Unix. If you want to use a different name you can set it in the project file:
-
- TARGET = helloworld
-
-The final step is to set the CONFIG variable. Since this is a TQt application, we need to put 'qt' on the CONFIG line so that qmake will add the relevant libraries to be linked against and ensure that build lines for tqmoc and tquic are included in the makefile.
-The finished project file should look like this:
-
- CONFIG += qt
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
-
-You can now use qmake to generate a makefile for your application. On the command line, in your application directory, type:
-
- qmake -o Makefile hello.pro
-
-Then type make or nmake depending on the compiler you use.
-Making an application debuggable
-The release version of an application doesn't contain any debugging symbols or other debuggin information. During development it is useful to produce a debugging version of the application that has the relevant information. This is easily achieved by adding 'debug' to the CONFIG variable in the project file.
-For example:
-
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
-
-Use qmake as before to generate a makefile and you will be able to debug your application.
-Adding platform specific source files
-After a few hours of coding, you might have made a start on the platform specific part of your application, and decided to keep the platform dependent code separate. So you now have two new files to include into your project file - hellowin.cpp and hellounix.cpp. We can't just add these to the SOURCES variable since this will put both files in the makefile. So what we need to do here is to use a scope which will be processed depending on which platform qmake is run on.
-A simple scope which will add in the platform dependent file for Windows looks like this:
-
- win32 {
- SOURCES += hellowin.cpp
- }
-
-So if qmake is run on Windows, it will add hellowin.cpp to the list of source files. If qmake is run on any other platform, it will simply ignore it. Now all that is left to be done is to create a scope for the unix dependent file.
-When you have done that, your project file should now look something like this:
-
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
- win32 {
- SOURCES += hellowin.cpp
- }
- unix {
- SOURCES += hellounix.cpp
- }
-
-Use qmake as before to generate a makefile.
-Stopping qmake if a file doesn't exist
-You may not want to create a makefile if a certain file doesn't exist. We can check if a file exists by using the exists() function. We can stop qmake from processing by using the error() function. This works in the same way as scopes. Simply replace the scope condition with the function. A check for a main.cpp file looks like this:
-
- !exists( main.cpp ) {
- error( "No main.cpp file found" )
- }
-
-The "!" is used to negate the test, i.e. exists( main.cpp ) is true if the file exists and !exists( main.cpp ) is true if the file doesn't exist.
-
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
- win32 {
- SOURCES += hellowin.cpp
- }
- unix {
- SOURCES += hellounix.cpp
- }
- !exists( main.cpp ) {
- error( "No main.cpp file found" )
- }
-
-Use qmake as before to generate a makefile. If you rename main.cpp temporarily, you will see the message and qmake will stop processing.
-Checking for more than one condition
-Suppose you use Windows and you want to be able to see the tqDebug() statements when you run your application on the command line. Unless you build your application with the console setting, you won't see the output. We can easily put console on the CONFIG line so that on Windows the makefile will have this setting. But let's say that we only want to add the CONFIG line if we are running on Windows and when debug is already on the CONFIG line. This requires using two nested scopes; just create one scope, then create the other inside that one. Put the settings to be processed inside the last scope, like this:
-
- win32 {
- debug {
- CONFIG += console
- }
- }
-
-Nested scopes can be joined together using colons, so the final project file looks like this:
-
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
- win32 {
- SOURCES += hellowin.cpp
- }
- unix {
- SOURCES += hellounix.cpp
- }
- !exists( main.cpp ) {
- error( "No main.cpp file found" )
- }
- win32:debug {
- CONFIG += console
- }
-
-That's it! You have now completed the tutorial for qmake, and are ready to write project files for your development projects.
-
-[Prev: The 10 minute guide to using qmake] [Home] [Next: qmake Concepts]
-
-
diff --git a/doc/html/qmake-manual-5.html b/doc/html/qmake-manual-5.html
deleted file mode 100644
index d8ae485be..000000000
--- a/doc/html/qmake-manual-5.html
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-qmake Concepts
-
-
-
-
-[Prev: qmake Tutorial] [Home] [Next: qmake's Advanced Concepts]
-qmake Concepts
-Introducing qmake
-qmake is an easy-to-use tool from Trolltech that creates makefiles for development projects across different platforms. qmake simplifies the generation of makefiles so that only a few lines of information are needed to create a makefile. qmake can be used for any software project whether it is written in TQt or not, although it also contains additional features to support TQt development.
-qmake generates a makefile based on the information in a project file. Project files are created by the developer. Project files are usually simple, but can be quite sophisticated if required. qmake can also generate projects for Microsoft Visual studio without having to change the project file.
-qmake's Concepts
-The QMAKESPEC environment variable
-Before qmake can be used to build makefiles, the QMAKESPEC environment variable must be set to the platform-compiler combination that is being used on the system. The QMAKESPEC environment variable tells qmake where to look to find platform and compiler specific information. This ensures that the right libraries are used, and that the generated makefile uses the correct syntax. A list of the currently supported platform-compiler combinations can be found in qt/mkspecs. Just set your environment variable to one of the directories listed.
-For example, if you are using Microsoft Visual Studio on Windows, then you would set the QMAKESPEC environment variable to win32-msvc. If you are using gcc on Solaris then you would set your QMAKESPEC environment variable to solaris-g++.
-Inside each of the directories in qt/mkspecs, there is a qmake.conf file which contains the platform and compiler specific information. These settings are applied to any project that is built using qmake and should not be modified unless you're an expert. For example, if all your applications had to link against a particular library, you might add this information to the relevant qmake.conf file.
-Project (.pro) files
-A project file is used to tell qmake the details it needs to know about creating a makefile for the application. For instance, a list of source files and header files that should be put into the project file; any application specific configuration, such as an extra library that should be linked against, or an extra include path.
-'#' comments
-You can add comments to project files. Comments begin with the '#' symbol and run to the end of the line.
-Templates
-The template variable tells qmake what sort of makefile should be generated for the application. The following choices are available:
-app - Creates a makefile that builds an application. This is the default, so if a template is not specified, this is used.
-lib - Creates a makefile that builds a library.
-vcapp - Creates a Visual Studio Project file which builds an application.
-vclib - Creates a Visual Studio Project file which builds a library.
-subdirs - This is a special template which creates a makefile which will go into the specified directories and create a makefile for the project file and call make on it.
-
The 'app' template
-The 'app' template tells qmake to generate a makefile that will build an application. When using this template the following qmake system variables are recognized. You should use these in your .pro file to specify information about your application.
-HEADERS - A list of all the header files for the application.
-SOURCES - A list of all the source files for the application.
-FORMS - A list of all the .ui files (created using TQt Designer) for the application.
-LEXSOURCES - A list of all the lex source files for the application.
-YACCSOURCES - A list of all the yacc source files for the application.
-TARGET - Name of the executable for the application. This defaults to the name of the project file. (The extension, if any, is added automatically).
-DESTDIR - The directory in which the target executable is placed.
-DEFINES - A list of any additional pre-processor defines needed for the application.
-INCLUDEPATH - A list of any additional include paths needed for the application.
-DEPENDPATH - The dependency search path for the application.
-VPATH - The search path to find supplied files.
-DEF_FILE - Windows only: A .def file to be linked against for the application.
-RC_FILE - Windows only: A resource file for the application.
-RES_FILE - Windows only: A resource file to be linked against for the application.
-
You only need to use the system variables that you have values for, for instance, if you don't have any extra INCLUDEPATHs then you don't need to specify any, qmake will add in the default ones needed. For instance, an example project file might look like this:
-
-TEMPLATE = app
-DESTDIR = c:\helloapp
-HEADERS += hello.h
-SOURCES += hello.cpp
-SOURCES += main.cpp
-DEFINES += QT_DLL
-CONFIG += qt warn_on release
-
-For items that are single valued, e.g. the template or the destination directory, we use "="; but for multi-valued items we use "+=" to add to the existing items of that type. Using "=" replaces the item's value with the new value, for example if we wrote DEFINES=QT_DLL, all other definitions would be deleted.
-The 'lib' template
-The 'lib' template tells qmake to generate a makefile that will build a library. When using this template, in addition to the system variables mentioned above for the 'app' template the VERSION variable is supported. You should use these in your .pro file to specify information about the library.
-The 'subdirs' template
-The 'subdirs' template tells qmake to generate a makefile that will go into the specified subdirectories and generate a makefile for the project file in the directory and call make on it.
-The only system variable that is recognised for this template is the SUBDIRS variable. This variable contains a list of all the subdirectories that contain project files to be processed. It is essential that the project file in the sub directory has the same name as the subdirectory, so that qmake can find it. For example, if the subdirectory is called 'myapp' then the project file in that directory should be called myapp.pro in that directory.
-The CONFIG variable
-The config variable specifies the options that the compiler should use and the libraries that should be linked against. Anything can be added to the config variable, but the options covered below are recognised by qmake internally.
-The following options control what compiler flags are used:
-release - The application is to be built in release mode. This is ignored if 'debug' is specified.
-debug - The application is to be built in debug mode.
-warn_on - The compiler should output as many warnings as possible. This is ignored if 'warn_off' is specified.
-warn_off - The compiler should output as few warnings as possible.
-
The following options define the type of library/application to be built:
-qt - The application is a TQt application and should link against the TQt library.
-thread - The application is a multi-threaded application.
-x11 - The application is an X11 application or library.
-windows - 'app' template only: the application is a Windows window application.
-console - 'app' template only: the application is a Windows console application.
-dll - 'lib' template only: The library is a shared library (dll).
-staticlib - 'lib' template only: The library is a static library.
-plugin - 'lib' template only: The library is a plugin; this enables the dll option.
-
For example, if your application uses the TQt library and you want to build it as a debuggable multi-threaded application, your project file will have the following line:
-
- CONFIG += qt thread debug
-
-Note, that you must use "+=", not "=", or qmake will not be able to use the settings used to build TQt as a guide as what type of TQt library was built.
-
-[Prev: qmake Tutorial] [Home] [Next: qmake's Advanced Concepts]
-
-
diff --git a/doc/html/qmake-manual-6.html b/doc/html/qmake-manual-6.html
deleted file mode 100644
index 0ba3f21b5..000000000
--- a/doc/html/qmake-manual-6.html
+++ /dev/null
@@ -1,241 +0,0 @@
-
-
-
-
-qmake's Advanced Concepts
-
-
-
-
-[Prev: qmake Concepts] [Home] [Next: Using Precompiled Headers]
-qmake's Advanced Concepts
-qmake's Advanced Concepts
-The qmake project files we've seen up to now have been very simple, just a list of name = value and name += value lines. qmake provides a lot more power, for example you can use a single project file to produce makefiles for multiple platforms.
-Operators
-So far, you have seen the = operator and += operator being used in a project file. There are more operators available for use; but some of these should be used carefully as they may change more than you expect them to.
-The '=' operator
-This operator simply assigns a value to a variable, it is used like this:
-
- TARGET = myapp
-
-This sets the TARGET variable to myapp. This will remove any previously set TARGET.
-The '+=' operator
-This operator appends a value to the list of values in a variable. It is used like this:
-
- DEFINES += QT_DLL
-
-This appends QT_DLL to the list of pre-processor defines to be put in the makefile.
-The '-=' operator
-This operator removes a value from the list of values in a variable. It is used like this:
-
- DEFINES -= QT_DLL
-
-This removes QT_DLL from the list of pre-processor defines to be put in the makefile.
-The '*=' operator
-This operator only adds a value to the list of values in a variable if it doesn't already exist. It is used like this:
-
- DEFINES *= QT_DLL
-
-QT_DLL will only be added to the list of pre-processor defines if it is not already defined.
-The '~=' operator
-This operator replaces any values that match the regexp with the specified value. It is used like this:
-
- DEFINES ~= s/QT_[DT].+/QT
-
-This removes any values in the list that start with QT_D or QT_T with QT.
-Scopes
-A scope are similar to 'if' statements, if a certain condition is true, the settings inside the scope are processed. A scope is written like this:
-
- win32 {
- DEFINES += QT_DLL
- }
-
-The above code will add the QT_DLL define to the makefile if qmake is used on a Windows platform. If qmake is used on a different platform than Windows, the define will be ignored. You may also perform single line conditionals/assignments with qmake like this:
-
- win32:DEFINES += QT_DLL
-
-For example, suppose we want to process something on all platforms except for Windows. We can achieve this by negating the scope like this:
-
- !win32 {
- DEFINES += QT_DLL
- }
-
-Any entry on the CONFIG line is also a scope. For example, if you write this:
-
- CONFIG += warn_on
-
-you will have a scope called 'warn_on'. This makes it easy to change the configuration for a project without losing all the custom settings that might be needed for a specific configuration. Since it is possible to put your own values on the CONFIG line, this provides you with a very powerful configuration tool for your makefiles. For example:
-
- CONFIG += qt warn_on debug
- debug {
- TARGET = myappdebug
- }
- release {
- TARGET = myapp
- }
-
-In the above code, two scopes are created which depend on what is put on the CONFIG line. In the example, debug is on the config line, so the TARGET variable is set to myappdebug. If release was on the config line, then the TARGET variable would be set to myapp.
-It is also possible to check for two things before processing some settings. For instance, if you want to check if the platform is Windows and that the thread configuration is set, you would write this:
-
- win32 {
- thread {
- DEFINES += TQT_THREAD_SUPPORT
- }
- }
-
-To save writing many nested scopes, you can nest scopes using a colon like this:
-
- win32:thread {
- DEFINES += TQT_THREAD_SUPPORT
- }
-
-Once a test has been performed you may also do else/elseif operations. With this you may easily write complicated tests. This can be done with the special 'else' scope, it can be combined with other scopes (separated by colons as above) for example:
-
- win32:thread {
- DEFINES += TQT_THREAD_SUPPORT
- } else:debug {
- DEFINES += QT_NOTHREAD_DEBUG
- } else {
- message("Unknown configuration")
- }
-
-Variables
-The variables that we have encountered so far are system variables, such as DEFINES, SOURCES and HEADERS. It is possible for you to create your own variables so that you use them in scopes. It's easy to create your own variable; just name it and assign something to it. For example:
-
- MY_VARIABLE = value
-
-There are no restricitions on what you do to your own variables, as qmake will just ignore them unless it needs to look at them for a scope.
-You can also assign the value of a current variable to another variable by prefixing $$ to the variable name. For example:
-
- MY_DEFINES = $$DEFINES
-
-Now the MY_DEFINES variable contains what is in the DEFINES variable at this point in the project file. This is also equivalent to:
-
- MY_DEFINES = $${DEFINES}
-
-The second notation allows you to adjoin the variable expansion to another value without separating by space. qmake will allow a variable to contain anything (including $(VALUE), which will be placed directly into the Makefile, and allow it to expand as appropriate, usually an environment variable). However, if you require an environment variable to be replaced immediately then you may use the $$() notation. For example:
-
- MY_DEFINES = $$(ENV_DEFINES)
-
-This will set MY_DEFINES to the value of the evironment variable ENV_DEFINES as it parses the .pro file. Additionally you may call built-in functions in variable replacing. These functions (not to be confused with Test Functions as enumerated in the next section) are listed below:
-join( variablename, glue, before, after )
-This will join the value of variablename with glue. If this value is non-empty it will prefix the value with before and suffix it with after. variablename is the only required field, the others will default to empty strings. If you need to encode spaces in glue, before, or after you must quote them.
-prompt( question )
-This will display question, and read from stdin as a return value.
-member( variablename, position )
-This will place the value in variablename in position position of the list. If the value of variablename is not long this will return an empty string. variablename is the only required field, if not specified position will default to the first value in the list (0).
-find( variablename, substr )
-This will place all the values in variablename that match substr. substr may be a regular expression as well, and will be matched accordingly.
-
- MY_VAR = one two three four
- MY_VAR2 = $$join(MY_VAR, " -L", -L) -Lfive
- MY_VAR3 = $$member(MY_VAR, 2) $$find(MY_VAR, t.*)
-
-MY_VAR2 will contain '-Lone -Ltwo -Lthree -Lfour -Lfive', and MYVAR3 will contains 'three two three'.
-system( program_and_args )
-This will return the stdout/stderr of the program executed, and parse it as normally expected. You can use this to interrogate information about the platform for example.
-
- UNAME = $$system(uname -s)
- contains( UNAME, [lL]inux ):message( This looks like Linux ($$UNAME) to me )
-
-Test Functions
-qmake provides built-in functions that perform simple, yet powerful tests. These tests may be used in place of scopes (as described above), in some cases it is more usefull to use the test function by itself ignoring its test value.
-contains( variablename, value )
-If value is in the list of values stored in the variable called variablename, then the settings inside the scope will be processed. For example:
-
- contains( CONFIG, thread ) {
- DEFINES += TQT_THREAD_SUPPORT
- }
-
-If thread is in the list of values for the CONFIG variable, then TQT_THREAD_SUPPORT will be added to the list of values in the DEFINES variable.
-count( variablename, number )
-If number matches the number of values stored in the variable called variablename, then the settings inside the scope will be processed. For example:
-
- count( DEFINES, 5 ) {
- CONFIG += debug
- }
-
-error( string )
-This function outputs the string given and then makes qmake exit. For example:
-
- error( "An error has occured" )
-
-The text "An error has occured" will be displayed on the console and qmake will exit.
-exists( filename )
-If the specified file exists, then the settings inside the scope will be processed. For example:
-
- exists( /local/qt/qmake/main.cpp ) {
- SOURCES += main.cpp
- }
-
-If /local/qt/qmake/main.cpp exists then main.cpp is added to the list of source files.
-Note that "/" can be used as a directory separator regardless of the platform.
-equals( variable, value )
-If the specified variable is equal to the value passed the scope will be processed. For example:
-
- NUMBERS = 1 2 3
- equals( NUMBERS, 3 4 5 ) {
- message("The numbers are equal")
- }
-
-The message will not be displayed because "1 2 3" does not equal "1 2 3". As with all functions you can pass an expanded variable as the value argument (ie, $$NUMBERS).
-include( filename )
-The contents of filename are included at this point in the project file, so any settings in the specified file will be processed. An example of this is:
-
- include( myotherapp.pro )
-
-Any settings in the myotherapp.pro project file are now processed.
-isEmpty( variablename )
-This is the equivalent of using count( variablename, 0 ). If the variable called variablename has no elements, then the settings inside the scope will be processed. An example of this is:
-
- isEmpty( CONFIG ) {
- CONFIG += qt warn_on debug
- }
-
-message( string )
-This function simply outputs a message on the console.
-
- message( "This is a message" )
-
-The text "This is a message" is output to the console and processing of the project file carries on.
-system( command )
-The specified command is performed and if it returns an exit code of 1, the settings inside the scope are processed. For example:
-
- system( ls /bin ) {
- SOURCES += bin/main.cpp
- HEADERS += bin/main.h
- }
-
-So if the command ls /bin returns 1 then bin/main.cpp is added to the list of sources and bin/main.h is added to the list of headers.
-infile( filename, var, val )
-This function will succeed if the file filename (when parsed by qmake itself) contains the variable var with a value of val. You may also not pass in a third argument (val) and the function will only test if var has been assigned to in the file.
-
-[Prev: qmake Concepts] [Home] [Next: Using Precompiled Headers]
-
-
diff --git a/doc/html/qmake-manual-7.html b/doc/html/qmake-manual-7.html
deleted file mode 100644
index 498096730..000000000
--- a/doc/html/qmake-manual-7.html
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
-
-Using Precompiled Headers
-
-
-
-
-[Prev: qmake's Advanced Concepts] [Home] [Next: qmake Command Reference]
-Using Precompiled Headers
-About Precompiled Headers
-Precompiled headers are a performance feature supported by some compilers to compile a stable body of code, and store the compiled state of the code in a binary file. During subsequent compilations, the compiler will load the stored state, and continue compiling the specified file. Each subsequent compilation is faster because the stable code does not need to be recompiled.
-qmake supports the use of precompiled headers (PCH) on some platforms and build environments, including:
-Windows
-Mac OS X
-Makefile
-Xcode
-GCC 3.3 and up
-
Unix
-
Adding PCH to your project
-Contents of the precompiled header file
-The precompiled header must contain code which is stable and static throughout your project. A typical PCH might look like this:
-stable.h
-
- /* Add C includes here */
-
- #if defined __cplusplus
- /* Add C++ includes here */
- #include <stdlib>
- #include <iostream>
- #include <vector>
- #include <tqapplication.h> // TQt includes
- #include <tqpushbutton.h>
- #include <tqlabel.h>
- #include "thirdparty/include/libmain.h"
- #include "my_stable_class.h"
- ...
- #endif
-
-Note that a precompiled header file needs to separate C includes from CPP includes, since the precompiled header file for C files may not contain C++ code.
-Project options
-To make your project use PCH, the only thing you need to change in your project settings (.pro), is to include the PRECOMPILED_HEADER option:
-
- PRECOMPILED_HEADER = stable.h
-
-qmake will handle the rest, to ensure the creation and use of the precompiled header file. You do not need to include the precompiled header file in HEADERS, as qmake will do this if the configuration supports PCH.
-All platforms that support precompiled headers have the configuration option precompile_header set. Using this option, you may trigger conditional blocks in your .pro file, to add settings when using PCH. For example:
-
- precompile_header:!isEmpty(PRECOMPILED_HEADER) {
- DEFINES += USING_PCH
- }
-
-
-Example project
-You can find the following source code in the qt/qmake/examples/precompile directory:
-mydialog.ui
- <!DOCTYPE UI><UI version="3.3" stdsetdef="1">
- <class>MyDialog</class>
- <widget class="TQDialog">
- <property name="name">
- <cstring>MyDialog</cstring>
- </property>
- <property name="caption">
- <string>Mach 2!</string>
- </property>
- <vbox>
- <widget class="TQLabel">
- <property name="name">
- <cstring>aLabel</cstring>
- </property>
- <property name="text">
- <string>Join the life in the fastlane; - PCH enable your project today! -</string>
- </property>
- </widget>
- <widget class="TQPushButton">
- <property name="name">
- <cstring>aButton</cstring>
- </property>
- <property name="text">
- <string>&Quit</string>
- </property>
- </widget>
- </vbox>
- </widget>
- </UI>
-
- stable.h
- /* Add C includes here */
-
- #if defined __cplusplus
- /* Add C++ includes here */
-
- # include <iostream>
- # include <tqapplication.h>
- # include <tqpushbutton.h>
- # include <tqlabel.h>
- #endif
-
- myobject.h
- #include <tqobject.h>
-
- class MyObject : public TQObject
- {
- public:
- MyObject();
- ~MyObject();
- };
-
- myobject.cpp
- #include <iostream>
- #include <tqobject.h>
- #include "myobject.h"
-
- MyObject::MyObject()
- : TQObject()
- {
- std::cout << "MyObject::MyObject()\n";
- }
-
- util.cpp
- void util_function_does_nothing()
- {
- // Nothing here...
- int x = 0;
- ++x;
- }
-
- main.cpp
- #include <tqapplication.h>
- #include <tqpushbutton.h>
- #include <tqlabel.h>
- #include "myobject.h"
- #include "mydialog.h"
-
- int main(int argc, char **argv)
- {
- TQApplication app(argc, argv);
-
- MyObject obj;
- MyDialog dia;
- app.setMainWidget( &dia );
- dia.connect( dia.aButton, TQ_SIGNAL(clicked()), TQ_SLOT(close()) );
- dia.show();
-
- return app.exec();
- }
-
- precompile.pro
- #############################################
- #
- # Example for using Precompiled Headers
- #
- #############################################
- TEMPLATE = app
- LANGUAGE = C++
- CONFIG += console precompile_header
-
- # Use Precompiled headers (PCH)
- PRECOMPILED_HEADER = stable.h
-
- HEADERS += stable.h \
- myobject.h
- SOURCES += main.cpp \
- myobject.cpp \
- util.cpp
- FORMS = mydialog.ui
-
-
-[Prev: qmake's Advanced Concepts] [Home] [Next: qmake Command Reference]
-
-
diff --git a/doc/html/qmake-manual-8.html b/doc/html/qmake-manual-8.html
deleted file mode 100644
index 8081044c4..000000000
--- a/doc/html/qmake-manual-8.html
+++ /dev/null
@@ -1,728 +0,0 @@
-
-
-
-
- qmake Command Reference
-
-
-
-
-[Prev: Using Precompiled Headers] [Home]
- qmake Command Reference
-qmake Command Reference
-About This Reference
-This reference is a detailed index of all command line options, configurations and internal variables used by the cross-platform makefile generation utility qmake.
-In addition to the variables and functions described in the following sections, qmake project files may also include comments. Comments begin with the '#' symbol and run to the end of the line.
-Command Line Options
-Syntax
-
-qmake [options] files
-
-Options
-The following options can be specified on the command line to qmake:
--o file
qmake output will be directed to file. if this argument is not specified, then qmake will try to guess a suitable name. If '-' is specified, output is directed to stdout.
--unix
qmake will run in unix mode. In this mode, Unix file naming and path conventions will be used, additionally testing for unix (as a scope) will succeed. This is the default mode on all Unices.
--macx
qmake will run in Mac OS X mode. In this mode, Unix file naming and path conventions will be used, additionally testing for macx (as a scope) will succeed. This is the default mode on Mac OS X.
--win32
qmake will run in win32 mode. In this mode, Windows file naming and path conventions will be used, additionally testing for win32 (as a scope) will succeed. This is the default mode on Windows.
--d
qmake will output (hopefully) useful debugging information.
--t tmpl
qmake will override any set TEMPLATE variables with tmpl, but only after the .pro file has been processed.
--tp prefix
qmake will add the prefix to the TEMPLATE variable.
--help
qmake will go over these features and give some useful help.
-
There are also warning options that can help to find problems in your project file:
--Wall
With this qmake will turn on all known warnings.
--Wnone
No warning information will be generated by qmake.
--Wparser
qmake will only generate parser warnings, this will alert you to common pitfalls, and potential problems in the parsing of your .pro files.
--Wlogic
Again qmake will warn of common pitfalls, and potential problems. This can include (but not limited to) checking if a file is placed into a list of files multiple times, if a file cannot be found, etc.
-
qmake supports two different modes of operation. The first mode, which is the default is makefile generation. In this mode, qmake will take a .pro file and turn it into a makefile. Creating makefiles is covered by this reference guide, there is another mode which generates .pro files.
-To toggle between these modes you must specify in the first argument what mode you want to use. If no mode is specified, qmake will assume you want makefile mode. The available modes are:
-Makefile Mode
-In Makefile mode qmake will generate a makefile. Additionally you may supply the following arguments in this mode:
--after
qmake will process assignments given on the commandline after the specified files.
--nocache
qmake will ignore the .qmake.cache file.
--nodepend
qmake will not generate any dependency information.
--cache file
qmake will use file as the cache file, ignoring any other .qmake.cache file found
--spec spec
qmake will use spec as a path to platform-compiler information and QMAKESPEC will be ignored.
-
The files argument can be a list of one or more project files, separated by spaces. You may also pass qmake assignments on the command line here and they will be processed before all files specified, for example:
-qmake -makefile -unix -o Makefile "CONFIG+=test" test.pro
-If however you are certain you want your variables processed after the the files specified, then you may pass the -after argument. When this is specified all assignments on the commandline after the -after option will be postponed until after the specified files are parsed.
-This will generate a Makefile, from test.pro with Unix pathnames. However many of these arguments aren't necessary as they are the default. Therefore the line can be simplified on Unix to:
-qmake "CONFIG+=test" test.pro
-Projectfile Mode
-In Projectfile mode qmake will generate a project file. Additionally, you may supply the following arguments in this mode:
-The files argument can be a list of files or directories. If a directory is specified, then it will be included in the DEPENDPATH variable and relevant code from there will be included in the generated project file, if a file is given it will go into the correct variable depending on extension (i.e. .ui files go into FORMS, .cpp files go into SOURCES, etc). Here too you may pass assignments on the commandline, when doing so these assignments will be placed last in the generated .pro file.
-System Variables
-Frequently Used System Variables
-The following variables are recognized by qmake and are used most frequently when creating project files.
-CONFIG
-The CONFIG variable specifies project configuration and compiler options. The values will be recognized internally by qmake and have special meaning. They are as follows.
-These CONFIG values control compilation flags:
-release - Compile with optimization enabled, ignored if "debug" is specified
-debug - Compile with debug options enabled
-warn_on - The compiler should emit more warnings than normally, ignored if "warn_off" is specified
-warn_off - The compiler should only emit severe warnings.
-
These options define the application/library type:
-qt - The target is a TQt application/library and requires the TQt header files/library. The proper include and library paths for the TQt library will automatically be added to the project.
-opengl - The target requires the OpenGL (or Mesa) headers/libraries. The proper include and library paths for these libraries will automatically be added to the project.
-thread - The target is a multi-threaded application or library. The proper defines and compiler flags will automatically be added to the project.
-x11 - The target is a X11 application or library. The proper include paths and libraries will automatically be added to the project.
-windows - The target is a Win32 window application (app only). The proper include paths,compiler flags and libraries will automatically be added to the project.
-console - The target is a Win32 console application (app only). The proper include paths, compiler flags and libraries will automatically be added to the project.
-dll - The target is a shared object/DLL.The proper include paths, compiler flags and libraries will automatically be added to the project.
-staticlib - The target is a static library (lib only). The proper compiler flags will automatically be added to the project.
-plugin - The target is a plugin (lib only). This enables dll as well.
-
These options are used to set the compiler flags:
-exceptions - Exception support is enabled
-rtti - RTTI support is enabled
-stl - STL support is enabled
-
These options define specific things depending on the platform and/or template:
-The CONFIG variable will also be checked when resolving scopes. You may assign anything to this variable.
-For example:
-
-CONFIG += qt console newstuff
-...
-newstuff {
- SOURCES += new.cpp
- HEADERS += new.h
-}
-
-DEFINES
-qmake adds the values of this variable as compiler C preprocessor macros (-D option).
-For example:
-
-DEFINES += USE_MY_STUFF QT_DLL
-
-DEF_FILE
-This is only used on Windows when using the 'app' template.
-Specifies a .def file to be included in the project.
-DESTDIR
-Specifies where to put the target file.
-For example:
-
- DESTDIR = ../../lib
-
-DLLDESTDIR
-Specifies where to copy the target dll.
-HEADERS
-Defines the header files for the project.
-qmake will generate dependency information (unless -nodepend is specified on the command line) for the specified headers. qmake will also automatically detect if tqmoc is required by the classes in these headers, and add the appropriate dependencies and files to the project for generating and linking the tqmoc files.
-For example:
-
-HEADERS = myclass.h \
- login.h \
- mainwindow.h
-
-See also SOURCES.
-INCLUDEPATH
-This variable specifies the #include directories which should be searched when compiling the project. Use ';' or a space as the directory separator.
-For example:
-
- INCLUDEPATH = c:\msdev\include d:\stl\include
-
-FORMS
-This variable specifies the .ui files (see TQt Designer) to be processed through tquic before compiling. All dependencies, headers and source files required to build these .ui files will automatically be added to the project.
-For example:
-
-FORMS = mydialog.ui \
- mywidget.ui \
- myconfig.ui
-
-Note that forms should not be specified using the += operator because this syntax is not fully supported by TQt Designer.
-LEXSOURCES
-This variable contains a list of lex source files. All dependencies, headers and source files will automatically be added to the project for building these lex files.
-For example:
-
-LEXSOURCES = lexer.l
-
-LIBS
-This variable contains a list of libraries to be linked into the project. If you are more comfortable with the Unix convension of -L/-l flags you are free to use them in a cross-platform manner and qmake will do the correct thing with these libraries on Windows (namely this means passing the full path of the library to the linker). The only limitation to this is the library must exist, for qmake to find which directory a -l lib lives in.
-For example:
-
-unix:LIBS += -lmath -L/usr/local/lib
-win32:LIBS += c:\mylibs\math.lib
-
-MOC_DIR
-This variable specifies the directory where all intermediate tqmoc files should be placed.
-For example:
-
-unix:MOC_DIR = ../myproject/tmp
-win32:MOC_DIR = c:\myproject\tmp
-
-OBJECTS_DIR
-This variable specifies the directory where all intermediate objects should be placed.
-For example:
-
-unix:OBJECTS_DIR = ../myproject/tmp
-win32:OBJECTS__DIR = c:\myproject\tmp
-
-UI_DIR
-This variable specifies the directory where all intermediate files from tquic should be placed. This variable overrides both UI_SOURCES_DIR and UI_HEADERS_DIR.
-For example:
-
-unix:UI_DIR = ../myproject/ui
-win32:UI_DIR = c:\myproject\ui
-
-UI_HEADERS_DIR
-This variable specifies the directory where all declaration files (as generated by tquic) should be placed.
-For example:
-
-unix:UI_HEADERS_DIR = ../myproject/ui/include
-win32:UI_HEADERS_DIR = c:\myproject\ui\include
-
-UI_SOURCES_DIR
-This variable specifies the directory where all implementation files (as generated by tquic) should be placed.
-For example:
-
-unix:UI_SOURCES_DIR = ../myproject/ui/src
-win32:UI_SOURCES_DIR = c:\myproject\ui\src
-
-REQUIRES
-This is a special variable processed by qmake. If the contents of this variable do not appear in CONFIG by the time this variable is assigned, then a minimal makefile will be generated that states what dependencies (the values assigned to REQUIRES) are missing.
-This is mainly used in TQt's build system for building the examples.
-SOURCES
-This variable contains the name of all source files in the project.
-For example:
-
-SOURCES = myclass.cpp \
- login.cpp \
- mainwindow.cpp
-
-
-See also HEADERS
-SUBDIRS
-This variable, when used with the 'subdirs' TEMPLATE contains the names of all subdirectories to look for a project file.
-For example:
-
-SUBDIRS = kernel \
- tools
-
-TARGET
-This specifies the name of the target file.
-For example:
-
-TEMPLATE = app
-TARGET = myapp
-SOURCES = main.cpp
-
-The project file above would produce an executable named 'myapp' on unix and 'myapp.exe' on windows.
-TEMPLATE
-This variable contains the name of the template to use when generating the project. The allowed values are:
-app - Creates a makefile for building applications (the default)
-lib - Creates a makefile for building libraries
-subdirs - Creates a makefile for building targets in subdirectories
-vcapp - win32 only Creates an application project file for Visual Studio
-vclib - win32 only Creates a library project file for Visual Studio
-
For example:
-
-TEMPLATE = lib
-SOURCES = main.cpp
-TARGET = mylib
-
-The template can be overridden by specifying a new template type with the -t command line option. This overrides the template type after the .pro file has been processed. With .pro files that use the template type to determine how the project is built, it is necessary to declare TEMPLATE on the command line rather than use the -t option.
-VERSION
-This variable contains the version number of the library if the 'lib' TEMPLATE is specified.
-For example:
-
-VERSION = 1.2.3
-
-DISTFILES
-This variable contains a list of files to be included in the dist target. This feature is supported by UnixMake specs only.
-For example:
-
-DISTFILES += ../program.txt
-
-YACCSOURCES
-This variable contains a list of yacc source files to be included in the project. All dependencies, headers and source files will automatically be included in the project.
-For example:
-
-YACCSOURCES = tqmoc.y
-
-Rarely Used System Variables
-The following variables are also recognized by qmake but are either internal or very rarely used.
-DESTDIR_TARGET
-This variable is set internally by qmake, which is basically the DESTDIR variable with the TARGET variable appened at the end. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-DSP_TEMPLATE
-This variable is set internally by qmake, which specifies where the dsp template file for basing generated dsp files is stored. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-LEXIMPLS
-This variable contains a list of lex implementation files. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-LEXOBJECTS
-This variable contains the names of intermediate lex object files.The value of this variable is typically handled by qmake and rarely needs to be modified.
-LITERAL_HASH
-This variable is used whenever a literal hash character (#) is needed in a variable declaration, perhaps as part of a file name or in a string passed to some external application.
-For example:
-
-# To include a literal hash character, use the $$LITERAL_HASH variable:
-urlPieces = http://doc.trolltech.com/3.3/qmake-manual-8.html LITERAL_HASH
-message($$join(urlPieces, $$LITERAL_HASH))
-
-By using LITERAL_HASH in this way, the # character can be used to construct a URL for the message() function to print to the console.
-MAKEFILE
-This variable specifies the name of the makefile which qmake should use when outputting the dependency information for building a project. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-MAKEFILE_GENERATOR
-This variable contains the name of the makefile generator to use when generating a makefile. The value of this variable is typically handled internally by qmake and rarely needs to be modified.
-OBJECTS
-This variable is generated from the SOURCES variable. The extension of each source file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-OBJMOC
-This variable is set by qmake if files can be found that contain the TQ_OBJECT macro. OBJMOC contains the name of all intermediate tqmoc object files. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-PRECOMPILED_HEADER
-This variable indicates the header file for creating a precompiled header file, to increase the compilation speed of a project. Precompiled headers are currently only supported on some platforms (Windows - all MSVC project types, Mac OS X - Xcode, Makefile, UNIX - gcc 3.3 and up).
-On other platforms, this variable has different meaning, as noted below.
-This variable contains a list of header files that require some sort of pre-compilation step (such as with tqmoc). The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE
-This variable contains the name of the qmake program itself and is placed in generated makefiles. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKESPEC
-This variable contains the name of the qmake configuration to use when generating makefiles. The value of this variable is typically handled by qmake and rarely needs to be modified. Use the QMAKESPEC environment variable instead.
-QMAKE_APP_FLAG
-This variable is empty unless the 'app' TEMPLATE is specified. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified. Use the following instead:
-
-app {
- #conditional code for 'app' template here
-}
-
-QMAKE_APP_OR_DLL
-This variable is empty unless the 'app' or 'dll' TEMPLATE is specified. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_AR_CMD
-This is used on Unix platforms only
-This variable contains the command for invoking the program which creates, modifies and extracts archives. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_DEBUG
-This variable contains the flags for the C compiler in debug mode.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_MT
-This variable contains the compiler flags for creating a multi-threaded application or when the version of TQt that you link against is a multi-threaded statically linked library. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_MT_DBG
-This variable contains the compiler flags for creating a debuggable multi-threaded application or when the version of TQt that you link against is a debuggable multi-threaded statically linked library. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_MT_DLL
-This is used on Windows only
-This variable contains the compiler flags for creating a multi-threaded dll or when the version of TQt that you link against is a multi-threaded dll. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_MT_DLLDBG
-This is used on Windows only
-This variable contains the compiler flags for creating a debuggable multi-threaded dll or when the version of TQt that you link against is a debuggable multi-threaded statically linked library. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_RELEASE
-This variable contains the compiler flags for creating a non-debuggable application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_SHLIB
-This is used on Unix platforms only
-This variable contains the compiler flags for creating a shared library. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_THREAD
-This variable contains the compiler flags for creating a multi-threaded application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_WARN_OFF
-This variable is not empty if the warn_off TEMPLATE option is specified. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CFLAGS_WARN_ON
-This variable is not empty if the warn_on TEMPLATE option is specified. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CLEAN
-This variable contains any files which are not generated files (such as tqmoc and tquic generated files) and object files that should be removed when using "make clean".
-QMAKE_CXXFLAGS_DEBUG
-This variable contains the C++ compiler flags for creating a debuggable application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_MT
-This variable contains the C++ compiler flags for creating a multi-threaded application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_MT_DBG
-This variable contains the C++ compiler flags for creating a debuggable multi-threaded application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_MT_DLL
-This is used on Windows only
-This variable contains the C++ compiler flags for creating a multi-threaded dll. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_MT_DLLDBG
-This is used on Windows only
-This variable contains the C++ compiler flags for creating a multi-threaded debuggable dll. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_RELEASE
-This variable contains the C++ compiler flags for creating an application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_SHLIB
-This variable contains the C++ compiler flags for creating a shared library. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_THREAD
-This variable contains the C++ compiler flags for creating a multi-threaded application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_WARN_OFF
-This variable contains the C++ compiler flags for suppressing compiler warnings. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_CXXFLAGS_WARN_ON
-This variable contains C++ compiler flags for generating compiler warnings. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_EXTENSION_SHLIB
-This variable contains the extention for shared libraries. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_FAILED_REQUIREMENTS
-This variable contains the list of requirements that were failed to be met when qmake was used. For example, the sql module is needed and wasn't compiled into TQt. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_FILETAGS
-This variable contains the file tags needed to be entered into the makefile, such as SOURCES and HEADERS. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_INCDIR
-This variable contains the location of all known header files to be added to INCLUDEPATH when building an application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-POST_TARGETDEPS
-All libraries that the target depends on can be listed in this variable. Some backends do not support this, these include MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support internally by these build tools, this is usefull for explicitly listing dependant static libraries.
-This list will go after all builtin (and $$PRE_TARGETDEPS) dependencies.
-PRE_TARGETDEPS
-All libraries that the target depends on can be listed in this variable. Some backends do not support this, these include MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support internally by these build tools, this is usefull for explicitly listing dependant static libraries.
-This list will go before all builtin dependencies.
-QMAKE_INCDIR_OPENGL
-This variable contains the location of OpenGL header files to be added to INCLUDEPATH when building an application with OpenGL support. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_INCDIR_TQT
-This variable contains the location of all known header file paths to be added to INCLUDEPATH when building a TQt application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_INCDIR_THREAD
-This variable contains the location of all known header file paths to be added to INCLUDEPATH when building a multi-threaded application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_INCDIR_X11
-This is used on Unix platforms only
-This variable contains the location of X11 header file paths to be added to INCLUDEPATH when building a X11 application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_CONSOLE
-This is used on Windows only
-This variable contains link flags when building console programs. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_CONSOLE_DLL
-This is used on Windows only
-This variable contains link flags when building console dlls. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_DEBUG
-This variable contains link flags when building debuggable applications. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_PLUGIN
-This variable contains link flags when building plugins. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_QT_DLL
-This variable contains link flags when building programs that use the TQt library built as a dll. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_RELEASE
-This variable contains link flags when building applications for release. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_SHAPP
-This variable contains link flags when building applications which are using the 'app' template. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_SHLIB
-This variable contains link flags when building shared libraries The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_SONAME
-This variable specifies the link flags to set the name of shared objects, such as .so or .dll. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_THREAD
-This variable contains link flags when building multi-threaded projects. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_WINDOWS
-This is used on Windows only
-This variable contains link flags when building windows projects. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LFLAGS_WINDOWS_DLL
-This is used on Windows only
-This variable contains link flags when building windows dll projects. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBDIR
-This variable contains the location of all known library directories.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBDIR_FLAGS
-This is used on Unix platforms only
-This variable contains the location of all library directory with -L prefixed. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-VPATH
-This variable tells qmake where to search for files it cannot open. With this you may tell qmake where it may look for things like SOURCES, and if it finds an entry in SOURCES that cannot be opened it will look through the entire VPATH list to see if it can find the file on its own.
-See also DEPENDPATH.
-DEPENDPATH
-This variable contains the list of all directories to look in to resolve dependencies. This will be used when crawling through 'included' files.
-QMAKE_LIBDIR_OPENGL
-This variable contains the location of the OpenGL library directory.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBDIR_TQT
-This variable contains the location of the TQt library directory.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBDIR_X11
-This is used on Unix platforms only
-This variable contains the location of the X11 library directory.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS
-This variable contains all project libraries. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_CONSOLE
-This is used on Windows only
-This variable contains all project libraries that should be linked against when building a console application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_OPENGL
-This variable contains all OpenGL libraries. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_OPENGL_QT
-This variable contains all OpenGL TQt libraries.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_QT
-This variable contains all TQt libraries.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_QT_DLL
-This is used on Windows only
-This variable contains all TQt libraries when TQt is built as a dll. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_QT_OPENGL
-This variable contains all the libraries needed to link against if OpenGL support is turned on. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_QT_THREAD
-This variable contains all the libraries needed to link against if thread support is turned on. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_RTMT
-This is used with Borland compilers only
-This variable contains the runtime library needed to link against when building a multi-threaded application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_THREAD
-This is used on Unix platforms only
-This variable contains all libraries that need to be linked against when building a multi-threaded application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_WINDOWS
-This is used on Windows only
-This variable contains all windows libraries.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_X11
-This is used on Unix platforms only
-This variable contains all X11 libraries.The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIBS_X11SM
-This is used on Unix platforms only
-This variable contains all X11 session management libraries. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LIB_FLAG
-This variable is not empty if the 'lib' template is specified. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_LINK_SHLIB_CMD
-This variable contains the command to execute when creating a shared library. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_POST_LINK
-This variable contains the command to execute after linking the TARGET together. This variable is normally empty and therefore nothing is executed, additionally some backends will not support this - mostly only Makefile backends.
-QMAKE_PRE_LINK
-This variable contains the command to execute before linking the TARGET together. This variable is normally empty and therefore nothing is executed, additionally some backends will not support this - mostly only Makefile backends.
-QMAKE_LN_SHLIB
-This variable contains the command to execute when creating a link to a shared library. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_MAKEFILE
-This variable contains the name of the makefile to create. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_MOC_SRC
-This variable contains the names of all tqmoc source files to generate and include in the project. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_QMAKE
-This variable contains the location of qmake if it is not in the path. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_QT_DLL
-This variable is not empty if TQt was built as a dll. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_RUN_CC
-This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_RUN_CC_IMP
-This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_RUN_CXX
-This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_RUN_CXX_IMP
-This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_TARGET
-This variable contains the name of the project target. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-QMAKE_UIC
-This variable contains the location of tquic if it is not in the path. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-It can be used to specify arguments to tquic as well, such as additional plugin paths. For example:
-
- QMAKE_UIC = tquic -L /path/to/plugin
-
-RC_FILE
-This variable contains the name of the resource file for the application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-RES_FILE
-This variable contains the name of the resource file for the application. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-SRCMOC
-This variable is set by qmake if files can be found that contain the TQ_OBJECT macro. SRCMOC contains the name of all the generated tqmoc files. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-TARGET_EXT
-This variable specifies the target's extension. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-TARGET_x
-This variable specifies the target's extension with a major version number. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-TARGET_x.y.z
-This variable specifies the target's extension with version number. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-UICIMPLS
-This variable contains a list of the generated implementation files by TQUIC. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-UICOBJECTS
-This variable is generated from the UICIMPLS variable. The extension of each file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-VER_MAJ
-This variable contains the major version number of the library, if the 'lib' template is specified.
-VER_MIN
-This variable contains the minor version number of the library, if the 'lib' template is specified.
-VER_PAT
-This variable contains the patch version number of the library, if the 'lib' template is specified.
-QMAKE_EXT_MOC
-This variable changes the extention used on included tqmoc files.
-See also File Extensions.
-QMAKE_EXT_UI
-This variable changes the extention used on /e Designer UI files.
-See also File Extensions.
-QMAKE_EXT_PRL
-This variable changes the extention used on created PRL files.
-See also File Extensions, Library Dependencies.
-QMAKE_EXT_LEX
-This variable changes the extention used on files given to lex.
-See also File Extensions, LEXSOURCES.
-QMAKE_EXT_YACC This variable changes the extention used on files given to yacc.
-See also File Extensions, YACCSOURCES.
-QMAKE_EXT_OBJ
-This variable changes the extention used on generated object files.
-See also File Extensions.
-QMAKE_EXT_CPP
-This variable changes the interpretation of all suffixes in this list of values as files of type C++ source code.
-See also File Extensions.
-QMAKE_EXT_H
-This variable changes the interpretation of all suffixes in this list of values as files of type C header files.
-See also File Extensions.
-YACCIMPLS
-This variable contains a list of yacc source files. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-YACCOBJECTS
-This variable contains a list of yacc object files. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.
-Functions
-qmake recognizes the following functions:
-include( filename )
-This function will include the contents of filename into the current project at the point where was included. The function succeeds if filename was included, otherwise it fails. You can check the return value of this function using a scope.
-For example:
-
-include( shared.pri )
-OPTIONS = standard custom
-!include( options.pri ) {
- message( "No custom build options specified" )
- OPTIONS -= custom
-}
-
-exists( file )
-This function will test if file exists. If the file exists, then it will succeed; otherwise it will fail. You can specify a regular expression in file and it will succeed if any file matches the regular expression specified.
-For example:
-
-exists( $(TQTDIR)/lib/libtqt-mt* ) {
- message( "Configuring for multi-threaded TQt..." )
- CONFIG += thread
-}
-
-contains( variablename, value )
-This function will succeed if the variable variablename contains the value value. You can check the return value of this function using a scope.
-For example:
-
-contains( drivers, network ) {
- # drivers contains 'network'
- message( "Configuring for network build..." )
- HEADERS += network.h
- SOURCES += network.cpp
-}
-
-count( variablename, number )
-This function will succeed if the variable variablename contains number elements, otherwise it will fail. You can check the return value of this function using a scope.
-For example:
-
-MYVAR = one two three
-count( MYVAR, 3 ) {
- # always true
-}
-
-infile( filename, var, val )
-This function will succeed if the file filename (when parsed by qmake itself) contains the variable var with a value of val. You may also not pass in a third argument (val) and the function will only test if var has been assigned to in the file.
-isEmpty( variablename )
-This function will succeed if the variable variablename is empty (same as count(variable, 0)).
-system( command )
-This function will execute command in a secondary shell and will succeed if the command exits with an exit status of 1. You can check the return value of this function using a scope.
-For example:
-
- system(ls /bin):HAS_BIN=FALSE
-
-message( string )
-This function will always succeed, and will display the given string to the user.
-error( string )
-This function will never return a value. It will display the given string to the user, and then exit qmake. This function should only be used for very fatal configurations.
-For example:
-
- release:debug:error(You can't have release and debug at the same time!)
-
-Properties
-qmake has a system of persistant information, this allows you to 'set' a variable in qmake once, and each time qmake is invoked this value can be queried. Use the following to set a property in qmake:
-
-qmake -set VARIABLE VALUE
-
-To retrieve this information back from qmake you can do:
-
-qmake -query VARIABLE
-qmake -query #queries all current VARIABLE/VALUE pairs..
-
-This information will be saved into a TQSettings object (meaning it will be stored in different places for different platforms). As VARIABLE is versioned as well, you can set one value in an older version of qmake, and newer versions will retrieve this value, however if you -set VARIABLE into a newer version of qmake the older version will not use this value. You can however query a specific version of a variable if you prefix that version of qmake to VARIABLE, as in:
-
-qmake -query "1.06a/VARIABLE"
-
-qmake also has the notion of 'builtin' properties, for example you can query the installation of TQt for this version of qmake with the QT_INSTALL_PREFIX property:
-
-qmake -query "QT_INSTALL_PREFIX"
-
-These builtin properties cannot have a version prefixed to them as they are not versioned and each qmake will have its own notion of these values. The list below outlines the builtin properties:
-QT_INSTALL_PREFIX - Where the version of TQt this qmake is built for resides
-QT_INSTALL_DATA - Where data for this version of TQt resides
-QMAKE_VERSION - The current version of qmake
-
Finally, these values can be queried in a project file with a special notation such as:
-
-QMAKE_VERS = $$[QMAKE_VERSION]
-
-Environment Variables and Configuration
-QMAKESPEC
-qmake requires a platform and compiler description file which contains many default values used to generate appropriate makefiles. The standard TQt distribution comes with many of these files, located in the 'mkspecs' subdirectory of the TQt installation.
-The QMAKESPEC environment variable can contain any of the following:
-A complete path to a directory containing a qmake.conf file. In this case qmake will open the qmake.conf file from within that directory. If the file does not exist, qmake will exit with an error.
-The name of a platform-compiler combination. In this case, qmake will search in the directory specified by the TQTDIR environment variable.
-
Note: the QMAKESPEC path will automatically be added to the INCLUDEPATH system variable.
-INSTALLS
-It is common on UNIX to be able to install from the same utility as you build with (e.g make install). For this qmake has introduce the concept of an install set. The notation for this is quite simple, first you fill in an "object" in qmake for example:
-
- documentation.path = /usr/local/program/doc
- documentation.files = docs/*
-
-In this way you are telling qmake several things about this install, first that you plan to install to /usr/local/program/doc (the path member), second that you plan to copy everything in the docs directory. Once this is done you may insert it in the install list:
-
- INSTALLS += documentation
-
-Now qmake will take over making sure the correct things are copied to the specified places. If however you require greater control you may use the 'extra' member of the object:
-
- unix:documentation.extra = create_docs; mv master.doc toc.doc
-
-Then qmake will run the things in extra (this is of course platform specific, so you may need to test for your platform first, this case we test for unix). Then it will do the normal processings of the files member. Finally if you appened a builtin install to INSTALLS qmake (and do not specify a files or extra member) will decide what needs to be copied for you, currently the only supported builtin is target:
-
- target.path = /usr/local/myprogram
- INSTALLS += target
-
-With this qmake will know what you plan need copied, and do this for you.
-Cache File
-The cache file (mentioned above in the options) is a special file qmake will read to find settings not specified in the qmake.conf file, the .pro file, or the command line. If -nocache is not specified, qmake will try to find a file called .qmake.cache in parent directories. If it fails to find this file, it will silently ignore this step of processing.
-Library Dependencies
-Often when linking against a library qmake relies on the underlying platform to know what other libraries this library links against, and lets the platform pull them in. In many cases, however, this is not sufficent. For example when statically linking a library there are no libraries linked against, and therefore no dependencies to those libraries are created - however an application that later links against this library will need to know where to find the symbols that the linked in library will require. To help with this situation qmake will follow a library's dependencies when it feels appropriate, however this behaviour must be enabled in qmake. To enable requires two steps. First, you must enable it in the library - to do this you must tell qmake to save information about this library:
-
- CONFIG += create_prl
-
-This is only relevant to the lib template, and will be ignored for all others. When this option is enabled qmake will create a file (called a .prl file) which will save some meta information about the library. This metafile is itself just a qmake project file, but with all internal variables. You are free to view this file, and if deleted qmake will know to recreate it when necesary (either when the .pro file is later read, or if a dependent library (described below) has changed). When installing this library (by using target in INSTALLS, above) qmake will automatically copy the .prl file to your install path.
-The second step to enabling this processing is to turn on reading of the meta information created above:
-
- CONFIG += link_prl
-
-When this is turned on qmake will process all libraries linked to, and find their meta information. With this meta information qmake will figure out what is relevant to linking, specifically it will add to your list of DEFINES as well as LIBS. Once qmake has processed this file, it will then look through the newly introduced LIBS and find their dependent .prl files, and continue until all libraries have been resolved. At this point the makefile is created as usual, and the libraries are linked explicity against your program.
-The internals of the .prl file are left closed so they can easily change later. It is not designed to be changed by hand however, and should only be created by qmake - these .prl files should also not be transfered from operating system to operating system as they may be platform dependent (like a makefile).
-File Extensions
-Under normal circumstances qmake will try to use appropriate file extensions for your platform. There may be times, however, that you would like to override the behavior of these extensions. To do this, you must modify builtin variables in your .pro file, which will in turn changes qmake's interpretation of these files. You may do this as:
-
- QMAKE_EXT_MOC = .mymoc
-
-The variables are as follows:
-QMAKE_EXT_MOC - This modifies the extension placed on included moc files.
-QMAKE_EXT_UI - This modifies the extension used for designer UI files (usually in FORMS).
-QMAKE_EXT_PRL - This modifies the extension placed on library dependency files.
-QMAKE_EXT_LEX - This changes the suffix used in files (usually in LEXSOURCES).
-QMAKE_EXT_YACC - This changes the suffix used in files (usually in YACCSOURCES).
-QMAKE_EXT_OBJ - This changes the suffix used on generated object files.
-
All the above accept just the first value, so you must assign to it one value that will be used through your makefile. There are two variables that accept a list of values, they are:
-Customizing Makefile Output
-qmake often tries to be all things to all build tools, this is often less than ideal when you really need to run special platform dependent commands. This can be achieved with specific instructions to the different qmake backends (currently this is only supported by the UNIX generator).
-The interfaces to customizing the Makefile are done through "objects" as in other places in qmake. The notation for this is quite simple, first you fill in an "object" in qmake for example:
-
- mytarget.target = .buildfile
- mytarget.commands = touch $$mytarget.target
- mytarget.depends = mytarget2
-
- mytarget2.commands = @echo Building $$mytarget.target
-
-The information above defines a qmake target called mytarget which contains a Makefile target called .buildfile, .buildfile is generated by 'touch .buildfile', and finally that this Makefile target depends on the qmake target mytarget2. Additionally we've defined the qmake target mytarget2 which simply echo's something to stdout.
-The final step to making use of the above is to instruct qmake that this is actually an object used by the target building parts of qmake by:
-
-QMAKE_EXTRA_UNIX_TARGETS += mytarget mytarget2
-
-This is all you need to do to actually build custom targets in qmake, of course you may want to tie one of these targets to actually building the qmake build target. To do this, you simply need to include your Makefile target in the list of PRE_TARGETDEPS.
-For convenience there is also a method of customizing (UNIX) projects for generic new compilers (or even preprocessors).
-
-new_moc.output = tqmoc_${QMAKE_FILE_BASE}.cpp
-new_moc.commands = tqmoc ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
-new_moc.depends = g++ -E -M ${QMAKE_FILE_NAME} | sed "s,^.*: ,,"
-new_moc.input = NEW_HEADERS
-QMAKE_EXTRA_UNIX_COMPILERS += new_moc
-
-With this you can create a new moc for qmake, the commands will be executed over all arguments given to a NEW_HEADERS variable (from the input variable), and write to output (and automatically hand this filename to the compiler to be linked into your target). Additionally qmake will execute depends to generate dependency information and place this in the project as well.
-These commands can easily be placed into a cache file, and subsequent .pro files can give several arguments to NEW_HEADERS.
-
-
-
diff --git a/doc/html/qmake-manual.html b/doc/html/qmake-manual.html
deleted file mode 100644
index 2fde1c766..000000000
--- a/doc/html/qmake-manual.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-qmake User Guide
-
-
-
-
-qmake User Guide
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/html/qmake.dcf b/doc/html/qmake.dcf
deleted file mode 100644
index a4ac65a29..000000000
--- a/doc/html/qmake.dcf
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/html/qtmac-as-native.html b/doc/html/qtmac-as-native.html
index 0bd5d76d2..3eb7ad1a2 100644
--- a/doc/html/qtmac-as-native.html
+++ b/doc/html/qtmac-as-native.html
@@ -111,14 +111,14 @@ accessiblity, and hopefully a host of assistive devices.
between their development toolkit and the platform's developer
tools (for example MSVC, gmake, etc). TQt/Mac supports both Unix
style Makefiles, and ProjectBuilder/Xcode project files by using
-the qmake tool. For example:
+the tqmake tool. For example:
- qmake -spec macx-pbuilder project.pro
+ tqmake -spec macx-pbuilder project.pro
- will generate an Xcode project file from project.pro. With qmake
+
will generate an Xcode project file from project.pro. With tqmake
you do not have to worry about rules for TQt's preprocessors (tqmoc
-and tquic) since qmake automatically handles them and ensures that
+and tquic) since tqmake automatically handles them and ensures that
everything necessary is linked into your application.
TQt does not entirely interact with the development environment (for
example plugins to set a file to 'mocable' from within the Xcode
diff --git a/doc/html/signalsandslots.html b/doc/html/signalsandslots.html
index 8653dd361..9c6c16bff 100644
--- a/doc/html/signalsandslots.html
+++ b/doc/html/signalsandslots.html
@@ -173,7 +173,7 @@ connection between them initially.
Run the tqmoc on class definitions that contain
signals or slots. This produces a C++ source file which should be compiled
and linked with the other object files for the application. If you use
-qmake, the makefile rules to
+tqmake, the makefile rules to
automatically invoke the tqmoc will be added to
your makefile for you.
Signals
diff --git a/doc/html/sql-driver.html b/doc/html/sql-driver.html
index 41bb1c06a..955c89e83 100644
--- a/doc/html/sql-driver.html
+++ b/doc/html/sql-driver.html
@@ -130,12 +130,12 @@ transactions are enabled by default.
You need the MySQL header files and as well as the shared library
libmysqlclient.so. Depending on your Linux distribution you need to
install a package which is usually called "mysql-devel".
-
Tell qmake where to find the MySQL
+
Tell tqmake where to find the MySQL
header files and shared libraries (here it is assumed that MySQL is
installed in /usr/local) and run make:
cd $TQTDIR/plugins/src/sqldrivers/mysql
-qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient" mysql.pro
+tqmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient" mysql.pro
make
@@ -147,7 +147,7 @@ Build the plugin as follows (here it is assumed that MySQL is
installed in C:\MYSQL):
cd %TQTDIR%\plugins\src\sqldrivers\mysql
-qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
+tqmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
nmake
@@ -189,27 +189,27 @@ Client install.
tqmoc - the Meta Object Compiler
diff --git a/doc/html/toplevel-example.html b/doc/html/toplevel-example.html
index ab5d266c6..ded384dfa 100644
--- a/doc/html/toplevel-example.html
+++ b/doc/html/toplevel-example.html
@@ -213,7 +213,7 @@ this attribute for toplevel window.
To build the example go to the toplevel directory
(TQTDIR/examples/toplevel)
(3)
-and run qmake to generate the makefile, then use the make tool to
+and run tqmake to generate the makefile, then use the make tool to
build the library.
diff --git a/doc/html/tqassistantclient.html b/doc/html/tqassistantclient.html
index bff736423..03c5c82f3 100644
--- a/doc/html/tqassistantclient.html
+++ b/doc/html/tqassistantclient.html
@@ -82,7 +82,7 @@ emitted. Similarly when closeAssistant() is called,
This class is not included in the TQt library itself. To use it you
must link against libtqassistantclient.a (Unix) or tqassistantclient.lib (Windows), which is built into INSTALL/lib
if you built the TQt tools (INSTALL is the directory where TQt is
-installed). If you use qmake, then you can simply add the following
+installed). If you use tqmake, then you can simply add the following
line to your pro file:
LIBS += -ltqassistantclient
diff --git a/doc/html/tqmake-manual-1.html b/doc/html/tqmake-manual-1.html
new file mode 100644
index 000000000..6c48a7a68
--- /dev/null
+++ b/doc/html/tqmake-manual-1.html
@@ -0,0 +1,45 @@
+
+
+
+
+Introduction to tqmake
+
+
+
+
+
[Home] [Next: Installing tqmake]
+Introduction to tqmake
+Introduction to tqmake
+tqmake is a tool created by Trolltech to write makefiles for different compilers and platforms.
+Writing makefiles by hand can be difficult and error prone, especially if several makefiles are required for different compiler and platform combinations. With tqmake, developers create a simple single 'project' file and run tqmake to generate the appropriate makefiles. tqmake takes care of all the compiler and platform dependencies, freeing developers to focus on their code. Trolltech uses tqmake as the primary build tool for the TQt library, and for the tools supplied with TQt.
+tqmake also takes care of TQt's special requirements, automatically including build rules for tqmoc and tquic.
+
+[Home] [Next: Installing tqmake]
+
+
diff --git a/doc/html/tqmake-manual-2.html b/doc/html/tqmake-manual-2.html
new file mode 100644
index 000000000..75b5f0644
--- /dev/null
+++ b/doc/html/tqmake-manual-2.html
@@ -0,0 +1,52 @@
+
+
+
+
+Installing tqmake
+
+
+
+
+[Prev: Introduction to tqmake] [Home] [Next: The 10 minute guide to using tqmake]
+Installing tqmake
+Installing tqmake
+tqmake is built by default when TQt is built.
+This section explains how to build tqmake manually. Skip ahead to The 10 minute guide to using tqmake, if you already have tqmake.
+Installing tqmake manually
+Before building TQt manually the following environment variables must be set:
+QMAKESPEC
This must be set to the platform and compiler combination that you are using on your system.
For example, if you are using Windows and Microsoft Visual Studio, you would set this environment variable to win32-msvc. If you are using Solaris and g++, you would set this environment variable to solaris-g++.
+The following is a list of environment variables available to choose from when setting QMAKESPEC:
+aix-64 hpux-cc irix-032 netbsd-g++ solaris-cc unixware7-g++ aix-g++ hpux-g++ linux-cxx openbsd-g++ solaris-g++ aix-xlc hpux-n64 linux-g++ openunix-cc sunos-g++ win32-g++ bsdi-g++ hpux-o64 linux-icc qnx-g++ tru64-cxx win32-msvc dgux-g++ hurd-g++ linux-kcc reliant-64 tru64-g++ win32-watc freebsd-g++ irix-64 macx-pbuilder reliant-cds ultrix-g++ win32-visa hpux-acc irix-g++ macx-g++ sco-g++ unixware-g hpux-acc irix-n32 solaris-64 unixware7-cc
+TQTDIR
This must be set to where TQt is (or will be) installed. For example, c:\qt and \local\qt
+
Once the environment variables are set go into the tqmake directory, $TQTDIR/tqmake, e.g. C:\qt\tqmake. Now run make or nmake depending on your compiler.
+When the make has completed, tqmake is ready for use.
+
+[Prev: Introduction to tqmake] [Home] [Next: The 10 minute guide to using tqmake]
+
+
diff --git a/doc/html/tqmake-manual-3.html b/doc/html/tqmake-manual-3.html
new file mode 100644
index 000000000..3747ff67f
--- /dev/null
+++ b/doc/html/tqmake-manual-3.html
@@ -0,0 +1,93 @@
+
+
+
+
+The 10 minute guide to using tqmake
+
+
+
+
+[Prev: Installing tqmake] [Home] [Next: tqmake Tutorial]
+The 10 minute guide to using tqmake
+Creating a project file
+tqmake uses information stored in project (.pro) files to determine what should go in the makefiles it generates.
+A basic project file contains information about the application, for example, which files are needed to compile the application, and which configuration settings to use.
+Here's a simple example project file:
+
+ SOURCES = hello.cpp
+ HEADERS = hello.h
+ CONFIG += qt warn_on release
+
+We'll provide a brief line-by-line explanation, deferring the detail until later on in the manual.
+
+ SOURCES = hello.cpp
+
+This line specifies the source files that implement the application. In this case there is just one file, hello.cpp. Most applications require multiple files; this situation is dealt with by listing all the files on the same line space separated, like this:
+
+ SOURCES = hello.cpp main.cpp
+
+Alternatively, each file can be listed on a separate line, by escaping the newlines, like this:
+
+ SOURCES = hello.cpp \
+ main.cpp
+
+A more verbose approach is to list each file separately, like this:
+
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+
+This approach uses "+=" rather than "=" which is safer, because it always adds a new file to the existing list rather than replacing the list.
+The HEADERS line is used to specify the header files created for use by the application, e.g.
+
+ HEADERS += hello.h
+
+Any of the approaches used to list source files may be used for header files.
+The CONFIG line is used to give tqmake information about the application's configuration.
+
+ CONFIG += qt warn_on release
+
+The "+=" is used here, because we add our configuration options to any that are already present. This is safer than using "=" which replaces all options with just those specified.
+The qt part of the CONFIG line tells tqmake that the application is built using TQt. This means that tqmake will link against the TQt libraries when linking and add in the neccesary include paths for compiling.
+The warn_on part of the CONFIG line tells tqmake that it should set the compiler flags so that warnings are output.
+The release part of the CONFIG line tells tqmake that the application must be built as a release application. During development, programmers may prefer to replace release with debug, which is discussed later.
+Project files are plain text (i.e. use an editor like notepad, vim or xemacs) and must be saved with a '.pro' extension. The name of the application's executable will be the same as the project file's name, but with an extension appropriate to the platform. For example, a project file called 'hello.pro' will produce 'hello.exe' on Windows and 'hello' on Unix.
+Generating a makefile
+When you have created your project file it is very easy to generate a makefile, all you need to do is go to where you have created your project file and type:
+Makefiles are generated from the '.pro' files like this:
+
+ tqmake -o Makefile hello.pro
+
+For Visual Studio users, tqmake can also generate '.dsp' files, for example:
+
+ tqmake -t vcapp -o hello.dsp hello.pro
+
+
+[Prev: Installing tqmake] [Home] [Next: tqmake Tutorial]
+
+
diff --git a/doc/html/tqmake-manual-4.html b/doc/html/tqmake-manual-4.html
new file mode 100644
index 000000000..070dca239
--- /dev/null
+++ b/doc/html/tqmake-manual-4.html
@@ -0,0 +1,173 @@
+
+
+
+
+tqmake Tutorial
+
+
+
+
+[Prev: The 10 minute guide to using tqmake] [Home] [Next: tqmake Concepts]
+tqmake Tutorial
+Introduction to the tqmake tutorial
+This tutorial teaches you how to use tqmake. We recommend that you read the tqmake user guide after completing this tutorial.
+Starting off simple
+Let's assume that you have just finished a basic implementation of your application, and you have created the following files:
+hello.cpp
+hello.h
+main.cpp
+
You will find these files in qt/tqmake/examples/tutorial. The only other thing you know about the setup of the application is that it's written in TQt. First, using your favorite plain text editor, create a file called hello.pro in qt/tqmake/tutorial. The first thing you need to do is add the lines that tell tqmake about the source and header files that are part of your development project.
+We'll add the source files to the project file first. To do this you need to use the SOURCES variable. Just start a new line with SOURCES += and put hello.cpp after it. You should have something like:
+
+ SOURCES += hello.cpp
+
+We repeat this for each source file in the project, until we end up with:
+
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+
+If you prefer to use a Make-like syntax, with all the files listed in one go you can use the newline escaping like this:
+
+ SOURCES = hello.cpp \
+ main.cpp
+
+Now that the source files are listed in the project file, the header files must be added. These are added in exactly the same way as source files, except that the variable name is HEADERS:
+Once you have done this, your project file should look something like this:
+
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+
+The target name is set automatically; it is the same as the project file, but with the suffix appropriate to the platform. For example, if the project file is called 'hello.pro', the target will be 'hello.exe' on Windows and 'hello' on Unix. If you want to use a different name you can set it in the project file:
+
+ TARGET = helloworld
+
+The final step is to set the CONFIG variable. Since this is a TQt application, we need to put 'qt' on the CONFIG line so that tqmake will add the relevant libraries to be linked against and ensure that build lines for tqmoc and tquic are included in the makefile.
+The finished project file should look like this:
+
+ CONFIG += qt
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+
+You can now use tqmake to generate a makefile for your application. On the command line, in your application directory, type:
+
+ tqmake -o Makefile hello.pro
+
+Then type make or nmake depending on the compiler you use.
+Making an application debuggable
+The release version of an application doesn't contain any debugging symbols or other debuggin information. During development it is useful to produce a debugging version of the application that has the relevant information. This is easily achieved by adding 'debug' to the CONFIG variable in the project file.
+For example:
+
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+
+Use tqmake as before to generate a makefile and you will be able to debug your application.
+Adding platform specific source files
+After a few hours of coding, you might have made a start on the platform specific part of your application, and decided to keep the platform dependent code separate. So you now have two new files to include into your project file - hellowin.cpp and hellounix.cpp. We can't just add these to the SOURCES variable since this will put both files in the makefile. So what we need to do here is to use a scope which will be processed depending on which platform tqmake is run on.
+A simple scope which will add in the platform dependent file for Windows looks like this:
+
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+
+So if tqmake is run on Windows, it will add hellowin.cpp to the list of source files. If tqmake is run on any other platform, it will simply ignore it. Now all that is left to be done is to create a scope for the unix dependent file.
+When you have done that, your project file should now look something like this:
+
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+ unix {
+ SOURCES += hellounix.cpp
+ }
+
+Use tqmake as before to generate a makefile.
+Stopping tqmake if a file doesn't exist
+You may not want to create a makefile if a certain file doesn't exist. We can check if a file exists by using the exists() function. We can stop tqmake from processing by using the error() function. This works in the same way as scopes. Simply replace the scope condition with the function. A check for a main.cpp file looks like this:
+
+ !exists( main.cpp ) {
+ error( "No main.cpp file found" )
+ }
+
+The "!" is used to negate the test, i.e. exists( main.cpp ) is true if the file exists and !exists( main.cpp ) is true if the file doesn't exist.
+
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+ unix {
+ SOURCES += hellounix.cpp
+ }
+ !exists( main.cpp ) {
+ error( "No main.cpp file found" )
+ }
+
+Use tqmake as before to generate a makefile. If you rename main.cpp temporarily, you will see the message and tqmake will stop processing.
+Checking for more than one condition
+Suppose you use Windows and you want to be able to see the tqDebug() statements when you run your application on the command line. Unless you build your application with the console setting, you won't see the output. We can easily put console on the CONFIG line so that on Windows the makefile will have this setting. But let's say that we only want to add the CONFIG line if we are running on Windows and when debug is already on the CONFIG line. This requires using two nested scopes; just create one scope, then create the other inside that one. Put the settings to be processed inside the last scope, like this:
+
+ win32 {
+ debug {
+ CONFIG += console
+ }
+ }
+
+Nested scopes can be joined together using colons, so the final project file looks like this:
+
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+ unix {
+ SOURCES += hellounix.cpp
+ }
+ !exists( main.cpp ) {
+ error( "No main.cpp file found" )
+ }
+ win32:debug {
+ CONFIG += console
+ }
+
+That's it! You have now completed the tutorial for tqmake, and are ready to write project files for your development projects.
+
+[Prev: The 10 minute guide to using tqmake] [Home] [Next: tqmake Concepts]
+
+
diff --git a/doc/html/tqmake-manual-5.html b/doc/html/tqmake-manual-5.html
new file mode 100644
index 000000000..52b57dfd6
--- /dev/null
+++ b/doc/html/tqmake-manual-5.html
@@ -0,0 +1,114 @@
+
+
+
+
+tqmake Concepts
+
+
+
+
+[Prev: tqmake Tutorial] [Home] [Next: tqmake's Advanced Concepts]
+tqmake Concepts
+Introducing tqmake
+tqmake is an easy-to-use tool from Trolltech that creates makefiles for development projects across different platforms. tqmake simplifies the generation of makefiles so that only a few lines of information are needed to create a makefile. tqmake can be used for any software project whether it is written in TQt or not, although it also contains additional features to support TQt development.
+tqmake generates a makefile based on the information in a project file. Project files are created by the developer. Project files are usually simple, but can be quite sophisticated if required. tqmake can also generate projects for Microsoft Visual studio without having to change the project file.
+tqmake's Concepts
+The QMAKESPEC environment variable
+Before tqmake can be used to build makefiles, the QMAKESPEC environment variable must be set to the platform-compiler combination that is being used on the system. The QMAKESPEC environment variable tells tqmake where to look to find platform and compiler specific information. This ensures that the right libraries are used, and that the generated makefile uses the correct syntax. A list of the currently supported platform-compiler combinations can be found in qt/mkspecs. Just set your environment variable to one of the directories listed.
+For example, if you are using Microsoft Visual Studio on Windows, then you would set the QMAKESPEC environment variable to win32-msvc. If you are using gcc on Solaris then you would set your QMAKESPEC environment variable to solaris-g++.
+Inside each of the directories in qt/mkspecs, there is a tqmake.conf file which contains the platform and compiler specific information. These settings are applied to any project that is built using tqmake and should not be modified unless you're an expert. For example, if all your applications had to link against a particular library, you might add this information to the relevant tqmake.conf file.
+Project (.pro) files
+A project file is used to tell tqmake the details it needs to know about creating a makefile for the application. For instance, a list of source files and header files that should be put into the project file; any application specific configuration, such as an extra library that should be linked against, or an extra include path.
+'#' comments
+You can add comments to project files. Comments begin with the '#' symbol and run to the end of the line.
+Templates
+The template variable tells tqmake what sort of makefile should be generated for the application. The following choices are available:
+app - Creates a makefile that builds an application. This is the default, so if a template is not specified, this is used.
+lib - Creates a makefile that builds a library.
+vcapp - Creates a Visual Studio Project file which builds an application.
+vclib - Creates a Visual Studio Project file which builds a library.
+subdirs - This is a special template which creates a makefile which will go into the specified directories and create a makefile for the project file and call make on it.
+
The 'app' template
+The 'app' template tells tqmake to generate a makefile that will build an application. When using this template the following tqmake system variables are recognized. You should use these in your .pro file to specify information about your application.
+HEADERS - A list of all the header files for the application.
+SOURCES - A list of all the source files for the application.
+FORMS - A list of all the .ui files (created using TQt Designer) for the application.
+LEXSOURCES - A list of all the lex source files for the application.
+YACCSOURCES - A list of all the yacc source files for the application.
+TARGET - Name of the executable for the application. This defaults to the name of the project file. (The extension, if any, is added automatically).
+DESTDIR - The directory in which the target executable is placed.
+DEFINES - A list of any additional pre-processor defines needed for the application.
+INCLUDEPATH - A list of any additional include paths needed for the application.
+DEPENDPATH - The dependency search path for the application.
+VPATH - The search path to find supplied files.
+DEF_FILE - Windows only: A .def file to be linked against for the application.
+RC_FILE - Windows only: A resource file for the application.
+RES_FILE - Windows only: A resource file to be linked against for the application.
+
You only need to use the system variables that you have values for, for instance, if you don't have any extra INCLUDEPATHs then you don't need to specify any, tqmake will add in the default ones needed. For instance, an example project file might look like this:
+
+TEMPLATE = app
+DESTDIR = c:\helloapp
+HEADERS += hello.h
+SOURCES += hello.cpp
+SOURCES += main.cpp
+DEFINES += QT_DLL
+CONFIG += qt warn_on release
+
+For items that are single valued, e.g. the template or the destination directory, we use "="; but for multi-valued items we use "+=" to add to the existing items of that type. Using "=" replaces the item's value with the new value, for example if we wrote DEFINES=QT_DLL, all other definitions would be deleted.
+The 'lib' template
+The 'lib' template tells tqmake to generate a makefile that will build a library. When using this template, in addition to the system variables mentioned above for the 'app' template the VERSION variable is supported. You should use these in your .pro file to specify information about the library.
+The 'subdirs' template
+The 'subdirs' template tells tqmake to generate a makefile that will go into the specified subdirectories and generate a makefile for the project file in the directory and call make on it.
+The only system variable that is recognised for this template is the SUBDIRS variable. This variable contains a list of all the subdirectories that contain project files to be processed. It is essential that the project file in the sub directory has the same name as the subdirectory, so that tqmake can find it. For example, if the subdirectory is called 'myapp' then the project file in that directory should be called myapp.pro in that directory.
+The CONFIG variable
+The config variable specifies the options that the compiler should use and the libraries that should be linked against. Anything can be added to the config variable, but the options covered below are recognised by tqmake internally.
+The following options control what compiler flags are used:
+release - The application is to be built in release mode. This is ignored if 'debug' is specified.
+debug - The application is to be built in debug mode.
+warn_on - The compiler should output as many warnings as possible. This is ignored if 'warn_off' is specified.
+warn_off - The compiler should output as few warnings as possible.
+
The following options define the type of library/application to be built:
+qt - The application is a TQt application and should link against the TQt library.
+thread - The application is a multi-threaded application.
+x11 - The application is an X11 application or library.
+windows - 'app' template only: the application is a Windows window application.
+console - 'app' template only: the application is a Windows console application.
+dll - 'lib' template only: The library is a shared library (dll).
+staticlib - 'lib' template only: The library is a static library.
+plugin - 'lib' template only: The library is a plugin; this enables the dll option.
+
For example, if your application uses the TQt library and you want to build it as a debuggable multi-threaded application, your project file will have the following line:
+
+ CONFIG += qt thread debug
+
+Note, that you must use "+=", not "=", or tqmake will not be able to use the settings used to build TQt as a guide as what type of TQt library was built.
+
+[Prev: tqmake Tutorial] [Home] [Next: tqmake's Advanced Concepts]
+
+
diff --git a/doc/html/tqmake-manual-6.html b/doc/html/tqmake-manual-6.html
new file mode 100644
index 000000000..b6e759d2f
--- /dev/null
+++ b/doc/html/tqmake-manual-6.html
@@ -0,0 +1,241 @@
+
+
+
+
+tqmake's Advanced Concepts
+
+
+
+
+[Prev: tqmake Concepts] [Home] [Next: Using Precompiled Headers]
+tqmake's Advanced Concepts
+tqmake's Advanced Concepts
+The tqmake project files we've seen up to now have been very simple, just a list of name = value and name += value lines. tqmake provides a lot more power, for example you can use a single project file to produce makefiles for multiple platforms.
+Operators
+So far, you have seen the = operator and += operator being used in a project file. There are more operators available for use; but some of these should be used carefully as they may change more than you expect them to.
+The '=' operator
+This operator simply assigns a value to a variable, it is used like this:
+
+ TARGET = myapp
+
+This sets the TARGET variable to myapp. This will remove any previously set TARGET.
+The '+=' operator
+This operator appends a value to the list of values in a variable. It is used like this:
+
+ DEFINES += QT_DLL
+
+This appends QT_DLL to the list of pre-processor defines to be put in the makefile.
+The '-=' operator
+This operator removes a value from the list of values in a variable. It is used like this:
+
+ DEFINES -= QT_DLL
+
+This removes QT_DLL from the list of pre-processor defines to be put in the makefile.
+The '*=' operator
+This operator only adds a value to the list of values in a variable if it doesn't already exist. It is used like this:
+
+ DEFINES *= QT_DLL
+
+QT_DLL will only be added to the list of pre-processor defines if it is not already defined.
+The '~=' operator
+This operator replaces any values that match the regexp with the specified value. It is used like this:
+
+ DEFINES ~= s/QT_[DT].+/QT
+
+This removes any values in the list that start with QT_D or QT_T with QT.
+Scopes
+A scope are similar to 'if' statements, if a certain condition is true, the settings inside the scope are processed. A scope is written like this:
+
+ win32 {
+ DEFINES += QT_DLL
+ }
+
+The above code will add the QT_DLL define to the makefile if tqmake is used on a Windows platform. If tqmake is used on a different platform than Windows, the define will be ignored. You may also perform single line conditionals/assignments with tqmake like this:
+
+ win32:DEFINES += QT_DLL
+
+For example, suppose we want to process something on all platforms except for Windows. We can achieve this by negating the scope like this:
+
+ !win32 {
+ DEFINES += QT_DLL
+ }
+
+Any entry on the CONFIG line is also a scope. For example, if you write this:
+
+ CONFIG += warn_on
+
+you will have a scope called 'warn_on'. This makes it easy to change the configuration for a project without losing all the custom settings that might be needed for a specific configuration. Since it is possible to put your own values on the CONFIG line, this provides you with a very powerful configuration tool for your makefiles. For example:
+
+ CONFIG += qt warn_on debug
+ debug {
+ TARGET = myappdebug
+ }
+ release {
+ TARGET = myapp
+ }
+
+In the above code, two scopes are created which depend on what is put on the CONFIG line. In the example, debug is on the config line, so the TARGET variable is set to myappdebug. If release was on the config line, then the TARGET variable would be set to myapp.
+It is also possible to check for two things before processing some settings. For instance, if you want to check if the platform is Windows and that the thread configuration is set, you would write this:
+
+ win32 {
+ thread {
+ DEFINES += TQT_THREAD_SUPPORT
+ }
+ }
+
+To save writing many nested scopes, you can nest scopes using a colon like this:
+
+ win32:thread {
+ DEFINES += TQT_THREAD_SUPPORT
+ }
+
+Once a test has been performed you may also do else/elseif operations. With this you may easily write complicated tests. This can be done with the special 'else' scope, it can be combined with other scopes (separated by colons as above) for example:
+
+ win32:thread {
+ DEFINES += TQT_THREAD_SUPPORT
+ } else:debug {
+ DEFINES += QT_NOTHREAD_DEBUG
+ } else {
+ message("Unknown configuration")
+ }
+
+Variables
+The variables that we have encountered so far are system variables, such as DEFINES, SOURCES and HEADERS. It is possible for you to create your own variables so that you use them in scopes. It's easy to create your own variable; just name it and assign something to it. For example:
+
+ MY_VARIABLE = value
+
+There are no restricitions on what you do to your own variables, as tqmake will just ignore them unless it needs to look at them for a scope.
+You can also assign the value of a current variable to another variable by prefixing $$ to the variable name. For example:
+
+ MY_DEFINES = $$DEFINES
+
+Now the MY_DEFINES variable contains what is in the DEFINES variable at this point in the project file. This is also equivalent to:
+
+ MY_DEFINES = $${DEFINES}
+
+The second notation allows you to adjoin the variable expansion to another value without separating by space. tqmake will allow a variable to contain anything (including $(VALUE), which will be placed directly into the Makefile, and allow it to expand as appropriate, usually an environment variable). However, if you require an environment variable to be replaced immediately then you may use the $$() notation. For example:
+
+ MY_DEFINES = $$(ENV_DEFINES)
+
+This will set MY_DEFINES to the value of the evironment variable ENV_DEFINES as it parses the .pro file. Additionally you may call built-in functions in variable replacing. These functions (not to be confused with Test Functions as enumerated in the next section) are listed below:
+join( variablename, glue, before, after )
+This will join the value of variablename with glue. If this value is non-empty it will prefix the value with before and suffix it with after. variablename is the only required field, the others will default to empty strings. If you need to encode spaces in glue, before, or after you must quote them.
+prompt( question )
+This will display question, and read from stdin as a return value.
+member( variablename, position )
+This will place the value in variablename in position position of the list. If the value of variablename is not long this will return an empty string. variablename is the only required field, if not specified position will default to the first value in the list (0).
+find( variablename, substr )
+This will place all the values in variablename that match substr. substr may be a regular expression as well, and will be matched accordingly.
+
+ MY_VAR = one two three four
+ MY_VAR2 = $$join(MY_VAR, " -L", -L) -Lfive
+ MY_VAR3 = $$member(MY_VAR, 2) $$find(MY_VAR, t.*)
+
+MY_VAR2 will contain '-Lone -Ltwo -Lthree -Lfour -Lfive', and MYVAR3 will contains 'three two three'.
+system( program_and_args )
+This will return the stdout/stderr of the program executed, and parse it as normally expected. You can use this to interrogate information about the platform for example.
+
+ UNAME = $$system(uname -s)
+ contains( UNAME, [lL]inux ):message( This looks like Linux ($$UNAME) to me )
+
+Test Functions
+tqmake provides built-in functions that perform simple, yet powerful tests. These tests may be used in place of scopes (as described above), in some cases it is more usefull to use the test function by itself ignoring its test value.
+contains( variablename, value )
+If value is in the list of values stored in the variable called variablename, then the settings inside the scope will be processed. For example:
+
+ contains( CONFIG, thread ) {
+ DEFINES += TQT_THREAD_SUPPORT
+ }
+
+If thread is in the list of values for the CONFIG variable, then TQT_THREAD_SUPPORT will be added to the list of values in the DEFINES variable.
+count( variablename, number )
+If number matches the number of values stored in the variable called variablename, then the settings inside the scope will be processed. For example:
+
+ count( DEFINES, 5 ) {
+ CONFIG += debug
+ }
+
+error( string )
+This function outputs the string given and then makes tqmake exit. For example:
+
+ error( "An error has occured" )
+
+The text "An error has occured" will be displayed on the console and tqmake will exit.
+exists( filename )
+If the specified file exists, then the settings inside the scope will be processed. For example:
+
+ exists( /local/qt/tqmake/main.cpp ) {
+ SOURCES += main.cpp
+ }
+
+If /local/qt/tqmake/main.cpp exists then main.cpp is added to the list of source files.
+Note that "/" can be used as a directory separator regardless of the platform.
+equals( variable, value )
+If the specified variable is equal to the value passed the scope will be processed. For example:
+
+ NUMBERS = 1 2 3
+ equals( NUMBERS, 3 4 5 ) {
+ message("The numbers are equal")
+ }
+
+The message will not be displayed because "1 2 3" does not equal "1 2 3". As with all functions you can pass an expanded variable as the value argument (ie, $$NUMBERS).
+include( filename )
+The contents of filename are included at this point in the project file, so any settings in the specified file will be processed. An example of this is:
+
+ include( myotherapp.pro )
+
+Any settings in the myotherapp.pro project file are now processed.
+isEmpty( variablename )
+This is the equivalent of using count( variablename, 0 ). If the variable called variablename has no elements, then the settings inside the scope will be processed. An example of this is:
+
+ isEmpty( CONFIG ) {
+ CONFIG += qt warn_on debug
+ }
+
+message( string )
+This function simply outputs a message on the console.
+
+ message( "This is a message" )
+
+The text "This is a message" is output to the console and processing of the project file carries on.
+system( command )
+The specified command is performed and if it returns an exit code of 1, the settings inside the scope are processed. For example:
+
+ system( ls /bin ) {
+ SOURCES += bin/main.cpp
+ HEADERS += bin/main.h
+ }
+
+So if the command ls /bin returns 1 then bin/main.cpp is added to the list of sources and bin/main.h is added to the list of headers.
+infile( filename, var, val )
+This function will succeed if the file filename (when parsed by tqmake itself) contains the variable var with a value of val. You may also not pass in a third argument (val) and the function will only test if var has been assigned to in the file.
+
+[Prev: tqmake Concepts] [Home] [Next: Using Precompiled Headers]
+
+
diff --git a/doc/html/tqmake-manual-7.html b/doc/html/tqmake-manual-7.html
new file mode 100644
index 000000000..b40556b63
--- /dev/null
+++ b/doc/html/tqmake-manual-7.html
@@ -0,0 +1,202 @@
+
+
+
+
+Using Precompiled Headers
+
+
+
+
+[Prev: tqmake's Advanced Concepts] [Home] [Next: tqmake Command Reference]
+Using Precompiled Headers
+About Precompiled Headers
+Precompiled headers are a performance feature supported by some compilers to compile a stable body of code, and store the compiled state of the code in a binary file. During subsequent compilations, the compiler will load the stored state, and continue compiling the specified file. Each subsequent compilation is faster because the stable code does not need to be recompiled.
+tqmake supports the use of precompiled headers (PCH) on some platforms and build environments, including:
+Windows
+Mac OS X
+Makefile
+Xcode
+GCC 3.3 and up
+
Unix
+
Adding PCH to your project
+Contents of the precompiled header file
+The precompiled header must contain code which is stable and static throughout your project. A typical PCH might look like this:
+stable.h
+
+ /* Add C includes here */
+
+ #if defined __cplusplus
+ /* Add C++ includes here */
+ #include <stdlib>
+ #include <iostream>
+ #include <vector>
+ #include <tqapplication.h> // TQt includes
+ #include <tqpushbutton.h>
+ #include <tqlabel.h>
+ #include "thirdparty/include/libmain.h"
+ #include "my_stable_class.h"
+ ...
+ #endif
+
+Note that a precompiled header file needs to separate C includes from CPP includes, since the precompiled header file for C files may not contain C++ code.
+Project options
+To make your project use PCH, the only thing you need to change in your project settings (.pro), is to include the PRECOMPILED_HEADER option:
+
+ PRECOMPILED_HEADER = stable.h
+
+tqmake will handle the rest, to ensure the creation and use of the precompiled header file. You do not need to include the precompiled header file in HEADERS, as tqmake will do this if the configuration supports PCH.
+All platforms that support precompiled headers have the configuration option precompile_header set. Using this option, you may trigger conditional blocks in your .pro file, to add settings when using PCH. For example:
+
+ precompile_header:!isEmpty(PRECOMPILED_HEADER) {
+ DEFINES += USING_PCH
+ }
+
+
+Example project
+You can find the following source code in the qt/tqmake/examples/precompile directory:
+mydialog.ui
+ <!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+ <class>MyDialog</class>
+ <widget class="TQDialog">
+ <property name="name">
+ <cstring>MyDialog</cstring>
+ </property>
+ <property name="caption">
+ <string>Mach 2!</string>
+ </property>
+ <vbox>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>aLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Join the life in the fastlane; - PCH enable your project today! -</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>aButton</cstring>
+ </property>
+ <property name="text">
+ <string>&Quit</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </UI>
+
+ stable.h
+ /* Add C includes here */
+
+ #if defined __cplusplus
+ /* Add C++ includes here */
+
+ # include <iostream>
+ # include <tqapplication.h>
+ # include <tqpushbutton.h>
+ # include <tqlabel.h>
+ #endif
+
+ myobject.h
+ #include <tqobject.h>
+
+ class MyObject : public TQObject
+ {
+ public:
+ MyObject();
+ ~MyObject();
+ };
+
+ myobject.cpp
+ #include <iostream>
+ #include <tqobject.h>
+ #include "myobject.h"
+
+ MyObject::MyObject()
+ : TQObject()
+ {
+ std::cout << "MyObject::MyObject()\n";
+ }
+
+ util.cpp
+ void util_function_does_nothing()
+ {
+ // Nothing here...
+ int x = 0;
+ ++x;
+ }
+
+ main.cpp
+ #include <tqapplication.h>
+ #include <tqpushbutton.h>
+ #include <tqlabel.h>
+ #include "myobject.h"
+ #include "mydialog.h"
+
+ int main(int argc, char **argv)
+ {
+ TQApplication app(argc, argv);
+
+ MyObject obj;
+ MyDialog dia;
+ app.setMainWidget( &dia );
+ dia.connect( dia.aButton, TQ_SIGNAL(clicked()), TQ_SLOT(close()) );
+ dia.show();
+
+ return app.exec();
+ }
+
+ precompile.pro
+ #############################################
+ #
+ # Example for using Precompiled Headers
+ #
+ #############################################
+ TEMPLATE = app
+ LANGUAGE = C++
+ CONFIG += console precompile_header
+
+ # Use Precompiled headers (PCH)
+ PRECOMPILED_HEADER = stable.h
+
+ HEADERS += stable.h \
+ myobject.h
+ SOURCES += main.cpp \
+ myobject.cpp \
+ util.cpp
+ FORMS = mydialog.ui
+
+
+[Prev: tqmake's Advanced Concepts] [Home] [Next: tqmake Command Reference]
+
+
diff --git a/doc/html/tqmake-manual-8.html b/doc/html/tqmake-manual-8.html
new file mode 100644
index 000000000..8945b216b
--- /dev/null
+++ b/doc/html/tqmake-manual-8.html
@@ -0,0 +1,728 @@
+
+
+
+
+ tqmake Command Reference
+
+
+
+
+[Prev: Using Precompiled Headers] [Home]
+ tqmake Command Reference
+tqmake Command Reference
+About This Reference
+This reference is a detailed index of all command line options, configurations and internal variables used by the cross-platform makefile generation utility tqmake.
+In addition to the variables and functions described in the following sections, tqmake project files may also include comments. Comments begin with the '#' symbol and run to the end of the line.
+Command Line Options
+Syntax
+
+tqmake [options] files
+
+Options
+The following options can be specified on the command line to tqmake:
+-o file
tqmake output will be directed to file. if this argument is not specified, then tqmake will try to guess a suitable name. If '-' is specified, output is directed to stdout.
+-unix
tqmake will run in unix mode. In this mode, Unix file naming and path conventions will be used, additionally testing for unix (as a scope) will succeed. This is the default mode on all Unices.
+-macx
tqmake will run in Mac OS X mode. In this mode, Unix file naming and path conventions will be used, additionally testing for macx (as a scope) will succeed. This is the default mode on Mac OS X.
+-win32
tqmake will run in win32 mode. In this mode, Windows file naming and path conventions will be used, additionally testing for win32 (as a scope) will succeed. This is the default mode on Windows.
+-d
tqmake will output (hopefully) useful debugging information.
+-t tmpl
tqmake will override any set TEMPLATE variables with tmpl, but only after the .pro file has been processed.
+-tp prefix
tqmake will add the prefix to the TEMPLATE variable.
+-help
tqmake will go over these features and give some useful help.
+
There are also warning options that can help to find problems in your project file:
+-Wall
With this tqmake will turn on all known warnings.
+-Wnone
No warning information will be generated by tqmake.
+-Wparser
tqmake will only generate parser warnings, this will alert you to common pitfalls, and potential problems in the parsing of your .pro files.
+-Wlogic
Again tqmake will warn of common pitfalls, and potential problems. This can include (but not limited to) checking if a file is placed into a list of files multiple times, if a file cannot be found, etc.
+
tqmake supports two different modes of operation. The first mode, which is the default is makefile generation. In this mode, tqmake will take a .pro file and turn it into a makefile. Creating makefiles is covered by this reference guide, there is another mode which generates .pro files.
+To toggle between these modes you must specify in the first argument what mode you want to use. If no mode is specified, tqmake will assume you want makefile mode. The available modes are:
+Makefile Mode
+In Makefile mode tqmake will generate a makefile. Additionally you may supply the following arguments in this mode:
+-after
tqmake will process assignments given on the commandline after the specified files.
+-nocache
tqmake will ignore the .tqmake.cache file.
+-nodepend
tqmake will not generate any dependency information.
+-cache file
tqmake will use file as the cache file, ignoring any other .tqmake.cache file found
+-spec spec
tqmake will use spec as a path to platform-compiler information and QMAKESPEC will be ignored.
+
The files argument can be a list of one or more project files, separated by spaces. You may also pass tqmake assignments on the command line here and they will be processed before all files specified, for example:
+tqmake -makefile -unix -o Makefile "CONFIG+=test" test.pro
+If however you are certain you want your variables processed after the the files specified, then you may pass the -after argument. When this is specified all assignments on the commandline after the -after option will be postponed until after the specified files are parsed.
+This will generate a Makefile, from test.pro with Unix pathnames. However many of these arguments aren't necessary as they are the default. Therefore the line can be simplified on Unix to:
+tqmake "CONFIG+=test" test.pro
+Projectfile Mode
+In Projectfile mode tqmake will generate a project file. Additionally, you may supply the following arguments in this mode:
+The files argument can be a list of files or directories. If a directory is specified, then it will be included in the DEPENDPATH variable and relevant code from there will be included in the generated project file, if a file is given it will go into the correct variable depending on extension (i.e. .ui files go into FORMS, .cpp files go into SOURCES, etc). Here too you may pass assignments on the commandline, when doing so these assignments will be placed last in the generated .pro file.
+System Variables
+Frequently Used System Variables
+The following variables are recognized by tqmake and are used most frequently when creating project files.
+CONFIG
+The CONFIG variable specifies project configuration and compiler options. The values will be recognized internally by tqmake and have special meaning. They are as follows.
+These CONFIG values control compilation flags:
+release - Compile with optimization enabled, ignored if "debug" is specified
+debug - Compile with debug options enabled
+warn_on - The compiler should emit more warnings than normally, ignored if "warn_off" is specified
+warn_off - The compiler should only emit severe warnings.
+
These options define the application/library type:
+qt - The target is a TQt application/library and requires the TQt header files/library. The proper include and library paths for the TQt library will automatically be added to the project.
+opengl - The target requires the OpenGL (or Mesa) headers/libraries. The proper include and library paths for these libraries will automatically be added to the project.
+thread - The target is a multi-threaded application or library. The proper defines and compiler flags will automatically be added to the project.
+x11 - The target is a X11 application or library. The proper include paths and libraries will automatically be added to the project.
+windows - The target is a Win32 window application (app only). The proper include paths,compiler flags and libraries will automatically be added to the project.
+console - The target is a Win32 console application (app only). The proper include paths, compiler flags and libraries will automatically be added to the project.
+dll - The target is a shared object/DLL.The proper include paths, compiler flags and libraries will automatically be added to the project.
+staticlib - The target is a static library (lib only). The proper compiler flags will automatically be added to the project.
+plugin - The target is a plugin (lib only). This enables dll as well.
+
These options are used to set the compiler flags:
+exceptions - Exception support is enabled
+rtti - RTTI support is enabled
+stl - STL support is enabled
+
These options define specific things depending on the platform and/or template:
+The CONFIG variable will also be checked when resolving scopes. You may assign anything to this variable.
+For example:
+
+CONFIG += qt console newstuff
+...
+newstuff {
+ SOURCES += new.cpp
+ HEADERS += new.h
+}
+
+DEFINES
+tqmake adds the values of this variable as compiler C preprocessor macros (-D option).
+For example:
+
+DEFINES += USE_MY_STUFF QT_DLL
+
+DEF_FILE
+This is only used on Windows when using the 'app' template.
+Specifies a .def file to be included in the project.
+DESTDIR
+Specifies where to put the target file.
+For example:
+
+ DESTDIR = ../../lib
+
+DLLDESTDIR
+Specifies where to copy the target dll.
+HEADERS
+Defines the header files for the project.
+tqmake will generate dependency information (unless -nodepend is specified on the command line) for the specified headers. tqmake will also automatically detect if tqmoc is required by the classes in these headers, and add the appropriate dependencies and files to the project for generating and linking the tqmoc files.
+For example:
+
+HEADERS = myclass.h \
+ login.h \
+ mainwindow.h
+
+See also SOURCES.
+INCLUDEPATH
+This variable specifies the #include directories which should be searched when compiling the project. Use ';' or a space as the directory separator.
+For example:
+
+ INCLUDEPATH = c:\msdev\include d:\stl\include
+
+FORMS
+This variable specifies the .ui files (see TQt Designer) to be processed through tquic before compiling. All dependencies, headers and source files required to build these .ui files will automatically be added to the project.
+For example:
+
+FORMS = mydialog.ui \
+ mywidget.ui \
+ myconfig.ui
+
+Note that forms should not be specified using the += operator because this syntax is not fully supported by TQt Designer.
+LEXSOURCES
+This variable contains a list of lex source files. All dependencies, headers and source files will automatically be added to the project for building these lex files.
+For example:
+
+LEXSOURCES = lexer.l
+
+LIBS
+This variable contains a list of libraries to be linked into the project. If you are more comfortable with the Unix convension of -L/-l flags you are free to use them in a cross-platform manner and tqmake will do the correct thing with these libraries on Windows (namely this means passing the full path of the library to the linker). The only limitation to this is the library must exist, for tqmake to find which directory a -l lib lives in.
+For example:
+
+unix:LIBS += -lmath -L/usr/local/lib
+win32:LIBS += c:\mylibs\math.lib
+
+MOC_DIR
+This variable specifies the directory where all intermediate tqmoc files should be placed.
+For example:
+
+unix:MOC_DIR = ../myproject/tmp
+win32:MOC_DIR = c:\myproject\tmp
+
+OBJECTS_DIR
+This variable specifies the directory where all intermediate objects should be placed.
+For example:
+
+unix:OBJECTS_DIR = ../myproject/tmp
+win32:OBJECTS__DIR = c:\myproject\tmp
+
+UI_DIR
+This variable specifies the directory where all intermediate files from tquic should be placed. This variable overrides both UI_SOURCES_DIR and UI_HEADERS_DIR.
+For example:
+
+unix:UI_DIR = ../myproject/ui
+win32:UI_DIR = c:\myproject\ui
+
+UI_HEADERS_DIR
+This variable specifies the directory where all declaration files (as generated by tquic) should be placed.
+For example:
+
+unix:UI_HEADERS_DIR = ../myproject/ui/include
+win32:UI_HEADERS_DIR = c:\myproject\ui\include
+
+UI_SOURCES_DIR
+This variable specifies the directory where all implementation files (as generated by tquic) should be placed.
+For example:
+
+unix:UI_SOURCES_DIR = ../myproject/ui/src
+win32:UI_SOURCES_DIR = c:\myproject\ui\src
+
+REQUIRES
+This is a special variable processed by tqmake. If the contents of this variable do not appear in CONFIG by the time this variable is assigned, then a minimal makefile will be generated that states what dependencies (the values assigned to REQUIRES) are missing.
+This is mainly used in TQt's build system for building the examples.
+SOURCES
+This variable contains the name of all source files in the project.
+For example:
+
+SOURCES = myclass.cpp \
+ login.cpp \
+ mainwindow.cpp
+
+
+See also HEADERS
+SUBDIRS
+This variable, when used with the 'subdirs' TEMPLATE contains the names of all subdirectories to look for a project file.
+For example:
+
+SUBDIRS = kernel \
+ tools
+
+TARGET
+This specifies the name of the target file.
+For example:
+
+TEMPLATE = app
+TARGET = myapp
+SOURCES = main.cpp
+
+The project file above would produce an executable named 'myapp' on unix and 'myapp.exe' on windows.
+TEMPLATE
+This variable contains the name of the template to use when generating the project. The allowed values are:
+app - Creates a makefile for building applications (the default)
+lib - Creates a makefile for building libraries
+subdirs - Creates a makefile for building targets in subdirectories
+vcapp - win32 only Creates an application project file for Visual Studio
+vclib - win32 only Creates a library project file for Visual Studio
+
For example:
+
+TEMPLATE = lib
+SOURCES = main.cpp
+TARGET = mylib
+
+The template can be overridden by specifying a new template type with the -t command line option. This overrides the template type after the .pro file has been processed. With .pro files that use the template type to determine how the project is built, it is necessary to declare TEMPLATE on the command line rather than use the -t option.
+VERSION
+This variable contains the version number of the library if the 'lib' TEMPLATE is specified.
+For example:
+
+VERSION = 1.2.3
+
+DISTFILES
+This variable contains a list of files to be included in the dist target. This feature is supported by UnixMake specs only.
+For example:
+
+DISTFILES += ../program.txt
+
+YACCSOURCES
+This variable contains a list of yacc source files to be included in the project. All dependencies, headers and source files will automatically be included in the project.
+For example:
+
+YACCSOURCES = tqmoc.y
+
+Rarely Used System Variables
+The following variables are also recognized by tqmake but are either internal or very rarely used.
+DESTDIR_TARGET
+This variable is set internally by tqmake, which is basically the DESTDIR variable with the TARGET variable appened at the end. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+DSP_TEMPLATE
+This variable is set internally by tqmake, which specifies where the dsp template file for basing generated dsp files is stored. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+LEXIMPLS
+This variable contains a list of lex implementation files. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+LEXOBJECTS
+This variable contains the names of intermediate lex object files.The value of this variable is typically handled by tqmake and rarely needs to be modified.
+LITERAL_HASH
+This variable is used whenever a literal hash character (#) is needed in a variable declaration, perhaps as part of a file name or in a string passed to some external application.
+For example:
+
+# To include a literal hash character, use the $$LITERAL_HASH variable:
+urlPieces = http://doc.trolltech.com/3.3/tqmake-manual-8.html LITERAL_HASH
+message($$join(urlPieces, $$LITERAL_HASH))
+
+By using LITERAL_HASH in this way, the # character can be used to construct a URL for the message() function to print to the console.
+MAKEFILE
+This variable specifies the name of the makefile which tqmake should use when outputting the dependency information for building a project. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+MAKEFILE_GENERATOR
+This variable contains the name of the makefile generator to use when generating a makefile. The value of this variable is typically handled internally by tqmake and rarely needs to be modified.
+OBJECTS
+This variable is generated from the SOURCES variable. The extension of each source file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+OBJMOC
+This variable is set by tqmake if files can be found that contain the TQ_OBJECT macro. OBJMOC contains the name of all intermediate tqmoc object files. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+PRECOMPILED_HEADER
+This variable indicates the header file for creating a precompiled header file, to increase the compilation speed of a project. Precompiled headers are currently only supported on some platforms (Windows - all MSVC project types, Mac OS X - Xcode, Makefile, UNIX - gcc 3.3 and up).
+On other platforms, this variable has different meaning, as noted below.
+This variable contains a list of header files that require some sort of pre-compilation step (such as with tqmoc). The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE
+This variable contains the name of the tqmake program itself and is placed in generated makefiles. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKESPEC
+This variable contains the name of the tqmake configuration to use when generating makefiles. The value of this variable is typically handled by tqmake and rarely needs to be modified. Use the QMAKESPEC environment variable instead.
+QMAKE_APP_FLAG
+This variable is empty unless the 'app' TEMPLATE is specified. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified. Use the following instead:
+
+app {
+ #conditional code for 'app' template here
+}
+
+QMAKE_APP_OR_DLL
+This variable is empty unless the 'app' or 'dll' TEMPLATE is specified. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_AR_CMD
+This is used on Unix platforms only
+This variable contains the command for invoking the program which creates, modifies and extracts archives. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_DEBUG
+This variable contains the flags for the C compiler in debug mode.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_MT
+This variable contains the compiler flags for creating a multi-threaded application or when the version of TQt that you link against is a multi-threaded statically linked library. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_MT_DBG
+This variable contains the compiler flags for creating a debuggable multi-threaded application or when the version of TQt that you link against is a debuggable multi-threaded statically linked library. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_MT_DLL
+This is used on Windows only
+This variable contains the compiler flags for creating a multi-threaded dll or when the version of TQt that you link against is a multi-threaded dll. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_MT_DLLDBG
+This is used on Windows only
+This variable contains the compiler flags for creating a debuggable multi-threaded dll or when the version of TQt that you link against is a debuggable multi-threaded statically linked library. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_RELEASE
+This variable contains the compiler flags for creating a non-debuggable application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_SHLIB
+This is used on Unix platforms only
+This variable contains the compiler flags for creating a shared library. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_THREAD
+This variable contains the compiler flags for creating a multi-threaded application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_WARN_OFF
+This variable is not empty if the warn_off TEMPLATE option is specified. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CFLAGS_WARN_ON
+This variable is not empty if the warn_on TEMPLATE option is specified. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CLEAN
+This variable contains any files which are not generated files (such as tqmoc and tquic generated files) and object files that should be removed when using "make clean".
+QMAKE_CXXFLAGS_DEBUG
+This variable contains the C++ compiler flags for creating a debuggable application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_MT
+This variable contains the C++ compiler flags for creating a multi-threaded application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_MT_DBG
+This variable contains the C++ compiler flags for creating a debuggable multi-threaded application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_MT_DLL
+This is used on Windows only
+This variable contains the C++ compiler flags for creating a multi-threaded dll. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_MT_DLLDBG
+This is used on Windows only
+This variable contains the C++ compiler flags for creating a multi-threaded debuggable dll. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_RELEASE
+This variable contains the C++ compiler flags for creating an application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_SHLIB
+This variable contains the C++ compiler flags for creating a shared library. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_THREAD
+This variable contains the C++ compiler flags for creating a multi-threaded application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_WARN_OFF
+This variable contains the C++ compiler flags for suppressing compiler warnings. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_CXXFLAGS_WARN_ON
+This variable contains C++ compiler flags for generating compiler warnings. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_EXTENSION_SHLIB
+This variable contains the extention for shared libraries. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_FAILED_REQUIREMENTS
+This variable contains the list of requirements that were failed to be met when tqmake was used. For example, the sql module is needed and wasn't compiled into TQt. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_FILETAGS
+This variable contains the file tags needed to be entered into the makefile, such as SOURCES and HEADERS. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_INCDIR
+This variable contains the location of all known header files to be added to INCLUDEPATH when building an application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+POST_TARGETDEPS
+All libraries that the target depends on can be listed in this variable. Some backends do not support this, these include MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support internally by these build tools, this is usefull for explicitly listing dependant static libraries.
+This list will go after all builtin (and $$PRE_TARGETDEPS) dependencies.
+PRE_TARGETDEPS
+All libraries that the target depends on can be listed in this variable. Some backends do not support this, these include MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support internally by these build tools, this is usefull for explicitly listing dependant static libraries.
+This list will go before all builtin dependencies.
+QMAKE_INCDIR_OPENGL
+This variable contains the location of OpenGL header files to be added to INCLUDEPATH when building an application with OpenGL support. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_INCDIR_TQT
+This variable contains the location of all known header file paths to be added to INCLUDEPATH when building a TQt application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_INCDIR_THREAD
+This variable contains the location of all known header file paths to be added to INCLUDEPATH when building a multi-threaded application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_INCDIR_X11
+This is used on Unix platforms only
+This variable contains the location of X11 header file paths to be added to INCLUDEPATH when building a X11 application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_CONSOLE
+This is used on Windows only
+This variable contains link flags when building console programs. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_CONSOLE_DLL
+This is used on Windows only
+This variable contains link flags when building console dlls. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_DEBUG
+This variable contains link flags when building debuggable applications. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_PLUGIN
+This variable contains link flags when building plugins. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_QT_DLL
+This variable contains link flags when building programs that use the TQt library built as a dll. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_RELEASE
+This variable contains link flags when building applications for release. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_SHAPP
+This variable contains link flags when building applications which are using the 'app' template. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_SHLIB
+This variable contains link flags when building shared libraries The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_SONAME
+This variable specifies the link flags to set the name of shared objects, such as .so or .dll. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_THREAD
+This variable contains link flags when building multi-threaded projects. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_WINDOWS
+This is used on Windows only
+This variable contains link flags when building windows projects. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LFLAGS_WINDOWS_DLL
+This is used on Windows only
+This variable contains link flags when building windows dll projects. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBDIR
+This variable contains the location of all known library directories.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBDIR_FLAGS
+This is used on Unix platforms only
+This variable contains the location of all library directory with -L prefixed. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+VPATH
+This variable tells tqmake where to search for files it cannot open. With this you may tell tqmake where it may look for things like SOURCES, and if it finds an entry in SOURCES that cannot be opened it will look through the entire VPATH list to see if it can find the file on its own.
+See also DEPENDPATH.
+DEPENDPATH
+This variable contains the list of all directories to look in to resolve dependencies. This will be used when crawling through 'included' files.
+QMAKE_LIBDIR_OPENGL
+This variable contains the location of the OpenGL library directory.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBDIR_TQT
+This variable contains the location of the TQt library directory.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBDIR_X11
+This is used on Unix platforms only
+This variable contains the location of the X11 library directory.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS
+This variable contains all project libraries. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_CONSOLE
+This is used on Windows only
+This variable contains all project libraries that should be linked against when building a console application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_OPENGL
+This variable contains all OpenGL libraries. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_OPENGL_QT
+This variable contains all OpenGL TQt libraries.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_QT
+This variable contains all TQt libraries.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_QT_DLL
+This is used on Windows only
+This variable contains all TQt libraries when TQt is built as a dll. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_QT_OPENGL
+This variable contains all the libraries needed to link against if OpenGL support is turned on. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_QT_THREAD
+This variable contains all the libraries needed to link against if thread support is turned on. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_RTMT
+This is used with Borland compilers only
+This variable contains the runtime library needed to link against when building a multi-threaded application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_THREAD
+This is used on Unix platforms only
+This variable contains all libraries that need to be linked against when building a multi-threaded application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_WINDOWS
+This is used on Windows only
+This variable contains all windows libraries.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_X11
+This is used on Unix platforms only
+This variable contains all X11 libraries.The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIBS_X11SM
+This is used on Unix platforms only
+This variable contains all X11 session management libraries. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LIB_FLAG
+This variable is not empty if the 'lib' template is specified. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_LINK_SHLIB_CMD
+This variable contains the command to execute when creating a shared library. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_POST_LINK
+This variable contains the command to execute after linking the TARGET together. This variable is normally empty and therefore nothing is executed, additionally some backends will not support this - mostly only Makefile backends.
+QMAKE_PRE_LINK
+This variable contains the command to execute before linking the TARGET together. This variable is normally empty and therefore nothing is executed, additionally some backends will not support this - mostly only Makefile backends.
+QMAKE_LN_SHLIB
+This variable contains the command to execute when creating a link to a shared library. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_MAKEFILE
+This variable contains the name of the makefile to create. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_MOC_SRC
+This variable contains the names of all tqmoc source files to generate and include in the project. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_QMAKE
+This variable contains the location of tqmake if it is not in the path. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_QT_DLL
+This variable is not empty if TQt was built as a dll. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_RUN_CC
+This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_RUN_CC_IMP
+This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_RUN_CXX
+This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_RUN_CXX_IMP
+This variable specifies the individual rule needed to build an object. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_TARGET
+This variable contains the name of the project target. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+QMAKE_UIC
+This variable contains the location of tquic if it is not in the path. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+It can be used to specify arguments to tquic as well, such as additional plugin paths. For example:
+
+ QMAKE_UIC = tquic -L /path/to/plugin
+
+RC_FILE
+This variable contains the name of the resource file for the application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+RES_FILE
+This variable contains the name of the resource file for the application. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+SRCMOC
+This variable is set by tqmake if files can be found that contain the TQ_OBJECT macro. SRCMOC contains the name of all the generated tqmoc files. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+TARGET_EXT
+This variable specifies the target's extension. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+TARGET_x
+This variable specifies the target's extension with a major version number. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+TARGET_x.y.z
+This variable specifies the target's extension with version number. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+UICIMPLS
+This variable contains a list of the generated implementation files by TQUIC. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+UICOBJECTS
+This variable is generated from the UICIMPLS variable. The extension of each file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+VER_MAJ
+This variable contains the major version number of the library, if the 'lib' template is specified.
+VER_MIN
+This variable contains the minor version number of the library, if the 'lib' template is specified.
+VER_PAT
+This variable contains the patch version number of the library, if the 'lib' template is specified.
+QMAKE_EXT_MOC
+This variable changes the extention used on included tqmoc files.
+See also File Extensions.
+QMAKE_EXT_UI
+This variable changes the extention used on /e Designer UI files.
+See also File Extensions.
+QMAKE_EXT_PRL
+This variable changes the extention used on created PRL files.
+See also File Extensions, Library Dependencies.
+QMAKE_EXT_LEX
+This variable changes the extention used on files given to lex.
+See also File Extensions, LEXSOURCES.
+QMAKE_EXT_YACC This variable changes the extention used on files given to yacc.
+See also File Extensions, YACCSOURCES.
+QMAKE_EXT_OBJ
+This variable changes the extention used on generated object files.
+See also File Extensions.
+QMAKE_EXT_CPP
+This variable changes the interpretation of all suffixes in this list of values as files of type C++ source code.
+See also File Extensions.
+QMAKE_EXT_H
+This variable changes the interpretation of all suffixes in this list of values as files of type C header files.
+See also File Extensions.
+YACCIMPLS
+This variable contains a list of yacc source files. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+YACCOBJECTS
+This variable contains a list of yacc object files. The value of this variable is typically handled by tqmake or tqmake.conf and rarely needs to be modified.
+Functions
+tqmake recognizes the following functions:
+include( filename )
+This function will include the contents of filename into the current project at the point where was included. The function succeeds if filename was included, otherwise it fails. You can check the return value of this function using a scope.
+For example:
+
+include( shared.pri )
+OPTIONS = standard custom
+!include( options.pri ) {
+ message( "No custom build options specified" )
+ OPTIONS -= custom
+}
+
+exists( file )
+This function will test if file exists. If the file exists, then it will succeed; otherwise it will fail. You can specify a regular expression in file and it will succeed if any file matches the regular expression specified.
+For example:
+
+exists( $(TQTDIR)/lib/libtqt-mt* ) {
+ message( "Configuring for multi-threaded TQt..." )
+ CONFIG += thread
+}
+
+contains( variablename, value )
+This function will succeed if the variable variablename contains the value value. You can check the return value of this function using a scope.
+For example:
+
+contains( drivers, network ) {
+ # drivers contains 'network'
+ message( "Configuring for network build..." )
+ HEADERS += network.h
+ SOURCES += network.cpp
+}
+
+count( variablename, number )
+This function will succeed if the variable variablename contains number elements, otherwise it will fail. You can check the return value of this function using a scope.
+For example:
+
+MYVAR = one two three
+count( MYVAR, 3 ) {
+ # always true
+}
+
+infile( filename, var, val )
+This function will succeed if the file filename (when parsed by tqmake itself) contains the variable var with a value of val. You may also not pass in a third argument (val) and the function will only test if var has been assigned to in the file.
+isEmpty( variablename )
+This function will succeed if the variable variablename is empty (same as count(variable, 0)).
+system( command )
+This function will execute command in a secondary shell and will succeed if the command exits with an exit status of 1. You can check the return value of this function using a scope.
+For example:
+
+ system(ls /bin):HAS_BIN=FALSE
+
+message( string )
+This function will always succeed, and will display the given string to the user.
+error( string )
+This function will never return a value. It will display the given string to the user, and then exit tqmake. This function should only be used for very fatal configurations.
+For example:
+
+ release:debug:error(You can't have release and debug at the same time!)
+
+Properties
+tqmake has a system of persistant information, this allows you to 'set' a variable in tqmake once, and each time tqmake is invoked this value can be queried. Use the following to set a property in tqmake:
+
+tqmake -set VARIABLE VALUE
+
+To retrieve this information back from tqmake you can do:
+
+tqmake -query VARIABLE
+tqmake -query #queries all current VARIABLE/VALUE pairs..
+
+This information will be saved into a TQSettings object (meaning it will be stored in different places for different platforms). As VARIABLE is versioned as well, you can set one value in an older version of tqmake, and newer versions will retrieve this value, however if you -set VARIABLE into a newer version of tqmake the older version will not use this value. You can however query a specific version of a variable if you prefix that version of tqmake to VARIABLE, as in:
+
+tqmake -query "1.06a/VARIABLE"
+
+tqmake also has the notion of 'builtin' properties, for example you can query the installation of TQt for this version of tqmake with the QT_INSTALL_PREFIX property:
+
+tqmake -query "QT_INSTALL_PREFIX"
+
+These builtin properties cannot have a version prefixed to them as they are not versioned and each tqmake will have its own notion of these values. The list below outlines the builtin properties:
+QT_INSTALL_PREFIX - Where the version of TQt this tqmake is built for resides
+QT_INSTALL_DATA - Where data for this version of TQt resides
+QMAKE_VERSION - The current version of tqmake
+
Finally, these values can be queried in a project file with a special notation such as:
+
+QMAKE_VERS = $$[QMAKE_VERSION]
+
+Environment Variables and Configuration
+QMAKESPEC
+tqmake requires a platform and compiler description file which contains many default values used to generate appropriate makefiles. The standard TQt distribution comes with many of these files, located in the 'mkspecs' subdirectory of the TQt installation.
+The QMAKESPEC environment variable can contain any of the following:
+A complete path to a directory containing a tqmake.conf file. In this case tqmake will open the tqmake.conf file from within that directory. If the file does not exist, tqmake will exit with an error.
+The name of a platform-compiler combination. In this case, tqmake will search in the directory specified by the TQTDIR environment variable.
+
Note: the QMAKESPEC path will automatically be added to the INCLUDEPATH system variable.
+INSTALLS
+It is common on UNIX to be able to install from the same utility as you build with (e.g make install). For this tqmake has introduce the concept of an install set. The notation for this is quite simple, first you fill in an "object" in tqmake for example:
+
+ documentation.path = /usr/local/program/doc
+ documentation.files = docs/*
+
+In this way you are telling tqmake several things about this install, first that you plan to install to /usr/local/program/doc (the path member), second that you plan to copy everything in the docs directory. Once this is done you may insert it in the install list:
+
+ INSTALLS += documentation
+
+Now tqmake will take over making sure the correct things are copied to the specified places. If however you require greater control you may use the 'extra' member of the object:
+
+ unix:documentation.extra = create_docs; mv master.doc toc.doc
+
+Then tqmake will run the things in extra (this is of course platform specific, so you may need to test for your platform first, this case we test for unix). Then it will do the normal processings of the files member. Finally if you appened a builtin install to INSTALLS tqmake (and do not specify a files or extra member) will decide what needs to be copied for you, currently the only supported builtin is target:
+
+ target.path = /usr/local/myprogram
+ INSTALLS += target
+
+With this tqmake will know what you plan need copied, and do this for you.
+Cache File
+The cache file (mentioned above in the options) is a special file tqmake will read to find settings not specified in the tqmake.conf file, the .pro file, or the command line. If -nocache is not specified, tqmake will try to find a file called .tqmake.cache in parent directories. If it fails to find this file, it will silently ignore this step of processing.
+Library Dependencies
+Often when linking against a library tqmake relies on the underlying platform to know what other libraries this library links against, and lets the platform pull them in. In many cases, however, this is not sufficent. For example when statically linking a library there are no libraries linked against, and therefore no dependencies to those libraries are created - however an application that later links against this library will need to know where to find the symbols that the linked in library will require. To help with this situation tqmake will follow a library's dependencies when it feels appropriate, however this behaviour must be enabled in tqmake. To enable requires two steps. First, you must enable it in the library - to do this you must tell tqmake to save information about this library:
+
+ CONFIG += create_prl
+
+This is only relevant to the lib template, and will be ignored for all others. When this option is enabled tqmake will create a file (called a .prl file) which will save some meta information about the library. This metafile is itself just a tqmake project file, but with all internal variables. You are free to view this file, and if deleted tqmake will know to recreate it when necesary (either when the .pro file is later read, or if a dependent library (described below) has changed). When installing this library (by using target in INSTALLS, above) tqmake will automatically copy the .prl file to your install path.
+The second step to enabling this processing is to turn on reading of the meta information created above:
+
+ CONFIG += link_prl
+
+When this is turned on tqmake will process all libraries linked to, and find their meta information. With this meta information tqmake will figure out what is relevant to linking, specifically it will add to your list of DEFINES as well as LIBS. Once tqmake has processed this file, it will then look through the newly introduced LIBS and find their dependent .prl files, and continue until all libraries have been resolved. At this point the makefile is created as usual, and the libraries are linked explicity against your program.
+The internals of the .prl file are left closed so they can easily change later. It is not designed to be changed by hand however, and should only be created by tqmake - these .prl files should also not be transfered from operating system to operating system as they may be platform dependent (like a makefile).
+File Extensions
+Under normal circumstances tqmake will try to use appropriate file extensions for your platform. There may be times, however, that you would like to override the behavior of these extensions. To do this, you must modify builtin variables in your .pro file, which will in turn changes tqmake's interpretation of these files. You may do this as:
+
+ QMAKE_EXT_MOC = .mymoc
+
+The variables are as follows:
+QMAKE_EXT_MOC - This modifies the extension placed on included moc files.
+QMAKE_EXT_UI - This modifies the extension used for designer UI files (usually in FORMS).
+QMAKE_EXT_PRL - This modifies the extension placed on library dependency files.
+QMAKE_EXT_LEX - This changes the suffix used in files (usually in LEXSOURCES).
+QMAKE_EXT_YACC - This changes the suffix used in files (usually in YACCSOURCES).
+QMAKE_EXT_OBJ - This changes the suffix used on generated object files.
+
All the above accept just the first value, so you must assign to it one value that will be used through your makefile. There are two variables that accept a list of values, they are:
+Customizing Makefile Output
+tqmake often tries to be all things to all build tools, this is often less than ideal when you really need to run special platform dependent commands. This can be achieved with specific instructions to the different tqmake backends (currently this is only supported by the UNIX generator).
+The interfaces to customizing the Makefile are done through "objects" as in other places in tqmake. The notation for this is quite simple, first you fill in an "object" in tqmake for example:
+
+ mytarget.target = .buildfile
+ mytarget.commands = touch $$mytarget.target
+ mytarget.depends = mytarget2
+
+ mytarget2.commands = @echo Building $$mytarget.target
+
+The information above defines a tqmake target called mytarget which contains a Makefile target called .buildfile, .buildfile is generated by 'touch .buildfile', and finally that this Makefile target depends on the tqmake target mytarget2. Additionally we've defined the tqmake target mytarget2 which simply echo's something to stdout.
+The final step to making use of the above is to instruct tqmake that this is actually an object used by the target building parts of tqmake by:
+
+QMAKE_EXTRA_UNIX_TARGETS += mytarget mytarget2
+
+This is all you need to do to actually build custom targets in tqmake, of course you may want to tie one of these targets to actually building the tqmake build target. To do this, you simply need to include your Makefile target in the list of PRE_TARGETDEPS.
+For convenience there is also a method of customizing (UNIX) projects for generic new compilers (or even preprocessors).
+
+new_moc.output = tqmoc_${QMAKE_FILE_BASE}.cpp
+new_moc.commands = tqmoc ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
+new_moc.depends = g++ -E -M ${QMAKE_FILE_NAME} | sed "s,^.*: ,,"
+new_moc.input = NEW_HEADERS
+QMAKE_EXTRA_UNIX_COMPILERS += new_moc
+
+With this you can create a new moc for tqmake, the commands will be executed over all arguments given to a NEW_HEADERS variable (from the input variable), and write to output (and automatically hand this filename to the compiler to be linked into your target). Additionally tqmake will execute depends to generate dependency information and place this in the project as well.
+These commands can easily be placed into a cache file, and subsequent .pro files can give several arguments to NEW_HEADERS.
+
+
+
diff --git a/doc/html/tqmake-manual.html b/doc/html/tqmake-manual.html
new file mode 100644
index 000000000..b17e23e8c
--- /dev/null
+++ b/doc/html/tqmake-manual.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+tqmake User Guide
+
+
+
+
+tqmake User Guide
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/tqmake.dcf b/doc/html/tqmake.dcf
new file mode 100644
index 000000000..a2c44a416
--- /dev/null
+++ b/doc/html/tqmake.dcf
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/tqmoc.html b/doc/html/tqmoc.html
index bc1cce783..9727504c9 100644
--- a/doc/html/tqmoc.html
+++ b/doc/html/tqmoc.html
@@ -44,7 +44,7 @@ the dynamic property system.
The C++ source file generated by tqmoc must be compiled and linked
with the implementation of the class (or it can be #included into the
class's source file).
-
If you use qmake to create your
+
If you use tqmake to create your
Makefiles, build rules will be included that call tqmoc when
required, so you will not need to use tqmoc directly. For more
background information on tqmoc, see Why doesn't TQt
@@ -151,7 +151,7 @@ visible in the header file.
you automate running tqmoc. By adding some rules to your program's
Makefile, make can take care of running tqmoc when necessary and
handling tqmoc output.
- We recommend using Trolltech's free makefile generation tool, qmake, for building your Makefiles. This tool
+
We recommend using Trolltech's free makefile generation tool, tqmake, for building your Makefiles. This tool
recognizes both Method A and B style source files, and generates a
Makefile that does all the necessary tqmoc handling.
If you want to create your Makefiles yourself, here are some tips on
diff --git a/doc/html/tutorial1-01.html b/doc/html/tutorial1-01.html
index ffdff0b36..e64f1f456 100644
--- a/doc/html/tutorial1-01.html
+++ b/doc/html/tutorial1-01.html
@@ -132,14 +132,14 @@ these on to the appropriate widgets.
Compiling
To compile a C++ application you need to create a makefile. The
-easiest way to create a makefile for TQt is to use the qmake build tool supplied with TQt. If you've
+easiest way to create a makefile for TQt is to use the tqmake build tool supplied with TQt. If you've
saved main.cpp in its own directory, all you have to do is:
-qmake -project
-qmake
+tqmake -project
+tqmake
- The first command tells qmake to
+
The first command tells tqmake to
create a .pro (project) file. The second command tells it to create
a (platform-specific) makefile based on the project file. You should
now be able to type make (or nmake if you're using Visual
diff --git a/doc/html/tutorial1-07.html b/doc/html/tutorial1-07.html
index 45ab54827..7449ae428 100644
--- a/doc/html/tutorial1-07.html
+++ b/doc/html/tutorial1-07.html
@@ -176,11 +176,11 @@ are here creating a "chain" of signals and slots.
creating one for a single-file application. If you've saved all the
files in this example in their own directory, all you have to do is:
-qmake -project
-qmake
+tqmake -project
+tqmake
- The first command tells qmake to
+
The first command tells tqmake to
create a .pro (project) file. The second command tells it to create
a (platform-specific) makefile based on the project file. You should
now be able to type make (or nmake if you're using Visual
diff --git a/doc/html/tutorial2-10.html b/doc/html/tutorial2-10.html
index e1da68a77..9fce02423 100644
--- a/doc/html/tutorial2-10.html
+++ b/doc/html/tutorial2-10.html
@@ -58,10 +58,10 @@ body { background: #ffffff; color: black; }
By using a project file we can insulate ourselves from having to
create Makefiles for the platforms we wish to target. To generate a
-Makefile all we need do is run qmake,
+Makefile all we need do is run tqmake,
e.g.
-qmake -o Makefile chart.pro
+tqmake -o Makefile chart.pro
diff --git a/doc/i18n.doc b/doc/i18n.doc
index 83d401f6a..ad6d31e62 100644
--- a/doc/i18n.doc
+++ b/doc/i18n.doc
@@ -363,9 +363,9 @@ When you run \e lupdate or \e lrelease, you must give the name of the
project file as a command-line argument.
In this example, four exotic languages are supported: Danish, Finnish,
-Norwegian and Swedish. If you use \link qmake-manual.book
-qmake\endlink, you usually don't need an extra project
-file for \e lupdate; your \c qmake project file will work fine once
+Norwegian and Swedish. If you use \link tqmake-manual.book
+tqmake\endlink, you usually don't need an extra project
+file for \e lupdate; your \c tqmake project file will work fine once
you add the \c TRANSLATIONS entry.
In your application, you must \l TQTranslator::load() the translation
diff --git a/doc/indices.doc b/doc/indices.doc
index 429b96c36..1622d90a6 100644
--- a/doc/indices.doc
+++ b/doc/indices.doc
@@ -160,7 +160,7 @@ Licenses & Credits
\i \link designer-manual.book TQt Designer\endlink
\i \link linguist-manual.book TQt Linguist\endlink
\i \link assistant.book TQt Assistant\endlink
-\i \link qmake-manual.book qmake\endlink
+\i \link tqmake-manual.book tqmake\endlink
\endlist
diff --git a/doc/integration.doc b/doc/integration.doc
index a3de47fda..35e94b5b1 100644
--- a/doc/integration.doc
+++ b/doc/integration.doc
@@ -127,21 +127,21 @@
\section2 Using the 'Open TQt Project' button
The 'Open TQt Project' button allows you to convert an existing \c
- qmake project file into a \c .dsp file which you can insert into
+ tqmake project file into a \c .dsp file which you can insert into
your existing workspace. When you click the 'Open TQt Project'
- button, just select an existing \c qmake project file (a \c .pro
+ button, just select an existing \c tqmake project file (a \c .pro
file) and then click OK. You will get a message box at the end
which asks you to insert the newly created \c .dsp file into your
existing workspace.
\section2 Using the 'Write TQt Project' button
- The 'Write TQt Project' button creates a \c qmake project (\c .pro)
+ The 'Write TQt Project' button creates a \c tqmake project (\c .pro)
file for your current project so that you can easily copy the files
- onto another platform and be able to use \c qmake to create a Makefile
+ onto another platform and be able to use \c tqmake to create a Makefile
on that other platform. All you need to do is make the project you
want to create a \c .pro file for, and click on the button. Just
- name your \c qmake project file and click Save.
+ name your \c tqmake project file and click Save.
\section2 Using the 'Use TQt In Current Project' button
diff --git a/doc/mac.doc b/doc/mac.doc
index 1b64d1ed8..86aa5b9aa 100644
--- a/doc/mac.doc
+++ b/doc/mac.doc
@@ -81,7 +81,7 @@ directory called Frameworks, a subdirectory of the application bundle.
The application finds these dynamic libraries if the libraries have an
install name of "@executable_path/../Frameworks/libname.dylib.
-If you use qmake and Makefiles, use the QMAKE_LFFLAGS_SONAME setting:
+If you use tqmake and Makefiles, use the QMAKE_LFFLAGS_SONAME setting:
\code
QMAKE_LFLAGS_SONAME = -Wl,-install_name,@executable_path/../Frameworks/
@@ -124,7 +124,7 @@ have not been called yet).
\section2 Plugin Support
Note that it is not possible to build TQt plugins using Project Builder
-or Xcode. Use \link qmake-manual.book qmake\endlink to configure and
+or Xcode. Use \link tqmake-manual.book tqmake\endlink to configure and
build plugins.
\section1 Compiler Settings
diff --git a/doc/man/README b/doc/man/README
index ac24829cb..5ee7c00e9 100644
--- a/doc/man/README
+++ b/doc/man/README
@@ -17,8 +17,8 @@ Change the commands to suit your needs.
TODO
----
-* installation with qmake.
-* optional man pages compression with qmake
+* installation with tqmake.
+* optional man pages compression with tqmake
-------
ORIGINS
diff --git a/doc/man/man3/tqassistantclient.3qt b/doc/man/man3/tqassistantclient.3qt
index 279b51d9d..e0cc955d2 100644
--- a/doc/man/man3/tqassistantclient.3qt
+++ b/doc/man/man3/tqassistantclient.3qt
@@ -69,7 +69,7 @@ One TQAssistantClient instance interacts with one TQt Assistant instance, so eve
.PP
When you call openAssistant() the assistantOpened() signal is emitted. Similarly when closeAssistant() is called, assistantClosed() is emitted. In either case, if an error occurs, error() is emitted.
.PP
-This class is not included in the TQt library itself. To use it you must link against \fClibtqassistantclient.a\fR (Unix) or \fCtqassistantclient.lib\fR (Windows), which is built into \fCINSTALL/lib\fR if you built the TQt tools (\fCINSTALL\fR is the directory where TQt is installed). If you use qmake, then you can simply add the following line to your pro file:
+This class is not included in the TQt library itself. To use it you must link against \fClibtqassistantclient.a\fR (Unix) or \fCtqassistantclient.lib\fR (Windows), which is built into \fCINSTALL/lib\fR if you built the TQt tools (\fCINSTALL\fR is the directory where TQt is installed). If you use tqmake, then you can simply add the following line to your pro file:
.PP
.nf
.br
diff --git a/doc/misc.doc b/doc/misc.doc
index b1b36e115..8c8ad32d0 100644
--- a/doc/misc.doc
+++ b/doc/misc.doc
@@ -91,7 +91,7 @@ the relevant release of Qt.
Programmers need to run \e tqmoc and other tools such as \e tquic. These
tools are usually located in the \c bin subdirectory of TQt distributions.
Either run \c "$TQTDIR"/bin/tqmoc and \c "$TQTDIR"/bin/tquic or add \c "$TQTDIR"/bin
-to your \c PATH and run \c tqmoc and \c tquic. If you use \c qmake the
+to your \c PATH and run \c tqmoc and \c tquic. If you use \c tqmake the
appropriate lines will be added to your Makefiles so that \e tquic and
\e tqmoc will be executed as required.
diff --git a/doc/porting3.doc b/doc/porting3.doc
index b65cbc4f7..3e7a6c95d 100644
--- a/doc/porting3.doc
+++ b/doc/porting3.doc
@@ -83,7 +83,7 @@ don't need to set certain preprocessor defines. In TQt 3.0, the
default configuration of the TQt library is to build it as a shared
library, therefore the preprocessor define \c QT_DLL is needed.
-If you use tmake with TQt 2.x, and now use qmake with TQt 3.x, then the
+If you use tmake with TQt 2.x, and now use tqmake with TQt 3.x, then the
cause of the problem is with the project file. In the project file,
there is usually line that looks like:
@@ -93,7 +93,7 @@ this should be changed to
\c CONFIG += ...
-so that qmake can look at the configuration that TQt was built with and
+so that tqmake can look at the configuration that TQt was built with and
set any relevant preprocessor defines in the makefile.
\target Headers
diff --git a/doc/qtmac-as-native.doc b/doc/qtmac-as-native.doc
index b69265206..1e7330550 100644
--- a/doc/qtmac-as-native.doc
+++ b/doc/qtmac-as-native.doc
@@ -141,15 +141,15 @@ it can interact with specific components of the Mac OS X experience:
between their development toolkit and the platform's developer
tools (for example MSVC, gmake, etc). Qt/Mac supports both Unix
style Makefiles, and ProjectBuilder/Xcode project files by using
- the qmake tool. For example:
+ the tqmake tool. For example:
\code
- qmake -spec macx-pbuilder project.pro
+ tqmake -spec macx-pbuilder project.pro
\endcode
- will generate an Xcode project file from project.pro. With qmake
+ will generate an Xcode project file from project.pro. With tqmake
you do not have to worry about rules for TQt's preprocessors (tqmoc
- and tquic) since qmake automatically handles them and ensures that
+ and tquic) since tqmake automatically handles them and ensures that
everything necessary is linked into your application.
TQt does not entirely interact with the development environment (for
diff --git a/doc/signalsandslots.doc b/doc/signalsandslots.doc
index 099fdf70a..950093abf 100644
--- a/doc/signalsandslots.doc
+++ b/doc/signalsandslots.doc
@@ -205,7 +205,7 @@ The preprocessor changes or removes the \c{signals}, \c{slots} and
Run the \link tqmoc.html tqmoc\endlink on class definitions that contain
signals or slots. This produces a C++ source file which should be compiled
and linked with the other object files for the application. If you use
-\link qmake-manual.book qmake\endlink, the makefile rules to
+\link tqmake-manual.book tqmake\endlink, the makefile rules to
automatically invoke the \link tqmoc.html tqmoc\endlink will be added to
your makefile for you.
diff --git a/doc/sql-driver.doc b/doc/sql-driver.doc
index d64246d22..8bd40cf26 100644
--- a/doc/sql-driver.doc
+++ b/doc/sql-driver.doc
@@ -154,13 +154,13 @@ You need the MySQL header files and as well as the shared library
\c{libmysqlclient.so}. Depending on your Linux distribution you need to
install a package which is usually called "mysql-devel".
-Tell \link qmake-manual.book qmake\endlink where to find the MySQL
+Tell \link tqmake-manual.book tqmake\endlink where to find the MySQL
header files and shared libraries (here it is assumed that MySQL is
installed in \c{/usr/local}) and run \c{make}:
\code
cd $TQTDIR/plugins/src/sqldrivers/mysql
-qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient" mysql.pro
+tqmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient" mysql.pro
make
\endcode
@@ -173,7 +173,7 @@ installed in \c{C:\MYSQL}):
\code
cd %TQTDIR%\plugins\src\sqldrivers\mysql
-qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
+tqmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
nmake
\endcode
@@ -227,28 +227,28 @@ Oracle library files required to build driver:
\i \c libwtc8.so (only Oracle 8) or \c libwtc9.so (only Oracle 9)
\endlist
-Tell \c qmake where to find the Oracle header files and shared
+Tell \c tqmake where to find the Oracle header files and shared
libraries (it is assumed that the variable \c $ORACLE_HOME points to
the directory where Oracle is installed) and run make:
If you are using Oracle 8:
\code
cd $TQTDIR/plugins/src/sqldrivers/oci
-qmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/public $ORACLE_HOME/rdbms/demo" "LIBS+=-L$ORACLE_HOME/lib -lclntsh -lwtc8" oci.pro
+tqmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/public $ORACLE_HOME/rdbms/demo" "LIBS+=-L$ORACLE_HOME/lib -lclntsh -lwtc8" oci.pro
make
\endcode
For Oracle version 9:
\code
cd $TQTDIR/plugins/src/sqldrivers/oci
-qmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/public $ORACLE_HOME/rdbms/demo" "LIBS+=-L$ORACLE_HOME/lib -lclntsh -lwtc9" oci.pro
+tqmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/public $ORACLE_HOME/rdbms/demo" "LIBS+=-L$ORACLE_HOME/lib -lclntsh -lwtc9" oci.pro
make
\endcode
For Oracle version 10:
\code
cd $TQTDIR/plugins/src/sqldrivers/oci
-qmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/public $ORACLE_HOME/rdbms/demo" "LIBS+=-L$ORACLE_HOME/lib -lclntsh" oci.pro
+tqmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/public $ORACLE_HOME/rdbms/demo" "LIBS+=-L$ORACLE_HOME/lib -lclntsh" oci.pro
make
\endcode
@@ -272,7 +272,7 @@ installed in \c{C:\oracle}):
set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %TQTDIR%\plugins\src\sqldrivers\oci
-qmake -o Makefile oci.pro
+tqmake -o Makefile oci.pro
nmake
\endcode
@@ -338,13 +338,13 @@ It is recommended that you use unixODBC. You can find the latest
version and ODBC drivers at \l http://www.unixodbc.org.
You need the unixODBC header files and shared libraries.
-Tell \c qmake where to find the unixODBC header files and shared
+Tell \c tqmake where to find the unixODBC header files and shared
libraries (here it is assumed that unixODBC is installed in
\c{/usr/local/unixODBC}) and run \c{make}:
\code
cd $TQTDIR/plugins/src/sqldrivers/odbc
-qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"
+tqmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"
make
\endcode
@@ -355,7 +355,7 @@ right directories. You just have to build the plugin as follows:
\code
cd %TQTDIR%\plugins\src\sqldrivers\odbc
-qmake -o Makefile odbc.pro
+tqmake -o Makefile odbc.pro
nmake
\endcode
@@ -415,13 +415,13 @@ a binary distribution you don't need to build it. The source
distribution is needed because the QPSQL7 plugin relies on a couple of
header files that are usually not a part of the binary distribution.
-To make \c qmake find the PostgreSQL header files and shared
-libraries, run \c qmake the following way (assuming that the
+To make \c tqmake find the PostgreSQL header files and shared
+libraries, run \c tqmake the following way (assuming that the
PostgreSQL sources can be found in \c{/usr/src/psql}):
\code
cd $TQTDIR/plugins/src/sqldrivers/psql
-qmake -o Makefile "INCLUDEPATH+=/usr/src/psql/src/include /usr/src/psql/src/interfaces/libpq" "LIBS+=-L/usr/lib -lpq" psql.pro
+tqmake -o Makefile "INCLUDEPATH+=/usr/src/psql/src/include /usr/src/psql/src/interfaces/libpq" "LIBS+=-L/usr/lib -lpq" psql.pro
make
\endcode
@@ -433,7 +433,7 @@ in \c{C:\psql}, build the plugin as follows:
\code
cd %TQTDIR%\plugins\src\sqldrivers\psql
-qmake -o Makefile "INCLUDEPATH+=C:\psql\src\include C:\psql\src\interfaces\libpq" psql.pro
+tqmake -o Makefile "INCLUDEPATH+=C:\psql\src\include C:\psql\src\interfaces\libpq" psql.pro
nmake
\endcode
@@ -463,11 +463,11 @@ Under Unix, two libraries are available which support the TDS protocol:
Regardless of which library you use, the shared object file
\c{libsybdb.so} is needed. Set the SYBASE environment variable to
point to the directory where you installed the client library and
-execute \c{qmake}:
+execute \c{tqmake}:
\code
cd $TQTDIR/plugins/src/sqldrivers/tds
-qmake -o Makefile "INCLUDEPATH=$SYBASE/include" "LIBS=-L$SYBASE/lib -lsybdb"
+tqmake -o Makefile "INCLUDEPATH=$SYBASE/include" "LIBS=-L$SYBASE/lib -lsybdb"
make
\endcode
@@ -479,7 +479,7 @@ NTWDBLIB.LIB to build the plugin:
\code
cd %TQTDIR%\plugins\src\sqldrivers\tds
-qmake -o Makefile "LIBS+=NTWDBLIB.LIB" tds.pro
+tqmake -o Makefile "LIBS+=NTWDBLIB.LIB" tds.pro
nmake
\endcode
@@ -509,7 +509,7 @@ in DB2 (see TQSqlQuery::setForwardOnly()).
\code
cd $TQTDIR/plugins/src/sqldrivers/db2
-qmake -o Makefile "INCLUDEPATH+=$DB2DIR/include" "LIBS+=-L$DB2DIR/lib -ldb2"
+tqmake -o Makefile "INCLUDEPATH+=$DB2DIR/include" "LIBS+=-L$DB2DIR/lib -ldb2"
make
\endcode
@@ -520,7 +520,7 @@ right directories. You just have to build the plugin as follows:
\code
cd %TQTDIR%\plugins\src\sqldrivers\db2
-qmake -o Makefile "INCLUDEPATH+=/sqllib/include" "LIBS+=/sqllib/lib/db2cli.lib"
+tqmake -o Makefile "INCLUDEPATH+=/sqllib/include" "LIBS+=/sqllib/lib/db2cli.lib"
nmake
\endcode
@@ -560,7 +560,7 @@ resides):
\code
cd $TQTDIR/plugins/src/sqldrivers/sqlite
-qmake -o Makefile "INCLUDEPATH+=$SQLITE/include" "LIBS+=-L$SQLITE/lib -lsqlite"
+tqmake -o Makefile "INCLUDEPATH+=$SQLITE/include" "LIBS+=-L$SQLITE/lib -lsqlite"
make
\endcode
@@ -599,7 +599,7 @@ The following assumes Interbase or Firebird is installed in
\code
cd $TQTDIR/plugins/src/sqldrivers/ibase
-qmake -o Makefile "INCLUDEPATH+=/opt/interbase/include" "LIBS+=-L/opt/interbase/lib" ibase.pro
+tqmake -o Makefile "INCLUDEPATH+=/opt/interbase/include" "LIBS+=-L/opt/interbase/lib" ibase.pro
make
\endcode
@@ -610,7 +610,7 @@ The following assumes Interbase or Firebird is installed in
\code
cd %TQTDIR%\plugins\src\sqldrivers\ibase
-qmake -o Makefile "INCLUDEPATH+=C:\interbase\include" ibase.pro
+tqmake -o Makefile "INCLUDEPATH+=C:\interbase\include" ibase.pro
nmake
\endcode
diff --git a/doc/tools-list.doc b/doc/tools-list.doc
index 16efa8823..c4f63c3a5 100644
--- a/doc/tools-list.doc
+++ b/doc/tools-list.doc
@@ -13,7 +13,7 @@
applications to reach international markets
\i \link assistant.book TQt Assistant \endlink - quickly find the
help you need
- \i \link qmake-manual.book qmake \endlink - create Makefiles from
+ \i \link tqmake-manual.book tqmake \endlink - create Makefiles from
simple platform-independent project files
\i \link qembed.html qembed\endlink - convert data, e.g. images, into C++ code
\i \link tqmoc.html tqmoc\endlink - the Meta Object Compiler
diff --git a/doc/tqmoc.doc b/doc/tqmoc.doc
index edfcd4f5d..cd3c06343 100644
--- a/doc/tqmoc.doc
+++ b/doc/tqmoc.doc
@@ -60,7 +60,7 @@ The C++ source file generated by tqmoc must be compiled and linked
with the implementation of the class (or it can be #included into the
class's source file).
-If you use \link qmake-manual.book qmake\endlink to create your
+If you use \link tqmake-manual.book tqmake\endlink to create your
Makefiles, build rules will be included that call tqmoc when
required, so you will not need to use tqmoc directly. For more
background information on tqmoc, see \link templates.html Why doesn't Qt
@@ -183,7 +183,7 @@ Makefile, \e make can take care of running tqmoc when necessary and
handling tqmoc output.
We recommend using Trolltech's free makefile generation tool, \link
-qmake-manual.book qmake\endlink, for building your Makefiles. This tool
+tqmake-manual.book tqmake\endlink, for building your Makefiles. This tool
recognizes both Method A and B style source files, and generates a
Makefile that does all the necessary tqmoc handling.
diff --git a/doc/tutorial.doc b/doc/tutorial.doc
index 57f1482bb..f36706190 100644
--- a/doc/tutorial.doc
+++ b/doc/tutorial.doc
@@ -185,14 +185,14 @@ You should now try to compile and run this program.
To compile a C++ application you need to create a makefile. The
easiest way to create a makefile for TQt is to use the \link
-qmake-manual.book qmake\endlink build tool supplied with Qt. If you've
+tqmake-manual.book tqmake\endlink build tool supplied with Qt. If you've
saved \c main.cpp in its own directory, all you have to do is:
\code
-qmake -project
-qmake
+tqmake -project
+tqmake
\endcode
-The first command tells \link qmake-manual.book qmake\endlink to
+The first command tells \link tqmake-manual.book tqmake\endlink to
create a \c .pro (project) file. The second command tells it to create
a (platform-specific) makefile based on the project file. You should
now be able to type \c make (or \c nmake if you're using Visual
@@ -829,11 +829,11 @@ Creating a makefile for a multi-file application is no different from
creating one for a single-file application. If you've saved all the
files in this example in their own directory, all you have to do is:
\code
-qmake -project
-qmake
+tqmake -project
+tqmake
\endcode
-The first command tells \link qmake-manual.book qmake\endlink to
+The first command tells \link tqmake-manual.book tqmake\endlink to
create a \c .pro (project) file. The second command tells it to create
a (platform-specific) makefile based on the project file. You should
now be able to type \c make (or \c nmake if you're using Visual
diff --git a/doc/tutorial2.doc b/doc/tutorial2.doc
index bf06d7d7b..50acfc4d6 100644
--- a/doc/tutorial2.doc
+++ b/doc/tutorial2.doc
@@ -1380,10 +1380,10 @@ chooseFont().
By using a project file we can insulate ourselves from having to
create Makefiles for the platforms we wish to target. To generate a
-Makefile all we need do is run \link qmake-manual.book qmake\endlink,
+Makefile all we need do is run \link tqmake-manual.book tqmake\endlink,
e.g.
\code
-qmake -o Makefile chart.pro
+tqmake -o Makefile chart.pro
\endcode
diff --git a/examples/helpsystem/helpsystem.doc b/examples/helpsystem/helpsystem.doc
index d21bfbcc0..67a9e5e0c 100644
--- a/examples/helpsystem/helpsystem.doc
+++ b/examples/helpsystem/helpsystem.doc
@@ -216,6 +216,6 @@
the application main window.
To build the example go to the helpsystem directory
- (TQTDIR/examples/helpsystem) run qmake to generate the makefile,
+ (TQTDIR/examples/helpsystem) run tqmake to generate the makefile,
and use the make tool to build the library.
*/
diff --git a/examples/tablet/tablet.pro b/examples/tablet/tablet.pro
index b7b32eaba..8107f3c77 100644
--- a/examples/tablet/tablet.pro
+++ b/examples/tablet/tablet.pro
@@ -1,5 +1,5 @@
##############################################################
-# Automatically generated by qmake Thu Jul 26 13:46:03 2001
+# Automatically generated by tqmake Thu Jul 26 13:46:03 2001
##############################################################
TEMPLATE = app
TARGET = tablet
diff --git a/examples/toplevel/toplevel.doc b/examples/toplevel/toplevel.doc
index b72a42cbc..8132eba19 100644
--- a/examples/toplevel/toplevel.doc
+++ b/examples/toplevel/toplevel.doc
@@ -127,6 +127,6 @@
\footnote
We use \c TQTDIR to stand for the directory where TQt is installed.
\endfootnote
- and run \c qmake to generate the makefile, then use the make tool to
+ and run \c tqmake to generate the makefile, then use the make tool to
build the library.
*/
diff --git a/mkspecs/aix-g++-64/qmake.conf b/mkspecs/aix-g++-64/qmake.conf
deleted file mode 100644
index 2f4594dd5..000000000
--- a/mkspecs/aix-g++-64/qmake.conf
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-#
-# qmake configuration for aix-g++-64
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -maix64 -mminimal-toc
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_THREAD_SAFE
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -maix64
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME =
-QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
-QMAKE_AIX_SHLIB = 1
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthreads
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar -X 64 cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/aix-g++-64/tqmake.conf b/mkspecs/aix-g++-64/tqmake.conf
new file mode 100644
index 000000000..882a85195
--- /dev/null
+++ b/mkspecs/aix-g++-64/tqmake.conf
@@ -0,0 +1,80 @@
+#
+#
+# tqmake configuration for aix-g++-64
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -maix64 -mminimal-toc
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_THREAD_SAFE
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -maix64
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME =
+QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
+QMAKE_AIX_SHLIB = 1
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthreads
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar -X 64 cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/aix-g++/qmake.conf b/mkspecs/aix-g++/qmake.conf
deleted file mode 100644
index 87ef9098b..000000000
--- a/mkspecs/aix-g++/qmake.conf
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-#
-# qmake configuration for aix-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_THREAD_SAFE
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME =
-QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
-QMAKE_AIX_SHLIB = 1
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthreads
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/aix-g++/tqmake.conf b/mkspecs/aix-g++/tqmake.conf
new file mode 100644
index 000000000..3fe835074
--- /dev/null
+++ b/mkspecs/aix-g++/tqmake.conf
@@ -0,0 +1,80 @@
+#
+#
+# tqmake configuration for aix-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_THREAD_SAFE
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME =
+QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
+QMAKE_AIX_SHLIB = 1
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthreads
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/aix-xlc-64/qmake.conf b/mkspecs/aix-xlc-64/qmake.conf
deleted file mode 100644
index 89bef22c6..000000000
--- a/mkspecs/aix-xlc-64/qmake.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-#
-# qmake configuration for aix-xlc
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = xlc
-QMAKE_CC_THREAD = xlc_r
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -qstrict -q64
-# -qwarn64 turns on too many bogus warnings and shadows real warnings
-#QMAKE_CFLAGS_WARN_ON = -qwarn64
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O3
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -qthreaded
-
-QMAKE_CXX = xlC
-QMAKE_CXX_THREAD = xlC_r
-QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = xlC
-QMAKE_LINK_THREAD = xlC_r
-QMAKE_LINK_SHLIB = ld
-QMAKE_LINK_SHLIB_CMD = makeC++SharedLib -p 0 -X64 \
- -o $(TARGETD) \
- $(LFLAGS) $(OBJECTS) $(OBJMOC) $(LIBS); \
- $(AR) lib$(QMAKE_TARGET).a $(TARGETD); \
- $(RANLIB) lib$(QMAKE_TARGET).a; \
- mv lib$(QMAKE_TARGET).a $(DESTDIR)
-QMAKE_LFLAGS = -q64
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB =
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME =
-QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
-QMAKE_AIX_SHLIB = 1
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthreads
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar -X64 cq
-QMAKE_RANLIB = ranlib -X64
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/aix-xlc-64/tqmake.conf b/mkspecs/aix-xlc-64/tqmake.conf
new file mode 100644
index 000000000..838c6b311
--- /dev/null
+++ b/mkspecs/aix-xlc-64/tqmake.conf
@@ -0,0 +1,89 @@
+#
+#
+# tqmake configuration for aix-xlc
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = xlc
+QMAKE_CC_THREAD = xlc_r
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -qstrict -q64
+# -qwarn64 turns on too many bogus warnings and shadows real warnings
+#QMAKE_CFLAGS_WARN_ON = -qwarn64
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O3
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -qthreaded
+
+QMAKE_CXX = xlC
+QMAKE_CXX_THREAD = xlC_r
+QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = xlC
+QMAKE_LINK_THREAD = xlC_r
+QMAKE_LINK_SHLIB = ld
+QMAKE_LINK_SHLIB_CMD = makeC++SharedLib -p 0 -X64 \
+ -o $(TARGETD) \
+ $(LFLAGS) $(OBJECTS) $(OBJMOC) $(LIBS); \
+ $(AR) lib$(QMAKE_TARGET).a $(TARGETD); \
+ $(RANLIB) lib$(QMAKE_TARGET).a; \
+ mv lib$(QMAKE_TARGET).a $(DESTDIR)
+QMAKE_LFLAGS = -q64
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB =
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME =
+QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
+QMAKE_AIX_SHLIB = 1
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthreads
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar -X64 cq
+QMAKE_RANLIB = ranlib -X64
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/aix-xlc/qmake.conf b/mkspecs/aix-xlc/qmake.conf
deleted file mode 100644
index a026de205..000000000
--- a/mkspecs/aix-xlc/qmake.conf
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-#
-# qmake configuration for aix-xlc
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = xlc
-QMAKE_CC_THREAD = xlc_r
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -qstrict
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O3
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -qthreaded
-
-QMAKE_CXX = xlC
-QMAKE_CXX_THREAD = xlC_r
-QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = xlC
-QMAKE_LINK_THREAD = xlC_r
-QMAKE_LINK_SHLIB = ld
-QMAKE_LINK_SHLIB_CMD = makeC++SharedLib -p 0 \
- -o $(TARGETD) \
- $(LFLAGS) $(OBJECTS) $(OBJMOC) $(LIBS); \
- $(AR) lib$(QMAKE_TARGET).a $(TARGETD); \
- $(RANLIB) lib$(QMAKE_TARGET).a; \
- mv lib$(QMAKE_TARGET).a $(DESTDIR)
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB =
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME =
-QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
-QMAKE_AIX_SHLIB = 1
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthreads
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB = ranlib
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/aix-xlc/tqmake.conf b/mkspecs/aix-xlc/tqmake.conf
new file mode 100644
index 000000000..1b195a7eb
--- /dev/null
+++ b/mkspecs/aix-xlc/tqmake.conf
@@ -0,0 +1,87 @@
+#
+#
+# tqmake configuration for aix-xlc
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = xlc
+QMAKE_CC_THREAD = xlc_r
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -qstrict
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O3
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -qthreaded
+
+QMAKE_CXX = xlC
+QMAKE_CXX_THREAD = xlC_r
+QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = xlC
+QMAKE_LINK_THREAD = xlC_r
+QMAKE_LINK_SHLIB = ld
+QMAKE_LINK_SHLIB_CMD = makeC++SharedLib -p 0 \
+ -o $(TARGETD) \
+ $(LFLAGS) $(OBJECTS) $(OBJMOC) $(LIBS); \
+ $(AR) lib$(QMAKE_TARGET).a $(TARGETD); \
+ $(RANLIB) lib$(QMAKE_TARGET).a; \
+ mv lib$(QMAKE_TARGET).a $(DESTDIR)
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB =
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME =
+QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
+QMAKE_AIX_SHLIB = 1
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm -lbind
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthreads
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB = ranlib
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/bsdi-g++/qmake.conf b/mkspecs/bsdi-g++/qmake.conf
deleted file mode 100644
index d4909e7dd..000000000
--- a/mkspecs/bsdi-g++/qmake.conf
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-#
-# qmake configuration for bsdi-g++
-#
-# Written for WindRiver BSD/OS 4.0.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/bsdi-g++/tqmake.conf b/mkspecs/bsdi-g++/tqmake.conf
new file mode 100644
index 000000000..71b8ef641
--- /dev/null
+++ b/mkspecs/bsdi-g++/tqmake.conf
@@ -0,0 +1,83 @@
+#
+#
+# tqmake configuration for bsdi-g++
+#
+# Written for WindRiver BSD/OS 4.0.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/cygwin-g++/qmake.conf b/mkspecs/cygwin-g++/qmake.conf
deleted file mode 100644
index bb8ba5dd0..000000000
--- a/mkspecs/cygwin-g++/qmake.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-#
-# qmake configuration for cygwin-g++
-#
-# Written for TQt/X11 on Cygwin, using the POSIX API.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = byacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-QMAKE_CYGWIN_SHLIB = 1
-QMAKE_CYGWIN_EXE = 1
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/cygwin-g++/tqmake.conf b/mkspecs/cygwin-g++/tqmake.conf
new file mode 100644
index 000000000..3a258f60b
--- /dev/null
+++ b/mkspecs/cygwin-g++/tqmake.conf
@@ -0,0 +1,85 @@
+#
+#
+# tqmake configuration for cygwin-g++
+#
+# Written for TQt/X11 on Cygwin, using the POSIX API.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+QMAKE_CYGWIN_SHLIB = 1
+QMAKE_CYGWIN_EXE = 1
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/darwin-g++/qmake.conf b/mkspecs/darwin-g++/qmake.conf
deleted file mode 100644
index 350f1fdfe..000000000
--- a/mkspecs/darwin-g++/qmake.conf
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-#
-# qmake configuration for darwin-g++
-#
-# Written for TQt/X11 on Darwin and XFree86.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release native_precompiled_headers
-CONFIG += qt warn_on release link_prl
-DEFINES += __DARWIN_X11__
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_EXTENSION_SHLIB = dylib
-QMAKE_EXTENSION_PLUGIN = so
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = c++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD =
-
-QMAKE_INCDIR = /usr/local/include
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = c++
-QMAKE_LINK_SHLIB = c++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_APP = -prebind
-QMAKE_LFLAGS_SHLIB = -prebind -dynamiclib -single_module -headerpad_max_install_names
-QMAKE_LFLAGS_PLUGIN = -bundle
-QMAKE_LFLAGS_THREAD =
-
-QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE}
-QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE}
-
-QMAKE_RPATH =
-
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB = ranlib -s
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $$QMAKE_COPY
-QMAKE_COPY_DIR = $$QMAKE_COPY -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/darwin-g++/tqmake.conf b/mkspecs/darwin-g++/tqmake.conf
new file mode 100644
index 000000000..787d054e5
--- /dev/null
+++ b/mkspecs/darwin-g++/tqmake.conf
@@ -0,0 +1,91 @@
+#
+#
+# tqmake configuration for darwin-g++
+#
+# Written for TQt/X11 on Darwin and XFree86.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release native_precompiled_headers
+CONFIG += qt warn_on release link_prl
+DEFINES += __DARWIN_X11__
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_EXTENSION_SHLIB = dylib
+QMAKE_EXTENSION_PLUGIN = so
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = c++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD =
+
+QMAKE_INCDIR = /usr/local/include
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = c++
+QMAKE_LINK_SHLIB = c++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_APP = -prebind
+QMAKE_LFLAGS_SHLIB = -prebind -dynamiclib -single_module -headerpad_max_install_names
+QMAKE_LFLAGS_PLUGIN = -bundle
+QMAKE_LFLAGS_THREAD =
+
+QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE}
+QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE}
+
+QMAKE_RPATH =
+
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB = ranlib -s
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $$QMAKE_COPY
+QMAKE_COPY_DIR = $$QMAKE_COPY -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/dgux-g++/qmake.conf b/mkspecs/dgux-g++/qmake.conf
deleted file mode 100644
index ee003c71d..000000000
--- a/mkspecs/dgux-g++/qmake.conf
+++ /dev/null
@@ -1,76 +0,0 @@
-#
-#
-# qmake configuration for dgux-g++
-#
-# Written for DG/UX R4.20MU06.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-h,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_QT = -lqt
-
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/dgux-g++/tqmake.conf b/mkspecs/dgux-g++/tqmake.conf
new file mode 100644
index 000000000..d83111359
--- /dev/null
+++ b/mkspecs/dgux-g++/tqmake.conf
@@ -0,0 +1,76 @@
+#
+#
+# tqmake configuration for dgux-g++
+#
+# Written for DG/UX R4.20MU06.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-h,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_QT = -lqt
+
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/dilos-g++/qmake.conf b/mkspecs/dilos-g++/qmake.conf
deleted file mode 100644
index 8574f9bfb..000000000
--- a/mkspecs/dilos-g++/qmake.conf
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-#
-# qmake configuration for dilos-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
-QMAKE_YACC_HEADER = $base.tab.h
-QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_CFLAGS = -pipe -D__dilos__ -D__EXTENSIONS__ -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -O0 -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/include/X11
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-R,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm -lresolv
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread -lrt
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $(COPY)
-QMAKE_COPY_DIR = $(COPY) -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP =
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/dilos-g++/tqmake.conf b/mkspecs/dilos-g++/tqmake.conf
new file mode 100644
index 000000000..0772f9789
--- /dev/null
+++ b/mkspecs/dilos-g++/tqmake.conf
@@ -0,0 +1,88 @@
+#
+#
+# tqmake configuration for dilos-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_CFLAGS = -pipe -D__dilos__ -D__EXTENSIONS__ -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -O0 -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/include/X11
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-R,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm -lresolv
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread -lrt
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP =
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-clang/qmake.conf b/mkspecs/freebsd-clang/qmake.conf
deleted file mode 100644
index 639052d9a..000000000
--- a/mkspecs/freebsd-clang/qmake.conf
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-#
-# qmake configuration for freebsd-clang
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = clang
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE
-
-QMAKE_CXX = clang++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-# Addon software goes into /usr/local on the BSDs, by default we will look there
-QMAKE_INCDIR = /usr/local/include
-QMAKE_LIBDIR = /usr/local/lib
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = clang++
-QMAKE_LINK_SHLIB = clang++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD = -pthread
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-clang/tqmake.conf b/mkspecs/freebsd-clang/tqmake.conf
new file mode 100644
index 000000000..2c67a75e9
--- /dev/null
+++ b/mkspecs/freebsd-clang/tqmake.conf
@@ -0,0 +1,81 @@
+#
+#
+# tqmake configuration for freebsd-clang
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = clang
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE
+
+QMAKE_CXX = clang++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+# Addon software goes into /usr/local on the BSDs, by default we will look there
+QMAKE_INCDIR = /usr/local/include
+QMAKE_LIBDIR = /usr/local/lib
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = clang++
+QMAKE_LINK_SHLIB = clang++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD = -pthread
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-g++/qmake.conf b/mkspecs/freebsd-g++/qmake.conf
deleted file mode 100644
index 0dee3070c..000000000
--- a/mkspecs/freebsd-g++/qmake.conf
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-#
-# qmake configuration for freebsd-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-# Addon software goes into /usr/local on the BSDs, by default we will look there
-QMAKE_INCDIR = /usr/local/include
-QMAKE_LIBDIR = /usr/local/lib
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD = -pthread
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-g++/tqmake.conf b/mkspecs/freebsd-g++/tqmake.conf
new file mode 100644
index 000000000..6a63f13ec
--- /dev/null
+++ b/mkspecs/freebsd-g++/tqmake.conf
@@ -0,0 +1,81 @@
+#
+#
+# tqmake configuration for freebsd-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+# Addon software goes into /usr/local on the BSDs, by default we will look there
+QMAKE_INCDIR = /usr/local/include
+QMAKE_LIBDIR = /usr/local/lib
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD = -pthread
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-g++34/qmake.conf b/mkspecs/freebsd-g++34/qmake.conf
deleted file mode 100644
index 758994fd7..000000000
--- a/mkspecs/freebsd-g++34/qmake.conf
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-#
-# qmake configuration for freebsd-g++34 (using g++34 from ports/lang/gcc34)
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc34
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE
-
-QMAKE_CXX = g++34
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-# Addon software goes into /usr/local on the BSDs, by default we will look there
-QMAKE_INCDIR = /usr/local/include
-QMAKE_LIBDIR = /usr/local/lib
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++34
-QMAKE_LINK_SHLIB = g++34
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD = -pthread
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-g++34/tqmake.conf b/mkspecs/freebsd-g++34/tqmake.conf
new file mode 100644
index 000000000..975bf0b69
--- /dev/null
+++ b/mkspecs/freebsd-g++34/tqmake.conf
@@ -0,0 +1,81 @@
+#
+#
+# tqmake configuration for freebsd-g++34 (using g++34 from ports/lang/gcc34)
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc34
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE
+
+QMAKE_CXX = g++34
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+# Addon software goes into /usr/local on the BSDs, by default we will look there
+QMAKE_INCDIR = /usr/local/include
+QMAKE_LIBDIR = /usr/local/lib
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++34
+QMAKE_LINK_SHLIB = g++34
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD = -pthread
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-icc/qmake.conf b/mkspecs/freebsd-icc/qmake.conf
deleted file mode 100644
index 4e108492a..000000000
--- a/mkspecs/freebsd-icc/qmake.conf
+++ /dev/null
@@ -1,99 +0,0 @@
-#
-#
-# qmake configuration for freebsd-icc
-#
-# Written for Intel C++ 7.1 and above.
-#
-# Note: Some of the remarks from the Intel compiler are disabled (even
-# with 'warn_on' specified):
-#
-# remark #171: invalid type conversion: "int" to "void *"
-# remark #193: zero used for undefined preprocessing identifier
-# remark #279: controlling expression is constant
-# remark #304: access control not specified ("public" by default)
-# remark #383: value copied to temporary, reference to temporary used
-# remark #424: extra ";" ignored
-# remark #444: destructor for base class "Class" is not virtual
-# remark #488: template parameter "T" is not used in declaring the parameter
-# types of function template "function"
-# remark #810: conversion from "type1" to "type2" may loose significant bits
-# remark #981: operands are evaluated in unspecified order
-# remark #1418: external definition with no prior declaration
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = icc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -w2 -wd171,193,304,279,383,424,444,488,810,981,1418
-QMAKE_CFLAGS_WARN_OFF = -w0
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g -O0
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_THREAD_SAFE
-
-QMAKE_CXX = icpc
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-# Addon software goes into /usr/local on the BSDs, by default we will look there
-QMAKE_INCDIR = /usr/local/include
-QMAKE_LIBDIR = /usr/local/lib
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = icpc
-QMAKE_LINK_SHLIB = icpc
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Qoption,ld,-soname,
-QMAKE_LFLAGS_THREAD = -mt
-QMAKE_RPATH = -Qoption,ld,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/freebsd-icc/tqmake.conf b/mkspecs/freebsd-icc/tqmake.conf
new file mode 100644
index 000000000..8259504d7
--- /dev/null
+++ b/mkspecs/freebsd-icc/tqmake.conf
@@ -0,0 +1,99 @@
+#
+#
+# tqmake configuration for freebsd-icc
+#
+# Written for Intel C++ 7.1 and above.
+#
+# Note: Some of the remarks from the Intel compiler are disabled (even
+# with 'warn_on' specified):
+#
+# remark #171: invalid type conversion: "int" to "void *"
+# remark #193: zero used for undefined preprocessing identifier
+# remark #279: controlling expression is constant
+# remark #304: access control not specified ("public" by default)
+# remark #383: value copied to temporary, reference to temporary used
+# remark #424: extra ";" ignored
+# remark #444: destructor for base class "Class" is not virtual
+# remark #488: template parameter "T" is not used in declaring the parameter
+# types of function template "function"
+# remark #810: conversion from "type1" to "type2" may loose significant bits
+# remark #981: operands are evaluated in unspecified order
+# remark #1418: external definition with no prior declaration
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = icc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -w2 -wd171,193,304,279,383,424,444,488,810,981,1418
+QMAKE_CFLAGS_WARN_OFF = -w0
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g -O0
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_THREAD_SAFE
+
+QMAKE_CXX = icpc
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+# Addon software goes into /usr/local on the BSDs, by default we will look there
+QMAKE_INCDIR = /usr/local/include
+QMAKE_LIBDIR = /usr/local/lib
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = icpc
+QMAKE_LINK_SHLIB = icpc
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Qoption,ld,-soname,
+QMAKE_LFLAGS_THREAD = -mt
+QMAKE_RPATH = -Qoption,ld,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-acc-64/qmake.conf b/mkspecs/hpux-acc-64/qmake.conf
deleted file mode 100644
index 4a47ed6e7..000000000
--- a/mkspecs/hpux-acc-64/qmake.conf
+++ /dev/null
@@ -1,125 +0,0 @@
-#
-#
-# qmake configuration for hpux-n64
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
-# we also need to redefine _HPUX_SOURCE.
-# From pthread(3t):
-# Some documentation will recommend the use of -D_REENTRANT for
-# compilation. While this also functions properly, it is considered
-# an obsolescent form.
-# See pthread(3t) for more details.
-#
-# From the "HP aC++ Online Programmer's Guide":
-# When +DA2.0W is specified:
-# * 64-bit SVR4 Executable and Linking Format (ELF) object files
-# are generated for PA-RISC 2.0.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# * The correct path for 64-bit system and language libraries is
-# selected.
-# When +DD32 is specified:
-# * The size of an int, long, or pointer data type is 32-bits.
-# The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is the default, currently equivalent to +DA1.1 architecture.
-# When +DD64 is specified:
-# * The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is currently equivalent to +DA2.OW architecture.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# Using +DS to Specify Instruction Scheduling:
-# * By default, the compiler performs scheduling tuned for the system
-# on which you are compiling, or, if specified, tuned for the setting
-# of the +DA option.
-#
-# From the online "C/HP-UX Reference Manual":
-# -Aa
-# Enables strict ANSI C compliance.
-# -Ae
-# Enables ANSI C compliance, HP value-added features (as described
-# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
-# to -Aa +e -D_HPUX_SOURCE.
-# +e
-# Enables the following HP value added features while compiling in
-# ANSI C mode: sized enum, long long, long pointers, compiler supplied
-# defaults for missing arguments to intrinsic calls, and $ in identifier
-# HP C extensions.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -Ae +DA2.0W -w
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O +Osize
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = +Z
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
-
-QMAKE_CXX = aCC
-QMAKE_CXXFLAGS = -Aa +DA2.0W -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_DEPS = +M
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11R6
-QMAKE_LIBDIR_X11 = /usr/lib/X11R6/pa20_64
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/pa20_64 /usr/contrib/X11R6/lib/pa20_64
-
-QMAKE_LINK = aCC
-QMAKE_LINK_SHLIB = aCC
-QMAKE_LFLAGS = +DA2.0W -Wl,+s
-QMAKE_LFLAGS_RELEASE = -O
-QMAKE_LFLAGS_DEBUG = -g
-QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,+b,
-QMAKE_HPUX_SHLIB = 3
-QMAKE_EXTENSION_SHLIB = sl
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu -lXt
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_YACC = -ly
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-acc-64/tqmake.conf b/mkspecs/hpux-acc-64/tqmake.conf
new file mode 100644
index 000000000..109c8f546
--- /dev/null
+++ b/mkspecs/hpux-acc-64/tqmake.conf
@@ -0,0 +1,125 @@
+#
+#
+# tqmake configuration for hpux-n64
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
+# we also need to redefine _HPUX_SOURCE.
+# From pthread(3t):
+# Some documentation will recommend the use of -D_REENTRANT for
+# compilation. While this also functions properly, it is considered
+# an obsolescent form.
+# See pthread(3t) for more details.
+#
+# From the "HP aC++ Online Programmer's Guide":
+# When +DA2.0W is specified:
+# * 64-bit SVR4 Executable and Linking Format (ELF) object files
+# are generated for PA-RISC 2.0.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# * The correct path for 64-bit system and language libraries is
+# selected.
+# When +DD32 is specified:
+# * The size of an int, long, or pointer data type is 32-bits.
+# The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is the default, currently equivalent to +DA1.1 architecture.
+# When +DD64 is specified:
+# * The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is currently equivalent to +DA2.OW architecture.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# Using +DS to Specify Instruction Scheduling:
+# * By default, the compiler performs scheduling tuned for the system
+# on which you are compiling, or, if specified, tuned for the setting
+# of the +DA option.
+#
+# From the online "C/HP-UX Reference Manual":
+# -Aa
+# Enables strict ANSI C compliance.
+# -Ae
+# Enables ANSI C compliance, HP value-added features (as described
+# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
+# to -Aa +e -D_HPUX_SOURCE.
+# +e
+# Enables the following HP value added features while compiling in
+# ANSI C mode: sized enum, long long, long pointers, compiler supplied
+# defaults for missing arguments to intrinsic calls, and $ in identifier
+# HP C extensions.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -Ae +DA2.0W -w
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O +Osize
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = +Z
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
+
+QMAKE_CXX = aCC
+QMAKE_CXXFLAGS = -Aa +DA2.0W -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_DEPS = +M
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11R6
+QMAKE_LIBDIR_X11 = /usr/lib/X11R6/pa20_64
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/pa20_64 /usr/contrib/X11R6/lib/pa20_64
+
+QMAKE_LINK = aCC
+QMAKE_LINK_SHLIB = aCC
+QMAKE_LFLAGS = +DA2.0W -Wl,+s
+QMAKE_LFLAGS_RELEASE = -O
+QMAKE_LFLAGS_DEBUG = -g
+QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,+b,
+QMAKE_HPUX_SHLIB = 3
+QMAKE_EXTENSION_SHLIB = sl
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu -lXt
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_YACC = -ly
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-acc-o64/qmake.conf b/mkspecs/hpux-acc-o64/qmake.conf
deleted file mode 100644
index 906092ac6..000000000
--- a/mkspecs/hpux-acc-o64/qmake.conf
+++ /dev/null
@@ -1,124 +0,0 @@
-#
-#
-# qmake configuration for hpux-o64
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
-# we also need to redefine _HPUX_SOURCE.
-# From pthread(3t):
-# Some documentation will recommend the use of -D_REENTRANT for
-# compilation. While this also functions properly, it is considered
-# an obsolescent form.
-# See pthread(3t) for more details.
-#
-# From the "HP aC++ Online Programmer's Guide":
-# When +DA2.0W is specified:
-# * 64-bit SVR4 Executable and Linking Format (ELF) object files
-# are generated for PA-RISC 2.0.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# * The correct path for 64-bit system and language libraries is
-# selected.
-# When +DD32 is specified:
-# * The size of an int, long, or pointer data type is 32-bits.
-# The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is the default, currently equivalent to +DA1.1 architecture.
-# When +DD64 is specified:
-# * The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is currently equivalent to +DA2.OW architecture.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# Using +DS to Specify Instruction Scheduling:
-# * By default, the compiler performs scheduling tuned for the system
-# on which you are compiling, or, if specified, tuned for the setting
-# of the +DA option.
-#
-# From the online "C/HP-UX Reference Manual":
-# -Aa
-# Enables strict ANSI C compliance.
-# -Ae
-# Enables ANSI C compliance, HP value-added features (as described
-# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
-# to -Aa +e -D_HPUX_SOURCE.
-# +e
-# Enables the following HP value added features while compiling in
-# ANSI C mode: sized enum, long long, long pointers, compiler supplied
-# defaults for missing arguments to intrinsic calls, and $ in identifier
-# HP C extensions.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -Ae +DA2.0 -w
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O +Oentrysched +Onolimit
-QMAKE_CFLAGS_DEBUG = -y -g
-QMAKE_CFLAGS_SHLIB = +Z
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
-
-QMAKE_CXX = aCC
-QMAKE_CXXFLAGS = +DA2.0 -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = -g
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11R6
-QMAKE_LIBDIR_X11 = /usr/lib/X11R6
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib
-
-QMAKE_LINK = aCC
-QMAKE_LINK_SHLIB = aCC
-QMAKE_LFLAGS = +DA2.0 -Wl,+s
-QMAKE_LFLAGS_RELEASE = -O
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -b
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_RPATH = -Wl,+b,
-QMAKE_HPUX_SHLIB = 2
-QMAKE_EXTENSION_SHLIB = sl
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD = -ldld
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_YACC = -ly
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-acc-o64/tqmake.conf b/mkspecs/hpux-acc-o64/tqmake.conf
new file mode 100644
index 000000000..17def0cc9
--- /dev/null
+++ b/mkspecs/hpux-acc-o64/tqmake.conf
@@ -0,0 +1,124 @@
+#
+#
+# tqmake configuration for hpux-o64
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
+# we also need to redefine _HPUX_SOURCE.
+# From pthread(3t):
+# Some documentation will recommend the use of -D_REENTRANT for
+# compilation. While this also functions properly, it is considered
+# an obsolescent form.
+# See pthread(3t) for more details.
+#
+# From the "HP aC++ Online Programmer's Guide":
+# When +DA2.0W is specified:
+# * 64-bit SVR4 Executable and Linking Format (ELF) object files
+# are generated for PA-RISC 2.0.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# * The correct path for 64-bit system and language libraries is
+# selected.
+# When +DD32 is specified:
+# * The size of an int, long, or pointer data type is 32-bits.
+# The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is the default, currently equivalent to +DA1.1 architecture.
+# When +DD64 is specified:
+# * The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is currently equivalent to +DA2.OW architecture.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# Using +DS to Specify Instruction Scheduling:
+# * By default, the compiler performs scheduling tuned for the system
+# on which you are compiling, or, if specified, tuned for the setting
+# of the +DA option.
+#
+# From the online "C/HP-UX Reference Manual":
+# -Aa
+# Enables strict ANSI C compliance.
+# -Ae
+# Enables ANSI C compliance, HP value-added features (as described
+# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
+# to -Aa +e -D_HPUX_SOURCE.
+# +e
+# Enables the following HP value added features while compiling in
+# ANSI C mode: sized enum, long long, long pointers, compiler supplied
+# defaults for missing arguments to intrinsic calls, and $ in identifier
+# HP C extensions.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -Ae +DA2.0 -w
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O +Oentrysched +Onolimit
+QMAKE_CFLAGS_DEBUG = -y -g
+QMAKE_CFLAGS_SHLIB = +Z
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
+
+QMAKE_CXX = aCC
+QMAKE_CXXFLAGS = +DA2.0 -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = -g
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11R6
+QMAKE_LIBDIR_X11 = /usr/lib/X11R6
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib
+
+QMAKE_LINK = aCC
+QMAKE_LINK_SHLIB = aCC
+QMAKE_LFLAGS = +DA2.0 -Wl,+s
+QMAKE_LFLAGS_RELEASE = -O
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -b
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_RPATH = -Wl,+b,
+QMAKE_HPUX_SHLIB = 2
+QMAKE_EXTENSION_SHLIB = sl
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD = -ldld
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_YACC = -ly
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-acc/qmake.conf b/mkspecs/hpux-acc/qmake.conf
deleted file mode 100644
index d9ca7fe9c..000000000
--- a/mkspecs/hpux-acc/qmake.conf
+++ /dev/null
@@ -1,104 +0,0 @@
-#
-#
-# qmake configuration for hpux-acc
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
-# we also need to redefine _HPUX_SOURCE. See pthread(3t) for more details.
-#
-# From the "HP aC++ Online Programmer's Guide":
-# Using +DS to Specify Instruction Scheduling:
-# * By default, the compiler performs scheduling tuned for the system
-# on which you are compiling, or, if specified, tuned for the setting
-# of the +DA option.
-#
-# From the online "C/HP-UX Reference Manual":
-# -Aa
-# Enables strict ANSI C compliance.
-# -Ae
-# Enables ANSI C compliance, HP value-added features (as described
-# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
-# to -Aa +e -D_HPUX_SOURCE.
-# +e
-# Enables the following HP value added features while compiling in
-# ANSI C mode: sized enum, long long, long pointers, compiler supplied
-# defaults for missing arguments to intrinsic calls, and $ in identifier
-# HP C extensions.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -Ae +DAportable -w
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = +Z
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
-
-QMAKE_CXX = aCC
-QMAKE_CXXFLAGS = +DAportable -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_DEPS = +M
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11R6
-QMAKE_LIBDIR_X11 = /usr/lib/X11R6
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib
-
-QMAKE_LINK = aCC
-QMAKE_LINK_SHLIB = aCC
-QMAKE_LFLAGS = +DAportable -Wl,+s
-QMAKE_LFLAGS_RELEASE = -O
-QMAKE_LFLAGS_DEBUG = -g
-QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,+b,
-QMAKE_HPUX_SHLIB = 1
-QMAKE_EXTENSION_SHLIB = sl
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD = -ldld
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
-QMAKE_LIBS_OPENGL_QT = -lGL -lXt
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_YACC = -ly
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-acc/tqmake.conf b/mkspecs/hpux-acc/tqmake.conf
new file mode 100644
index 000000000..3e8d077cc
--- /dev/null
+++ b/mkspecs/hpux-acc/tqmake.conf
@@ -0,0 +1,104 @@
+#
+#
+# tqmake configuration for hpux-acc
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
+# we also need to redefine _HPUX_SOURCE. See pthread(3t) for more details.
+#
+# From the "HP aC++ Online Programmer's Guide":
+# Using +DS to Specify Instruction Scheduling:
+# * By default, the compiler performs scheduling tuned for the system
+# on which you are compiling, or, if specified, tuned for the setting
+# of the +DA option.
+#
+# From the online "C/HP-UX Reference Manual":
+# -Aa
+# Enables strict ANSI C compliance.
+# -Ae
+# Enables ANSI C compliance, HP value-added features (as described
+# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
+# to -Aa +e -D_HPUX_SOURCE.
+# +e
+# Enables the following HP value added features while compiling in
+# ANSI C mode: sized enum, long long, long pointers, compiler supplied
+# defaults for missing arguments to intrinsic calls, and $ in identifier
+# HP C extensions.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -Ae +DAportable -w
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = +Z
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
+
+QMAKE_CXX = aCC
+QMAKE_CXXFLAGS = +DAportable -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_DEPS = +M
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11R6
+QMAKE_LIBDIR_X11 = /usr/lib/X11R6
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib
+
+QMAKE_LINK = aCC
+QMAKE_LINK_SHLIB = aCC
+QMAKE_LFLAGS = +DAportable -Wl,+s
+QMAKE_LFLAGS_RELEASE = -O
+QMAKE_LFLAGS_DEBUG = -g
+QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,+b,
+QMAKE_HPUX_SHLIB = 1
+QMAKE_EXTENSION_SHLIB = sl
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD = -ldld
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
+QMAKE_LIBS_OPENGL_QT = -lGL -lXt
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_YACC = -ly
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-cc/qmake.conf b/mkspecs/hpux-cc/qmake.conf
deleted file mode 100644
index 0f217e459..000000000
--- a/mkspecs/hpux-cc/qmake.conf
+++ /dev/null
@@ -1,99 +0,0 @@
-#
-#
-# qmake configuration for hpux-cc
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
-# we also need to redefine _HPUX_SOURCE.
-# See pthread(3t) for more details.
-#
-# From the "HP aC++ Online Programmer's Guide":
-# Using +DS to Specify Instruction Scheduling:
-# * By default, the compiler performs scheduling tuned for the system
-# on which you are compiling, or, if specified, tuned for the setting
-# of the +DA option.
-#
-# From the online "C/HP-UX Reference Manual":
-# -Aa
-# Enables strict ANSI C compliance.
-# -Ae
-# Enables ANSI C compliance, HP value-added features (as described
-# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
-# to -Aa +e -D_HPUX_SOURCE.
-# +e
-# Enables the following HP value added features while compiling in
-# ANSI C mode: sized enum, long long, long pointers, compiler supplied
-# defaults for missing arguments to intrinsic calls, and $ in identifier
-# HP C extensions.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -Ae +DA1.1e -w
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = +Z
-QMAKE_CFLAGS_YACC =
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = +DA1.1e -w +a1 -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11R6
-QMAKE_LIBDIR_X11 = /usr/lib/X11R6
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-# CC generates template code during linking, and so needs -I's
-QMAKE_LFLAGS = +DA1.1e -Wl,+s -L/usr/lib -I$$QMAKE_INCDIR_X11 -I$$QMAKE_INCDIR_TQT
-QMAKE_LFLAGS_RELEASE = -O -s
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -b
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_RPATH = -Wl,+b,
-QMAKE_HPUX_SHLIB = 1
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD = -ldld
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-cc/tqmake.conf b/mkspecs/hpux-cc/tqmake.conf
new file mode 100644
index 000000000..b57b4f29a
--- /dev/null
+++ b/mkspecs/hpux-cc/tqmake.conf
@@ -0,0 +1,99 @@
+#
+#
+# tqmake configuration for hpux-cc
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
+# we also need to redefine _HPUX_SOURCE.
+# See pthread(3t) for more details.
+#
+# From the "HP aC++ Online Programmer's Guide":
+# Using +DS to Specify Instruction Scheduling:
+# * By default, the compiler performs scheduling tuned for the system
+# on which you are compiling, or, if specified, tuned for the setting
+# of the +DA option.
+#
+# From the online "C/HP-UX Reference Manual":
+# -Aa
+# Enables strict ANSI C compliance.
+# -Ae
+# Enables ANSI C compliance, HP value-added features (as described
+# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
+# to -Aa +e -D_HPUX_SOURCE.
+# +e
+# Enables the following HP value added features while compiling in
+# ANSI C mode: sized enum, long long, long pointers, compiler supplied
+# defaults for missing arguments to intrinsic calls, and $ in identifier
+# HP C extensions.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -Ae +DA1.1e -w
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = +Z
+QMAKE_CFLAGS_YACC =
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = +DA1.1e -w +a1 -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11R6
+QMAKE_LIBDIR_X11 = /usr/lib/X11R6
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+# CC generates template code during linking, and so needs -I's
+QMAKE_LFLAGS = +DA1.1e -Wl,+s -L/usr/lib -I$$QMAKE_INCDIR_X11 -I$$QMAKE_INCDIR_TQT
+QMAKE_LFLAGS_RELEASE = -O -s
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -b
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_RPATH = -Wl,+b,
+QMAKE_HPUX_SHLIB = 1
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD = -ldld
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-g++-64/qmake.conf b/mkspecs/hpux-g++-64/qmake.conf
deleted file mode 100644
index 519ad3bb4..000000000
--- a/mkspecs/hpux-g++-64/qmake.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-#
-# qmake configuration for hpux-g++-64
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads,
-# therefore we also need to redefine _HPUX_SOURCE.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11R6
-QMAKE_LIBDIR_X11 = /usr/lib/X11R6/pa20_64
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/Mesa/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/Mesa/lib/pa20_64 /usr/contrib/X11R6/lib/pa20_64
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -Wl,+s
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -fPIC -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,+b,
-QMAKE_HPUX_SHLIB = 3
-QMAKE_EXTENSION_SHLIB = sl
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_YACC = -ly
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-g++-64/tqmake.conf b/mkspecs/hpux-g++-64/tqmake.conf
new file mode 100644
index 000000000..05507b993
--- /dev/null
+++ b/mkspecs/hpux-g++-64/tqmake.conf
@@ -0,0 +1,85 @@
+#
+#
+# tqmake configuration for hpux-g++-64
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads,
+# therefore we also need to redefine _HPUX_SOURCE.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11R6
+QMAKE_LIBDIR_X11 = /usr/lib/X11R6/pa20_64
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/Mesa/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/Mesa/lib/pa20_64 /usr/contrib/X11R6/lib/pa20_64
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -Wl,+s
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -fPIC -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,+b,
+QMAKE_HPUX_SHLIB = 3
+QMAKE_EXTENSION_SHLIB = sl
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_YACC = -ly
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-g++/qmake.conf b/mkspecs/hpux-g++/qmake.conf
deleted file mode 100644
index bd08469f8..000000000
--- a/mkspecs/hpux-g++/qmake.conf
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-#
-# qmake configuration for hpux-g++
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads,
-# therefore we also need to redefine _HPUX_SOURCE.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl plugin_no_soname
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 = /usr/lib/X11R6
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/Mesa/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/Mesa/lib /usr/contrib/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -Wl,+s
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -fPIC -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,+b,
-QMAKE_HPUX_SHLIB = 1
-QMAKE_EXTENSION_SHLIB = sl
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldld
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_YACC = -ly
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpux-g++/tqmake.conf b/mkspecs/hpux-g++/tqmake.conf
new file mode 100644
index 000000000..d7b92c421
--- /dev/null
+++ b/mkspecs/hpux-g++/tqmake.conf
@@ -0,0 +1,86 @@
+#
+#
+# tqmake configuration for hpux-g++
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads,
+# therefore we also need to redefine _HPUX_SOURCE.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl plugin_no_soname
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 = /usr/lib/X11R6
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/Mesa/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/Mesa/lib /usr/contrib/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -Wl,+s
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -fPIC -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,+b,
+QMAKE_HPUX_SHLIB = 1
+QMAKE_EXTENSION_SHLIB = sl
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldld
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_YACC = -ly
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpuxi-acc-32/qmake.conf b/mkspecs/hpuxi-acc-32/qmake.conf
deleted file mode 100644
index dcb213008..000000000
--- a/mkspecs/hpuxi-acc-32/qmake.conf
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-#
-# qmake configuration for hpuxi-acc-32
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
-# we also need to redefine _HPUX_SOURCE.
-# From pthread(3t):
-# Some documentation will recommend the use of -D_REENTRANT for
-# compilation. While this also functions properly, it is considered
-# an obsolescent form.
-# See pthread(3t) for more details.
-#
-# From the "HP aC++ Online Programmer's Guide":
-# When +DA2.0W is specified:
-# * 64-bit SVR4 Executable and Linking Format (ELF) object files
-# are generated for PA-RISC 2.0.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# * The correct path for 64-bit system and language libraries is
-# selected.
-# When +DD32 is specified:
-# * The size of an int, long, or pointer data type is 32-bits.
-# The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is the default, currently equivalent to +DA1.1 architecture.
-# When +DD64 is specified:
-# * The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is currently equivalent to +DA2.OW architecture.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# Using +DS to Specify Instruction Scheduling:
-# * By default, the compiler performs scheduling tuned for the system
-# on which you are compiling, or, if specified, tuned for the setting
-# of the +DA option.
-#
-# From the online "C/HP-UX Reference Manual":
-# -Aa
-# Enables strict ANSI C compliance.
-# -Ae
-# Enables ANSI C compliance, HP value-added features (as described
-# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
-# to -Aa +e -D_HPUX_SOURCE.
-# +e
-# Enables the following HP value added features while compiling in
-# ANSI C mode: sized enum, long long, long pointers, compiler supplied
-# defaults for missing arguments to intrinsic calls, and $ in identifier
-# HP C extensions.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release plugin_no_soname
-
-QMAKE_CC = cc
-QMAKE_LEX = lex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = +DD32 +DSitanium -w
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = +O2 +Osize
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = +Z
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
-
-QMAKE_CXX = aCC
-QMAKE_CXXFLAGS = +DD32 +DSitanium -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_DEPS = +M
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11R6
-QMAKE_LIBDIR_X11 = /usr/lib/hpux32/X11R6
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/hpux32 /usr/contrib/X11R6/lib/hpux32
-
-QMAKE_LINK = aCC
-QMAKE_LINK_SHLIB = aCC
-QMAKE_LFLAGS = +DD32 +DSitanium -Wl,+s
-QMAKE_LFLAGS_RELEASE = +O2
-QMAKE_LFLAGS_DEBUG = -g
-QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH =
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu -lXt
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_YACC = -ly
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpuxi-acc-32/tqmake.conf b/mkspecs/hpuxi-acc-32/tqmake.conf
new file mode 100644
index 000000000..74265c387
--- /dev/null
+++ b/mkspecs/hpuxi-acc-32/tqmake.conf
@@ -0,0 +1,123 @@
+#
+#
+# tqmake configuration for hpuxi-acc-32
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
+# we also need to redefine _HPUX_SOURCE.
+# From pthread(3t):
+# Some documentation will recommend the use of -D_REENTRANT for
+# compilation. While this also functions properly, it is considered
+# an obsolescent form.
+# See pthread(3t) for more details.
+#
+# From the "HP aC++ Online Programmer's Guide":
+# When +DA2.0W is specified:
+# * 64-bit SVR4 Executable and Linking Format (ELF) object files
+# are generated for PA-RISC 2.0.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# * The correct path for 64-bit system and language libraries is
+# selected.
+# When +DD32 is specified:
+# * The size of an int, long, or pointer data type is 32-bits.
+# The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is the default, currently equivalent to +DA1.1 architecture.
+# When +DD64 is specified:
+# * The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is currently equivalent to +DA2.OW architecture.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# Using +DS to Specify Instruction Scheduling:
+# * By default, the compiler performs scheduling tuned for the system
+# on which you are compiling, or, if specified, tuned for the setting
+# of the +DA option.
+#
+# From the online "C/HP-UX Reference Manual":
+# -Aa
+# Enables strict ANSI C compliance.
+# -Ae
+# Enables ANSI C compliance, HP value-added features (as described
+# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
+# to -Aa +e -D_HPUX_SOURCE.
+# +e
+# Enables the following HP value added features while compiling in
+# ANSI C mode: sized enum, long long, long pointers, compiler supplied
+# defaults for missing arguments to intrinsic calls, and $ in identifier
+# HP C extensions.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release plugin_no_soname
+
+QMAKE_CC = cc
+QMAKE_LEX = lex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = +DD32 +DSitanium -w
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = +O2 +Osize
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = +Z
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
+
+QMAKE_CXX = aCC
+QMAKE_CXXFLAGS = +DD32 +DSitanium -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_DEPS = +M
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11R6
+QMAKE_LIBDIR_X11 = /usr/lib/hpux32/X11R6
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/hpux32 /usr/contrib/X11R6/lib/hpux32
+
+QMAKE_LINK = aCC
+QMAKE_LINK_SHLIB = aCC
+QMAKE_LFLAGS = +DD32 +DSitanium -Wl,+s
+QMAKE_LFLAGS_RELEASE = +O2
+QMAKE_LFLAGS_DEBUG = -g
+QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH =
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu -lXt
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_YACC = -ly
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpuxi-acc-64/qmake.conf b/mkspecs/hpuxi-acc-64/qmake.conf
deleted file mode 100644
index c5e913c15..000000000
--- a/mkspecs/hpuxi-acc-64/qmake.conf
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-#
-# qmake configuration for hpuxi-acc-64
-#
-# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
-# we also need to redefine _HPUX_SOURCE.
-# From pthread(3t):
-# Some documentation will recommend the use of -D_REENTRANT for
-# compilation. While this also functions properly, it is considered
-# an obsolescent form.
-# See pthread(3t) for more details.
-#
-# From the "HP aC++ Online Programmer's Guide":
-# When +DA2.0W is specified:
-# * 64-bit SVR4 Executable and Linking Format (ELF) object files
-# are generated for PA-RISC 2.0.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# * The correct path for 64-bit system and language libraries is
-# selected.
-# When +DD32 is specified:
-# * The size of an int, long, or pointer data type is 32-bits.
-# The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is the default, currently equivalent to +DA1.1 architecture.
-# When +DD64 is specified:
-# * The size of an int data type is 32-bits. The size of a long or
-# pointer data type is 64-bits.
-# * This is currently equivalent to +DA2.OW architecture.
-# * The preprocessor predefined macro, __LP64__ is defined.
-# Using +DS to Specify Instruction Scheduling:
-# * By default, the compiler performs scheduling tuned for the system
-# on which you are compiling, or, if specified, tuned for the setting
-# of the +DA option.
-#
-# From the online "C/HP-UX Reference Manual":
-# -Aa
-# Enables strict ANSI C compliance.
-# -Ae
-# Enables ANSI C compliance, HP value-added features (as described
-# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
-# to -Aa +e -D_HPUX_SOURCE.
-# +e
-# Enables the following HP value added features while compiling in
-# ANSI C mode: sized enum, long long, long pointers, compiler supplied
-# defaults for missing arguments to intrinsic calls, and $ in identifier
-# HP C extensions.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release plugin_no_soname
-
-QMAKE_CC = cc
-QMAKE_LEX = lex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = +DD64 +DSitanium -w
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = +O2 +Osize
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = +Z
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
-
-QMAKE_CXX = aCC
-QMAKE_CXXFLAGS = +DD64 +DSitanium -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
-QMAKE_CXXFLAGS_DEPS = +M
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11R6
-QMAKE_LIBDIR_X11 = /usr/lib/hpux64/X11R6
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
-QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/hpux64 /usr/contrib/X11R6/lib/hpux64
-
-QMAKE_LINK = aCC
-QMAKE_LINK_SHLIB = aCC
-QMAKE_LFLAGS = +DD64 +DSitanium -Wl,+s
-QMAKE_LFLAGS_RELEASE = +O2
-QMAKE_LFLAGS_DEBUG = -g
-QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared_archive
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,+h,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH =
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu -lXt
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_YACC = -ly
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hpuxi-acc-64/tqmake.conf b/mkspecs/hpuxi-acc-64/tqmake.conf
new file mode 100644
index 000000000..f8f6314c1
--- /dev/null
+++ b/mkspecs/hpuxi-acc-64/tqmake.conf
@@ -0,0 +1,123 @@
+#
+#
+# tqmake configuration for hpuxi-acc-64
+#
+# We define _POSIX_C_SOURCE to 199506L when using threads, therefore
+# we also need to redefine _HPUX_SOURCE.
+# From pthread(3t):
+# Some documentation will recommend the use of -D_REENTRANT for
+# compilation. While this also functions properly, it is considered
+# an obsolescent form.
+# See pthread(3t) for more details.
+#
+# From the "HP aC++ Online Programmer's Guide":
+# When +DA2.0W is specified:
+# * 64-bit SVR4 Executable and Linking Format (ELF) object files
+# are generated for PA-RISC 2.0.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# * The correct path for 64-bit system and language libraries is
+# selected.
+# When +DD32 is specified:
+# * The size of an int, long, or pointer data type is 32-bits.
+# The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is the default, currently equivalent to +DA1.1 architecture.
+# When +DD64 is specified:
+# * The size of an int data type is 32-bits. The size of a long or
+# pointer data type is 64-bits.
+# * This is currently equivalent to +DA2.OW architecture.
+# * The preprocessor predefined macro, __LP64__ is defined.
+# Using +DS to Specify Instruction Scheduling:
+# * By default, the compiler performs scheduling tuned for the system
+# on which you are compiling, or, if specified, tuned for the setting
+# of the +DA option.
+#
+# From the online "C/HP-UX Reference Manual":
+# -Aa
+# Enables strict ANSI C compliance.
+# -Ae
+# Enables ANSI C compliance, HP value-added features (as described
+# for +e option), and _HPUX_SOURCE name space macro. It is equivalent
+# to -Aa +e -D_HPUX_SOURCE.
+# +e
+# Enables the following HP value added features while compiling in
+# ANSI C mode: sized enum, long long, long pointers, compiler supplied
+# defaults for missing arguments to intrinsic calls, and $ in identifier
+# HP C extensions.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release plugin_no_soname
+
+QMAKE_CC = cc
+QMAKE_LEX = lex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = +DD64 +DSitanium -w
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = +O2 +Osize
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = +Z
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE
+
+QMAKE_CXX = aCC
+QMAKE_CXXFLAGS = +DD64 +DSitanium -w -D__STRICT_ANSI__ -D_HPUX_SOURCE
+QMAKE_CXXFLAGS_DEPS = +M
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11R6
+QMAKE_LIBDIR_X11 = /usr/lib/hpux64/X11R6
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include
+QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/hpux64 /usr/contrib/X11R6/lib/hpux64
+
+QMAKE_LINK = aCC
+QMAKE_LINK_SHLIB = aCC
+QMAKE_LFLAGS = +DD64 +DSitanium -Wl,+s
+QMAKE_LFLAGS_RELEASE = +O2
+QMAKE_LFLAGS_DEBUG = -g
+QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared_archive
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,+h,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH =
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu -lXt
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_YACC = -ly
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hurd-g++/qmake.conf b/mkspecs/hurd-g++/qmake.conf
deleted file mode 100644
index ed7fe2c15..000000000
--- a/mkspecs/hurd-g++/qmake.conf
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-#
-# qmake configuration for hurd-g++
-#
-# Submitted by uch@nop.or.jp as "gnu-g++".
-# Renamed to "hurd-g++" because people were confusing GNU/Hurd with GNU/Linux.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -Wl,-rpath=/lib:/usr/X11R6/lib:$(TQTDIR)/lib
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-
-# The following trick (QMAKE_LIBS{,_THREAD}) is needed at the moment
-QMAKE_LIBS = -lpthread
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/hurd-g++/tqmake.conf b/mkspecs/hurd-g++/tqmake.conf
new file mode 100644
index 000000000..ea982f8ab
--- /dev/null
+++ b/mkspecs/hurd-g++/tqmake.conf
@@ -0,0 +1,84 @@
+#
+#
+# tqmake configuration for hurd-g++
+#
+# Submitted by uch@nop.or.jp as "gnu-g++".
+# Renamed to "hurd-g++" because people were confusing GNU/Hurd with GNU/Linux.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -Wl,-rpath=/lib:/usr/X11R6/lib:$(TQTDIR)/lib
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+
+# The following trick (QMAKE_LIBS{,_THREAD}) is needed at the moment
+QMAKE_LIBS = -lpthread
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-cc-64/qmake.conf b/mkspecs/irix-cc-64/qmake.conf
deleted file mode 100644
index 4f167c254..000000000
--- a/mkspecs/irix-cc-64/qmake.conf
+++ /dev/null
@@ -1,114 +0,0 @@
-#
-#
-# qmake configuration for irix-cc-64
-#
-# From cc(1):
-# -64
-# Generates a 64-bit object. This defaults to -mips4 if -mips3 has
-# not been specified.
-# -LANG: ...
-# The language feature option group controls the source language
-# interpretation assumed by the compiler. The individual controls
-# in this group are as follows:
-# ansi-for-init-scope [ = ( ON|OFF ) ]
-# Enables or disables the ANSI scoping rules for for-init
-# declarations (the scope of the name declared extends to
-# the end of the for statement). This enables the behavior
-# that is required by the C++ standard. The default value
-# is OFF, which is the ARM behavior (the scope of the name
-# declared extends to the end of the block enclosing the for
-# statement).
-# bool [ = ( ON|OFF ) ]
-# Enables or disables the predefined bool data type, along
-# with the predefined values true and false. Use this option
-# only to suppress this type in old code that defines bool
-# itself. Because this option changes the mangling of function
-# names with bool parameters, all files comprising a program
-# should be compiled with consistent options.
-# Default is ON.
-# The _BOOL feature macro can be used in #ifdefs to do conditional
-# compilation based on whether or not this option is enabled.
-# std
-# Enables use of the standard C++ library and standard-
-# conforming iostream library. Specifying this flag also
-# triggers other standard-conforming behavior, such as the
-# new rules for the scope of for loop initializers.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -64 -signed -woff 1021,1209,1233,1314,1355,1375,1506
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -fullwarn
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O2 -OPT:Olimit=3000
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -woff 1110,1174,3262
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = -64 -signed -woff 1021,1209,1233,1314,1355,1375,1424,1506,1681,1682,3496
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD =
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS = -64
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lm
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = CC -ar -o
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-cc-64/tqmake.conf b/mkspecs/irix-cc-64/tqmake.conf
new file mode 100644
index 000000000..ed49dcaba
--- /dev/null
+++ b/mkspecs/irix-cc-64/tqmake.conf
@@ -0,0 +1,114 @@
+#
+#
+# tqmake configuration for irix-cc-64
+#
+# From cc(1):
+# -64
+# Generates a 64-bit object. This defaults to -mips4 if -mips3 has
+# not been specified.
+# -LANG: ...
+# The language feature option group controls the source language
+# interpretation assumed by the compiler. The individual controls
+# in this group are as follows:
+# ansi-for-init-scope [ = ( ON|OFF ) ]
+# Enables or disables the ANSI scoping rules for for-init
+# declarations (the scope of the name declared extends to
+# the end of the for statement). This enables the behavior
+# that is required by the C++ standard. The default value
+# is OFF, which is the ARM behavior (the scope of the name
+# declared extends to the end of the block enclosing the for
+# statement).
+# bool [ = ( ON|OFF ) ]
+# Enables or disables the predefined bool data type, along
+# with the predefined values true and false. Use this option
+# only to suppress this type in old code that defines bool
+# itself. Because this option changes the mangling of function
+# names with bool parameters, all files comprising a program
+# should be compiled with consistent options.
+# Default is ON.
+# The _BOOL feature macro can be used in #ifdefs to do conditional
+# compilation based on whether or not this option is enabled.
+# std
+# Enables use of the standard C++ library and standard-
+# conforming iostream library. Specifying this flag also
+# triggers other standard-conforming behavior, such as the
+# new rules for the scope of for loop initializers.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -64 -signed -woff 1021,1209,1233,1314,1355,1375,1506
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -fullwarn
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O2 -OPT:Olimit=3000
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -woff 1110,1174,3262
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = -64 -signed -woff 1021,1209,1233,1314,1355,1375,1424,1506,1681,1682,3496
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD =
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS = -64
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lm
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = CC -ar -o
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-cc-o32/qmake.conf b/mkspecs/irix-cc-o32/qmake.conf
deleted file mode 100644
index ffd8124a4..000000000
--- a/mkspecs/irix-cc-o32/qmake.conf
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-#
-# qmake configuration for irix-cc-o32
-#
-# From cc(1):
-# -o32 or -32
-# Generates an (old) 32-bit object. See the o32(5) man page for
-# option descriptions and details. This defaults to -mips2 if
-# -mips1 has not been specified.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS = -o32 -signed -woff 3115,3203,3260,3672,3937
-QMAKE_CFLAGS_WARN_ON = -fullwarn
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O2 -Olimit 3000
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -woff 3203,3262
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD =
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS = -o32
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lm
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-cc-o32/tqmake.conf b/mkspecs/irix-cc-o32/tqmake.conf
new file mode 100644
index 000000000..a0c63ce9b
--- /dev/null
+++ b/mkspecs/irix-cc-o32/tqmake.conf
@@ -0,0 +1,88 @@
+#
+#
+# tqmake configuration for irix-cc-o32
+#
+# From cc(1):
+# -o32 or -32
+# Generates an (old) 32-bit object. See the o32(5) man page for
+# option descriptions and details. This defaults to -mips2 if
+# -mips1 has not been specified.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS = -o32 -signed -woff 3115,3203,3260,3672,3937
+QMAKE_CFLAGS_WARN_ON = -fullwarn
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O2 -Olimit 3000
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -woff 3203,3262
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD =
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS = -o32
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lm
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-cc/qmake.conf b/mkspecs/irix-cc/qmake.conf
deleted file mode 100644
index b2978fd24..000000000
--- a/mkspecs/irix-cc/qmake.conf
+++ /dev/null
@@ -1,114 +0,0 @@
-#
-#
-# qmake configuration for irix-cc
-#
-# From cc(1):
-# -n32
-# Generates a (new) 32-bit object. This defaults to -mips3 if
-# -mips4 has not been specified.
-# -LANG: ...
-# The language feature option group controls the source language
-# interpretation assumed by the compiler. The individual controls
-# in this group are as follows:
-# ansi-for-init-scope [ = ( ON|OFF ) ]
-# Enables or disables the ANSI scoping rules for for-init
-# declarations (the scope of the name declared extends to
-# the end of the for statement). This enables the behavior
-# that is required by the C++ standard. The default value
-# is OFF, which is the ARM behavior (the scope of the name
-# declared extends to the end of the block enclosing the for
-# statement).
-# bool [ = ( ON|OFF ) ]
-# Enables or disables the predefined bool data type, along
-# with the predefined values true and false. Use this option
-# only to suppress this type in old code that defines bool
-# itself. Because this option changes the mangling of function
-# names with bool parameters, all files comprising a program
-# should be compiled with consistent options.
-# Default is ON.
-# The _BOOL feature macro can be used in #ifdefs to do conditional
-# compilation based on whether or not this option is enabled.
-# std
-# Enables use of the standard C++ library and standard-
-# conforming iostream library. Specifying this flag also
-# triggers other standard-conforming behavior, such as the
-# new rules for the scope of for loop initializers.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -n32 -signed -woff 1021,1209,1233,1314,1355,1375,1506
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -fullwarn
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O2 -OPT:Olimit=3000
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -woff 1110,1174,3262
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = -n32 -signed -woff 1021,1209,1233,1314,1355,1375,1424,1506,1681,1682,3496
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD =
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS = -n32
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lm
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = CC -ar -o
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-cc/tqmake.conf b/mkspecs/irix-cc/tqmake.conf
new file mode 100644
index 000000000..50a0c8b36
--- /dev/null
+++ b/mkspecs/irix-cc/tqmake.conf
@@ -0,0 +1,114 @@
+#
+#
+# tqmake configuration for irix-cc
+#
+# From cc(1):
+# -n32
+# Generates a (new) 32-bit object. This defaults to -mips3 if
+# -mips4 has not been specified.
+# -LANG: ...
+# The language feature option group controls the source language
+# interpretation assumed by the compiler. The individual controls
+# in this group are as follows:
+# ansi-for-init-scope [ = ( ON|OFF ) ]
+# Enables or disables the ANSI scoping rules for for-init
+# declarations (the scope of the name declared extends to
+# the end of the for statement). This enables the behavior
+# that is required by the C++ standard. The default value
+# is OFF, which is the ARM behavior (the scope of the name
+# declared extends to the end of the block enclosing the for
+# statement).
+# bool [ = ( ON|OFF ) ]
+# Enables or disables the predefined bool data type, along
+# with the predefined values true and false. Use this option
+# only to suppress this type in old code that defines bool
+# itself. Because this option changes the mangling of function
+# names with bool parameters, all files comprising a program
+# should be compiled with consistent options.
+# Default is ON.
+# The _BOOL feature macro can be used in #ifdefs to do conditional
+# compilation based on whether or not this option is enabled.
+# std
+# Enables use of the standard C++ library and standard-
+# conforming iostream library. Specifying this flag also
+# triggers other standard-conforming behavior, such as the
+# new rules for the scope of for loop initializers.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -n32 -signed -woff 1021,1209,1233,1314,1355,1375,1506
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -fullwarn
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O2 -OPT:Olimit=3000
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -woff 1110,1174,3262
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = -n32 -signed -woff 1021,1209,1233,1314,1355,1375,1424,1506,1681,1682,3496
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD =
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS = -n32
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lm
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = CC -ar -o
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-g++/qmake.conf b/mkspecs/irix-g++/qmake.conf
deleted file mode 100644
index 03da1bc91..000000000
--- a/mkspecs/irix-g++/qmake.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-#
-# qmake configuration for irix-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD =
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared -Wl,-LD_LAYOUT:lgot_buffer=1000
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS = -lC
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-# libGLU is using the SGI C++ library internally and this somehow clashes
-# with the GNU C++ library (similar name mangling and symbol names?)
-# so we add -lC so that the SGI C++ library is used first...
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = so_locations
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/irix-g++/tqmake.conf b/mkspecs/irix-g++/tqmake.conf
new file mode 100644
index 000000000..5ab751038
--- /dev/null
+++ b/mkspecs/irix-g++/tqmake.conf
@@ -0,0 +1,85 @@
+#
+#
+# tqmake configuration for irix-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD =
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared -Wl,-LD_LAYOUT:lgot_buffer=1000
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS = -lC
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+# libGLU is using the SGI C++ library internally and this somehow clashes
+# with the GNU C++ library (similar name mangling and symbol names?)
+# so we add -lC so that the SGI C++ library is used first...
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = so_locations
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-clang/qmake.conf b/mkspecs/linux-clang/qmake.conf
deleted file mode 100644
index 2e2296744..000000000
--- a/mkspecs/linux-clang/qmake.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-#
-# qmake configuration for linux-clang
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = clang
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
-QMAKE_YACC_HEADER = $base.tab.h
-QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_CFLAGS = -pipe -g -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -O0
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = clang++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = clang++
-QMAKE_LINK_SHLIB = clang++
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $(COPY)
-QMAKE_COPY_DIR = $(COPY) -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP =
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-clang/tqmake.conf b/mkspecs/linux-clang/tqmake.conf
new file mode 100644
index 000000000..31050f966
--- /dev/null
+++ b/mkspecs/linux-clang/tqmake.conf
@@ -0,0 +1,89 @@
+#
+#
+# tqmake configuration for linux-clang
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = clang
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_CFLAGS = -pipe -g -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -O0
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = clang++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = clang++
+QMAKE_LINK_SHLIB = clang++
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP =
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-cxx/qmake.conf b/mkspecs/linux-cxx/qmake.conf
deleted file mode 100644
index c12a9efbb..000000000
--- a/mkspecs/linux-cxx/qmake.conf
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-#
-# qmake configuration for linux-cxx
-#
-# Written for Compaq C++ for GNU/Linux on Alpha (discontinued).
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = ccc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -w
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -Olimit 1000
-
-QMAKE_CXX = cxx
-QMAKE_CXXFLAGS = -w
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = cxx
-QMAKE_LINK_SHLIB = cxx
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-cxx/tqmake.conf b/mkspecs/linux-cxx/tqmake.conf
new file mode 100644
index 000000000..7147b971a
--- /dev/null
+++ b/mkspecs/linux-cxx/tqmake.conf
@@ -0,0 +1,78 @@
+#
+#
+# tqmake configuration for linux-cxx
+#
+# Written for Compaq C++ for GNU/Linux on Alpha (discontinued).
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = ccc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -w
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -Olimit 1000
+
+QMAKE_CXX = cxx
+QMAKE_CXXFLAGS = -w
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = cxx
+QMAKE_LINK_SHLIB = cxx
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-ecc-64/qmake.conf b/mkspecs/linux-ecc-64/qmake.conf
deleted file mode 100644
index 6261a1869..000000000
--- a/mkspecs/linux-ecc-64/qmake.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-#
-# qmake configuration for linux-ecc-64
-#
-# Written for Intel C++ 7.1, and 8.0 for Linux.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = ecc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = ecpc
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = ecpc
-QMAKE_LINK_SHLIB = ecpc
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Qoption,ld,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Qoption,ld,-rpath,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)/ti_files
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-ecc-64/tqmake.conf b/mkspecs/linux-ecc-64/tqmake.conf
new file mode 100644
index 000000000..22094f853
--- /dev/null
+++ b/mkspecs/linux-ecc-64/tqmake.conf
@@ -0,0 +1,85 @@
+#
+#
+# tqmake configuration for linux-ecc-64
+#
+# Written for Intel C++ 7.1, and 8.0 for Linux.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = ecc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = ecpc
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = ecpc
+QMAKE_LINK_SHLIB = ecpc
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Qoption,ld,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Qoption,ld,-rpath,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)/ti_files
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++-32/qmake.conf b/mkspecs/linux-g++-32/qmake.conf
deleted file mode 100644
index cc18f1b11..000000000
--- a/mkspecs/linux-g++-32/qmake.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-#
-# qmake configuration for linux-g++-32
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
-QMAKE_YACC_HEADER = $base.tab.h
-QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_CFLAGS = -m32 -pipe -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -m32 -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $(COPY)
-QMAKE_COPY_DIR = $(COPY) -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++-32/tqmake.conf b/mkspecs/linux-g++-32/tqmake.conf
new file mode 100644
index 000000000..31a02becf
--- /dev/null
+++ b/mkspecs/linux-g++-32/tqmake.conf
@@ -0,0 +1,89 @@
+#
+#
+# tqmake configuration for linux-g++-32
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_CFLAGS = -m32 -pipe -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -m32 -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = strip
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++-64/qmake.conf b/mkspecs/linux-g++-64/qmake.conf
deleted file mode 100644
index 05015e547..000000000
--- a/mkspecs/linux-g++-64/qmake.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-#
-# qmake configuration for linux-g++-64
-#
-# mkspec for platforms that have both lib and lib64
-# directories, like the AMD Opteron.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
-QMAKE_YACC_HEADER = $base.tab.h
-QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_CFLAGS = -pipe -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib64
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib64
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib64
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $(COPY)
-QMAKE_COPY_DIR = $(COPY) -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++-64/tqmake.conf b/mkspecs/linux-g++-64/tqmake.conf
new file mode 100644
index 000000000..10559a406
--- /dev/null
+++ b/mkspecs/linux-g++-64/tqmake.conf
@@ -0,0 +1,92 @@
+#
+#
+# tqmake configuration for linux-g++-64
+#
+# mkspec for platforms that have both lib and lib64
+# directories, like the AMD Opteron.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_CFLAGS = -pipe -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib64
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib64
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib64
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = strip
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++-sparc/qmake.conf b/mkspecs/linux-g++-sparc/qmake.conf
deleted file mode 100644
index 4c39abcb3..000000000
--- a/mkspecs/linux-g++-sparc/qmake.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-#
-# qmake configuration for linux-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
-QMAKE_YACC_HEADER = $base.tab.h
-QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_CFLAGS = -pipe -g
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O1
-QMAKE_CFLAGS_DEBUG = -O0
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH =
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $(COPY)
-QMAKE_COPY_DIR = $(COPY) -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP =
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++-sparc/tqmake.conf b/mkspecs/linux-g++-sparc/tqmake.conf
new file mode 100644
index 000000000..8db8c17ba
--- /dev/null
+++ b/mkspecs/linux-g++-sparc/tqmake.conf
@@ -0,0 +1,89 @@
+#
+#
+# tqmake configuration for linux-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_CFLAGS = -pipe -g
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O1
+QMAKE_CFLAGS_DEBUG = -O0
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH =
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP =
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++/qmake.conf b/mkspecs/linux-g++/qmake.conf
deleted file mode 100644
index f717e6feb..000000000
--- a/mkspecs/linux-g++/qmake.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-#
-# qmake configuration for linux-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
-QMAKE_YACC_HEADER = $base.tab.h
-QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_CFLAGS = -pipe -g -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -O0
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $(COPY)
-QMAKE_COPY_DIR = $(COPY) -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP =
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-g++/tqmake.conf b/mkspecs/linux-g++/tqmake.conf
new file mode 100644
index 000000000..65ae26156
--- /dev/null
+++ b/mkspecs/linux-g++/tqmake.conf
@@ -0,0 +1,89 @@
+#
+#
+# tqmake configuration for linux-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_CFLAGS = -pipe -g -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -O0
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP =
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf
deleted file mode 100644
index b2b2aff27..000000000
--- a/mkspecs/linux-icc/qmake.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-#
-# qmake configuration for linux-icc
-#
-# Written for Intel C++ 5.0.1, 6.0.1, 7.0, and 8.0 for Linux.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = icc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = icpc
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = icpc
-QMAKE_LINK_SHLIB = icpc
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Qoption,ld,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Qoption,ld,-rpath,
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)/ti_files
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-icc/tqmake.conf b/mkspecs/linux-icc/tqmake.conf
new file mode 100644
index 000000000..cfe0873f9
--- /dev/null
+++ b/mkspecs/linux-icc/tqmake.conf
@@ -0,0 +1,85 @@
+#
+#
+# tqmake configuration for linux-icc
+#
+# Written for Intel C++ 5.0.1, 6.0.1, 7.0, and 8.0 for Linux.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = icc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = icpc
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = icpc
+QMAKE_LINK_SHLIB = icpc
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Qoption,ld,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Qoption,ld,-rpath,
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)/ti_files
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-kcc/qmake.conf b/mkspecs/linux-kcc/qmake.conf
deleted file mode 100644
index 53e292134..000000000
--- a/mkspecs/linux-kcc/qmake.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-#
-# qmake configuration for linux-kcc
-#
-# Written for KAI C++ 4.0f for GNU/Linux (discontinued).
-#
-# From the KAI C++ man page for Linux:
-# --[no_]thread_safe
-# [Waive or] Request thread-safe handling of system-allocated objects.
-# To guarantee thread safety, this option must be used when both
-# compiling and linking. Thread-safe C++ is not link-compatible with
-# (the default) non-thread-safe C++.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = KCC
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = --c --display_error_number --backend -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = +K2
-QMAKE_CFLAGS_DEBUG = +K0
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = --diag_suppress 111,177
-QMAKE_CFLAGS_THREAD = --thread_safe
-
-QMAKE_CXX = KCC
-QMAKE_CXXFLAGS = --display_error_number --diag_suppress 611,1142 --backend -pipe
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = KCC
-QMAKE_LINK_SHLIB = KCC
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB =
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = --soname$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD = --thread_safe
-QMAKE_RPATH = -rpath$$LITERAL_WHITESPACE
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)ti_files
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-kcc/tqmake.conf b/mkspecs/linux-kcc/tqmake.conf
new file mode 100644
index 000000000..08ec36658
--- /dev/null
+++ b/mkspecs/linux-kcc/tqmake.conf
@@ -0,0 +1,92 @@
+#
+#
+# tqmake configuration for linux-kcc
+#
+# Written for KAI C++ 4.0f for GNU/Linux (discontinued).
+#
+# From the KAI C++ man page for Linux:
+# --[no_]thread_safe
+# [Waive or] Request thread-safe handling of system-allocated objects.
+# To guarantee thread safety, this option must be used when both
+# compiling and linking. Thread-safe C++ is not link-compatible with
+# (the default) non-thread-safe C++.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = KCC
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = --c --display_error_number --backend -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = +K2
+QMAKE_CFLAGS_DEBUG = +K0
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = --diag_suppress 111,177
+QMAKE_CFLAGS_THREAD = --thread_safe
+
+QMAKE_CXX = KCC
+QMAKE_CXXFLAGS = --display_error_number --diag_suppress 611,1142 --backend -pipe
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = KCC
+QMAKE_LINK_SHLIB = KCC
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB =
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = --soname$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD = --thread_safe
+QMAKE_RPATH = -rpath$$LITERAL_WHITESPACE
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)ti_files
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-kylix/qmake.conf b/mkspecs/linux-kylix/qmake.conf
deleted file mode 100644
index c727d5bab..000000000
--- a/mkspecs/linux-kylix/qmake.conf
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-#
-# qmake configuration for linux-kylix
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = bc++
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -m
-QMAKE_CFLAGS_WARN_ON = -w
-QMAKE_CFLAGS_WARN_OFF = -w-
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -v -y
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = bc++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -P
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = bc++
-QMAKE_LINK_SHLIB = bc++
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG = -lv -ly
-QMAKE_LFLAGS_SHLIB = -ltD -lTpd
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -lN
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH =
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -llibdl
-QMAKE_LIBS_X11 = -llibXext -llibX11 -llibm
-QMAKE_LIBS_X11SM = -llibSM -llibICE
-QMAKE_LIBS_NIS = -llibnsl
-QMAKE_LIBS_QT = -llibtqt
-QMAKE_LIBS_QT_THREAD = -llibtqt-mt
-QMAKE_LIBS_OPENGL = -llibGLU -llibGL -llibXmu
-QMAKE_LIBS_OPENGL_QT = -llibGL -llibXmu
-QMAKE_LIBS_THREAD = -llibpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-kylix/tqmake.conf b/mkspecs/linux-kylix/tqmake.conf
new file mode 100644
index 000000000..c5258d860
--- /dev/null
+++ b/mkspecs/linux-kylix/tqmake.conf
@@ -0,0 +1,83 @@
+#
+#
+# tqmake configuration for linux-kylix
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = bc++
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -m
+QMAKE_CFLAGS_WARN_ON = -w
+QMAKE_CFLAGS_WARN_OFF = -w-
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -v -y
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = bc++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -P
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = bc++
+QMAKE_LINK_SHLIB = bc++
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG = -lv -ly
+QMAKE_LFLAGS_SHLIB = -ltD -lTpd
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -lN
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH =
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -llibdl
+QMAKE_LIBS_X11 = -llibXext -llibX11 -llibm
+QMAKE_LIBS_X11SM = -llibSM -llibICE
+QMAKE_LIBS_NIS = -llibnsl
+QMAKE_LIBS_QT = -llibtqt
+QMAKE_LIBS_QT_THREAD = -llibtqt-mt
+QMAKE_LIBS_OPENGL = -llibGLU -llibGL -llibXmu
+QMAKE_LIBS_OPENGL_QT = -llibGL -llibXmu
+QMAKE_LIBS_THREAD = -llibpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = strip
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-pgcc/qmake.conf b/mkspecs/linux-pgcc/qmake.conf
deleted file mode 100644
index f6a396f11..000000000
--- a/mkspecs/linux-pgcc/qmake.conf
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-#
-# qmake configuration for linux-pgcc
-#
-# Written for Portland Group C++ for Intel.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = pgcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -fast
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fpic
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = pgCC
-QMAKE_CXXFLAGS = --display_error_number $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = pgCC
-QMAKE_LINK_SHLIB = pgCC
-QMAKE_LFLAGS = -luuid
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -R
-
-QMAKE_LIBS = -luuid
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/linux-pgcc/tqmake.conf b/mkspecs/linux-pgcc/tqmake.conf
new file mode 100644
index 000000000..1ffb02a19
--- /dev/null
+++ b/mkspecs/linux-pgcc/tqmake.conf
@@ -0,0 +1,83 @@
+#
+#
+# tqmake configuration for linux-pgcc
+#
+# Written for Portland Group C++ for Intel.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = pgcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -fast
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fpic
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = pgCC
+QMAKE_CXXFLAGS = --display_error_number $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = pgCC
+QMAKE_LINK_SHLIB = pgCC
+QMAKE_LFLAGS = -luuid
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -R
+
+QMAKE_LIBS = -luuid
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/lynxos-g++/qmake.conf b/mkspecs/lynxos-g++/qmake.conf
deleted file mode 100644
index ae3b23912..000000000
--- a/mkspecs/lynxos-g++/qmake.conf
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-#
-# qmake configuration for lynxos-g++
-#
-# Written for LynxOS 4.0.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/include/X11
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/include/GL
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/lynxos-g++/tqmake.conf b/mkspecs/lynxos-g++/tqmake.conf
new file mode 100644
index 000000000..a2deaf578
--- /dev/null
+++ b/mkspecs/lynxos-g++/tqmake.conf
@@ -0,0 +1,86 @@
+#
+#
+# tqmake configuration for lynxos-g++
+#
+# Written for LynxOS 4.0.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/include/X11
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/include/GL
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = strip
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/macx-g++/Info.plist.app b/mkspecs/macx-g++/Info.plist.app
index 4da07e998..422c54baa 100644
--- a/mkspecs/macx-g++/Info.plist.app
+++ b/mkspecs/macx-g++/Info.plist.app
@@ -7,12 +7,12 @@
CFBundlePackageType
APPL
CFBundleGetInfoString
- Created by Qt/QMake
+ Created by TQt/TQMake
CFBundleSignature
ttxt
CFBundleExecutable
@EXECUTABLE@
NOTE
- Please, do NOT change this file -- It was generated by Qt/QMake.
+ Please, do NOT change this file -- It was generated by TQt/TQMake.
diff --git a/mkspecs/macx-g++/qmake.conf b/mkspecs/macx-g++/qmake.conf
deleted file mode 100644
index f90d2af19..000000000
--- a/mkspecs/macx-g++/qmake.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-#
-# qmake configuration for macx-g++ (Mac OS X + command-line compiler)
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release resource_fork incremental global_init_link_order lib_version_first plugin_no_soname link_prl
-QMAKE_INCREMENTAL_STYLE = sublibs
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
-QMAKE_YACC_HEADER = $base.tab.h
-QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_RESOURCE = /Developer/Tools/Rez
-QMAKE_CFLAGS = -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -Os
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_EXTENSION_SHLIB = dylib
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-
-QMAKE_CXX = c++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_LIBDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
- /System/Library/Frameworks/AGL.framework/Headers/
-
-QMAKE_LINK = $$QMAKE_CXX
-QMAKE_LINK_SHLIB = $$QMAKE_CXX
-QMAKE_LFLAGS = -headerpad_max_install_names
-#QMAKE_LFLAGS_PREBIND = -seg1addr 0x90000000
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_APP = -prebind
-QMAKE_LFLAGS_SHLIB = -prebind -dynamiclib
-QMAKE_LFLAGS_INCREMENTAL = -undefined suppress -flat_namespace
-QMAKE_LFLAGS_PLUGIN = -bundle
-#You probably don't want to mess with this, instead look at install_name_tool(1)
-#QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE}@executable_path/../Frameworks/
-QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE}
-QMAKE_LFLAGS_THREAD =
-
-QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE}
-QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE}
-
-QMAKE_RPATH =
-
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
-QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB = ranlib -s
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $$QMAKE_COPY
-QMAKE_COPY_DIR = $$QMAKE_COPY -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/macx-g++/tqmake.conf b/mkspecs/macx-g++/tqmake.conf
new file mode 100644
index 000000000..2e7091ef6
--- /dev/null
+++ b/mkspecs/macx-g++/tqmake.conf
@@ -0,0 +1,89 @@
+#
+#
+# tqmake configuration for macx-g++ (Mac OS X + command-line compiler)
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release resource_fork incremental global_init_link_order lib_version_first plugin_no_soname link_prl
+QMAKE_INCREMENTAL_STYLE = sublibs
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
+QMAKE_YACC_HEADER = $base.tab.h
+QMAKE_YACC_SOURCE = $base.tab.c
+QMAKE_RESOURCE = /Developer/Tools/Rez
+QMAKE_CFLAGS = -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -Os
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_EXTENSION_SHLIB = dylib
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+
+QMAKE_CXX = c++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_LIBDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
+ /System/Library/Frameworks/AGL.framework/Headers/
+
+QMAKE_LINK = $$QMAKE_CXX
+QMAKE_LINK_SHLIB = $$QMAKE_CXX
+QMAKE_LFLAGS = -headerpad_max_install_names
+#QMAKE_LFLAGS_PREBIND = -seg1addr 0x90000000
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_APP = -prebind
+QMAKE_LFLAGS_SHLIB = -prebind -dynamiclib
+QMAKE_LFLAGS_INCREMENTAL = -undefined suppress -flat_namespace
+QMAKE_LFLAGS_PLUGIN = -bundle
+#You probably don't want to mess with this, instead look at install_name_tool(1)
+#QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE}@executable_path/../Frameworks/
+QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE}
+QMAKE_LFLAGS_THREAD =
+
+QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE}
+QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE}
+
+QMAKE_RPATH =
+
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
+QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB = ranlib -s
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $$QMAKE_COPY
+QMAKE_COPY_DIR = $$QMAKE_COPY -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/macx-mwerks/qmake.conf b/mkspecs/macx-mwerks/qmake.conf
deleted file mode 100644
index ca68c1b08..000000000
--- a/mkspecs/macx-mwerks/qmake.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-#
-# qmake configuration for macx-mwerks (Mac OS X + Metrowerks compiler)
-#
-
-MAKEFILE_GENERATOR = METROWERKS
-TEMPLATE = app
-CONFIG += qt release warn_off separate_volume link_prl
-
-DEFINES += TQT_NO_STL __MACOSX__ __CF_USE_FRAMEWORK_INCLUDES__
-
-CODEWARRIOR_LINKER = Mach-O PPC Linker
-QMAKE_EXTENSION_SHLIB = dylib
-QMAKE_VOLUMENAME = OS X Volume
-FRAMEWORKPATH = {System}/Library/Frameworks/
-QMAKE_CRT_OBJECTS = crt1.o
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBS = -framework System
-QMAKE_LIBS_QT = -L$(TQTDIR)/lib/ -lqt
-QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
- /System/Library/Frameworks/AGL.framework/Headers/
-QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
-QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
diff --git a/mkspecs/macx-mwerks/tqmake.conf b/mkspecs/macx-mwerks/tqmake.conf
new file mode 100644
index 000000000..22c6a3b06
--- /dev/null
+++ b/mkspecs/macx-mwerks/tqmake.conf
@@ -0,0 +1,23 @@
+#
+#
+# tqmake configuration for macx-mwerks (Mac OS X + Metrowerks compiler)
+#
+
+MAKEFILE_GENERATOR = METROWERKS
+TEMPLATE = app
+CONFIG += qt release warn_off separate_volume link_prl
+
+DEFINES += TQT_NO_STL __MACOSX__ __CF_USE_FRAMEWORK_INCLUDES__
+
+CODEWARRIOR_LINKER = Mach-O PPC Linker
+QMAKE_EXTENSION_SHLIB = dylib
+QMAKE_VOLUMENAME = OS X Volume
+FRAMEWORKPATH = {System}/Library/Frameworks/
+QMAKE_CRT_OBJECTS = crt1.o
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBS = -framework System
+QMAKE_LIBS_QT = -L$(TQTDIR)/lib/ -lqt
+QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
+ /System/Library/Frameworks/AGL.framework/Headers/
+QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
+QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
diff --git a/mkspecs/macx-pbuilder/Info.plist.app b/mkspecs/macx-pbuilder/Info.plist.app
index 4da07e998..422c54baa 100644
--- a/mkspecs/macx-pbuilder/Info.plist.app
+++ b/mkspecs/macx-pbuilder/Info.plist.app
@@ -7,12 +7,12 @@
CFBundlePackageType
APPL
CFBundleGetInfoString
- Created by Qt/QMake
+ Created by TQt/TQMake
CFBundleSignature
ttxt
CFBundleExecutable
@EXECUTABLE@
NOTE
- Please, do NOT change this file -- It was generated by Qt/QMake.
+ Please, do NOT change this file -- It was generated by TQt/TQMake.
diff --git a/mkspecs/macx-pbuilder/qmake.conf b/mkspecs/macx-pbuilder/qmake.conf
deleted file mode 100644
index 0699a9c2e..000000000
--- a/mkspecs/macx-pbuilder/qmake.conf
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-#
-# qmake configuration for macx-pbuilder (Mac OS X + Project Builder)
-#
-
-MAKEFILE_GENERATOR = PROJECTBUILDER
-TEMPLATE = app
-CONFIG += qt warn_on release lib_version_first incremental plugin_no_soname link_prl
-
-QMAKE_CC =
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_RESOURCE = /Developer/Tools/Rez
-QMAKE_CFLAGS = -pipe
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -Os
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_EXTENSION_SHLIB = dylib
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-
-QMAKE_CXX =
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_INCDIR = /usr/local/include \
- /System/Library/Frameworks/CarbonCore.framework/Headers
-QMAKE_LIBDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
- /System/Library/Frameworks/AGL.framework/Headers/
-
-QMAKE_LINK = c++
-QMAKE_LINK_SHLIB = c++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_APP = -prebind
-QMAKE_LFLAGS_SHLIB = -dynamiclib
-QMAKE_LFLAGS_INCREMENTAL = -undefined suppress -flat_namespace
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-#QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE}@executable_path/../Frameworks/
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH =
-
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_THREAD =
-QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
-QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB = ranlib -s
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $$QMAKE_COPY
-QMAKE_COPY_DIR = $$QMAKE_COPY -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/macx-pbuilder/tqmake.conf b/mkspecs/macx-pbuilder/tqmake.conf
new file mode 100644
index 000000000..0747ed962
--- /dev/null
+++ b/mkspecs/macx-pbuilder/tqmake.conf
@@ -0,0 +1,80 @@
+#
+#
+# tqmake configuration for macx-pbuilder (Mac OS X + Project Builder)
+#
+
+MAKEFILE_GENERATOR = PROJECTBUILDER
+TEMPLATE = app
+CONFIG += qt warn_on release lib_version_first incremental plugin_no_soname link_prl
+
+QMAKE_CC =
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_RESOURCE = /Developer/Tools/Rez
+QMAKE_CFLAGS = -pipe
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -Os
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_EXTENSION_SHLIB = dylib
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+
+QMAKE_CXX =
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_INCDIR = /usr/local/include \
+ /System/Library/Frameworks/CarbonCore.framework/Headers
+QMAKE_LIBDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
+ /System/Library/Frameworks/AGL.framework/Headers/
+
+QMAKE_LINK = c++
+QMAKE_LINK_SHLIB = c++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_APP = -prebind
+QMAKE_LFLAGS_SHLIB = -dynamiclib
+QMAKE_LFLAGS_INCREMENTAL = -undefined suppress -flat_namespace
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+#QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE}@executable_path/../Frameworks/
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH =
+
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_THREAD =
+QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
+QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB = ranlib -s
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $$QMAKE_COPY
+QMAKE_COPY_DIR = $$QMAKE_COPY -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/macx-xlc/qmake.conf b/mkspecs/macx-xlc/qmake.conf
deleted file mode 100644
index b7e9d789a..000000000
--- a/mkspecs/macx-xlc/qmake.conf
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-#
-# qmake configuration for aix-xlc
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release resource_fork global_init_link_order lib_version_first plugin_no_soname link_prl
-
-QMAKE_CC = xlc
-QMAKE_CC_THREAD = xlc_r
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -qstrict
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O3
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -qthreaded
-
-QMAKE_CXX = xlc++
-QMAKE_CXX_THREAD = xlc++_r
-QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = xlc++
-QMAKE_LINK_THREAD = xlc++_r
-QMAKE_LINK_SHLIB = ld
-#QMAKE_LINK_SHLIB_CMD = makeC++SharedLib -p 0 \
-# -o $(TARGETD) \
-# $(LFLAGS) $(OBJECTS) $(OBJMOC) $(LIBS); \
-# $(AR) lib$(QMAKE_TARGET).a $(TARGETD); \
-# $(RANLIB) lib$(QMAKE_TARGET).a; \
-# mv lib$(QMAKE_TARGET).a $(DESTDIR)
-QMAKE_LFLAGS = -headerpad_max_install_names
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -prebind -qmkshrobj
-QMAKE_LFLAGS_PLUGIN = -bundle
-QMAKE_LFLAGS_SONAME =
-#QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
-#QMAKE_AIX_SHLIB = 1
-QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE}
-QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE}
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
-QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
-#QMAKE_LIBS_THREAD = -lpthreads
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB = ranlib -s
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $$QMAKE_COPY
-QMAKE_COPY_DIR = $$QMAKE_COPY -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/macx-xlc/tqmake.conf b/mkspecs/macx-xlc/tqmake.conf
new file mode 100644
index 000000000..d3733b11f
--- /dev/null
+++ b/mkspecs/macx-xlc/tqmake.conf
@@ -0,0 +1,89 @@
+#
+#
+# tqmake configuration for aix-xlc
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release resource_fork global_init_link_order lib_version_first plugin_no_soname link_prl
+
+QMAKE_CC = xlc
+QMAKE_CC_THREAD = xlc_r
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -qstrict
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O3
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -qthreaded
+
+QMAKE_CXX = xlc++
+QMAKE_CXX_THREAD = xlc++_r
+QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = xlc++
+QMAKE_LINK_THREAD = xlc++_r
+QMAKE_LINK_SHLIB = ld
+#QMAKE_LINK_SHLIB_CMD = makeC++SharedLib -p 0 \
+# -o $(TARGETD) \
+# $(LFLAGS) $(OBJECTS) $(OBJMOC) $(LIBS); \
+# $(AR) lib$(QMAKE_TARGET).a $(TARGETD); \
+# $(RANLIB) lib$(QMAKE_TARGET).a; \
+# mv lib$(QMAKE_TARGET).a $(DESTDIR)
+QMAKE_LFLAGS = -headerpad_max_install_names
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -prebind -qmkshrobj
+QMAKE_LFLAGS_PLUGIN = -bundle
+QMAKE_LFLAGS_SONAME =
+#QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
+#QMAKE_AIX_SHLIB = 1
+QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE}
+QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE}
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
+QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL
+#QMAKE_LIBS_THREAD = -lpthreads
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB = ranlib -s
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $$QMAKE_COPY
+QMAKE_COPY_DIR = $$QMAKE_COPY -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/netbsd-g++/qmake.conf b/mkspecs/netbsd-g++/qmake.conf
deleted file mode 100644
index 985455998..000000000
--- a/mkspecs/netbsd-g++/qmake.conf
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-#
-# qmake configuration for netbsd-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -pthread
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR = /usr/local/include
-QMAKE_LIBDIR = /usr/local/lib
-QMAKE_INCDIR_X11 = /usr/X11R7/include
-QMAKE_LIBDIR_X11 = /usr/X11R7/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R7/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R7/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LINK_SHLIB_CMD = $$QMAKE_LINK_SHLIB $$QMAKE_LFLAGS_SHLIB $(LFLAGS) $$QMAKE_LFLAGS -o $(TARGETD) $(OBJECTS) $(OBJMOC) $(LIBS)
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD = -pthread
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB = ranlib
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/netbsd-g++/tqmake.conf b/mkspecs/netbsd-g++/tqmake.conf
new file mode 100644
index 000000000..efcfb4117
--- /dev/null
+++ b/mkspecs/netbsd-g++/tqmake.conf
@@ -0,0 +1,81 @@
+#
+#
+# tqmake configuration for netbsd-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -pthread
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR = /usr/local/include
+QMAKE_LIBDIR = /usr/local/lib
+QMAKE_INCDIR_X11 = /usr/X11R7/include
+QMAKE_LIBDIR_X11 = /usr/X11R7/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R7/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R7/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LINK_SHLIB_CMD = $$QMAKE_LINK_SHLIB $$QMAKE_LFLAGS_SHLIB $(LFLAGS) $$QMAKE_LFLAGS -o $(TARGETD) $(OBJECTS) $(OBJMOC) $(LIBS)
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD = -pthread
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB = ranlib
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/openbsd-g++/qmake.conf b/mkspecs/openbsd-g++/qmake.conf
deleted file mode 100644
index 434bb7318..000000000
--- a/mkspecs/openbsd-g++/qmake.conf
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-#
-# qmake configuration for openbsd-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe -fvisibility=hidden
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -pthread
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR = /usr/local/include
-QMAKE_LIBDIR = /usr/local/lib
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LINK_SHLIB_CMD = $$QMAKE_LINK_SHLIB $(LFLAGS) \
- $$QMAKE_CFLAGS_SHLIB $$QMAKE_LFLAGS \
- -o $(TARGETD) $(OBJECTS) $(OBJMOC) $(LIBS)
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD = -pthread
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar q
-QMAKE_RANLIB = ranlib
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/openbsd-g++/tqmake.conf b/mkspecs/openbsd-g++/tqmake.conf
new file mode 100644
index 000000000..6539c336c
--- /dev/null
+++ b/mkspecs/openbsd-g++/tqmake.conf
@@ -0,0 +1,82 @@
+#
+#
+# tqmake configuration for openbsd-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe -fvisibility=hidden
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -pthread
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR = /usr/local/include
+QMAKE_LIBDIR = /usr/local/lib
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LINK_SHLIB_CMD = $$QMAKE_LINK_SHLIB $(LFLAGS) \
+ $$QMAKE_CFLAGS_SHLIB $$QMAKE_LFLAGS \
+ -o $(TARGETD) $(OBJECTS) $(OBJMOC) $(LIBS)
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD = -pthread
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar q
+QMAKE_RANLIB = ranlib
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/qnx-g++/qmake.conf b/mkspecs/qnx-g++/qmake.conf
deleted file mode 100644
index a7c5800b2..000000000
--- a/mkspecs/qnx-g++/qmake.conf
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-#
-# qmake configuration for qnx-g++
-#
-# Written for TQNX RTOS v6 with X11.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -pipe -fno-inline -fno-pack-struct
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -fno-inline -fno-pack-struct
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/X11R6/include
-QMAKE_LIBDIR_X11 = /usr/X11R6/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/X11R6/include
-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS = -lunix
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/qnx-g++/tqmake.conf b/mkspecs/qnx-g++/tqmake.conf
new file mode 100644
index 000000000..8893e1f5f
--- /dev/null
+++ b/mkspecs/qnx-g++/tqmake.conf
@@ -0,0 +1,82 @@
+#
+#
+# tqmake configuration for qnx-g++
+#
+# Written for TQNX RTOS v6 with X11.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -pipe -fno-inline -fno-pack-struct
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -fno-inline -fno-pack-struct
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/X11R6/include
+QMAKE_LIBDIR_X11 = /usr/X11R6/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS = -lunix
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/reliant-cds-64/qmake.conf b/mkspecs/reliant-cds-64/qmake.conf
deleted file mode 100644
index 00b9d870c..000000000
--- a/mkspecs/reliant-cds-64/qmake.conf
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-#
-# qmake configuration for reliant-cds-64
-#
-# Written for Reliant UNIX 5.45 using the CDS++ C/C++ compiler V2.0C.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -Klp64
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -v
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -K pthread
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /opt/X/include/X11
-QMAKE_LIBDIR_X11 = /opt/X/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS = -Klp64
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -G
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD = -K pthread
-QMAKE_RPATH = -Wl,-Brpath=
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = CC -xar -o
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)/Templates.DB
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/reliant-cds-64/tqmake.conf b/mkspecs/reliant-cds-64/tqmake.conf
new file mode 100644
index 000000000..5e93b8a45
--- /dev/null
+++ b/mkspecs/reliant-cds-64/tqmake.conf
@@ -0,0 +1,84 @@
+#
+#
+# tqmake configuration for reliant-cds-64
+#
+# Written for Reliant UNIX 5.45 using the CDS++ C/C++ compiler V2.0C.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -Klp64
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -v
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -K pthread
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /opt/X/include/X11
+QMAKE_LIBDIR_X11 = /opt/X/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS = -Klp64
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -G
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD = -K pthread
+QMAKE_RPATH = -Wl,-Brpath=
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = CC -xar -o
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)/Templates.DB
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/reliant-cds/qmake.conf b/mkspecs/reliant-cds/qmake.conf
deleted file mode 100644
index fd29194ea..000000000
--- a/mkspecs/reliant-cds/qmake.conf
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-#
-# qmake configuration for reliant-cds
-#
-# Written for Reliant UNIX 5.45 using the CDS++ C/C++ compiler V2.0C.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -v
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -K pthread
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /opt/X/include/X11
-QMAKE_LIBDIR_X11 = /opt/X/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -G
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD = -K pthread
-QMAKE_RPATH = -Wl,-Brpath=
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = CC -xar -o
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)/Templates.DB
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/reliant-cds/tqmake.conf b/mkspecs/reliant-cds/tqmake.conf
new file mode 100644
index 000000000..256b581d2
--- /dev/null
+++ b/mkspecs/reliant-cds/tqmake.conf
@@ -0,0 +1,84 @@
+#
+#
+# tqmake configuration for reliant-cds
+#
+# Written for Reliant UNIX 5.45 using the CDS++ C/C++ compiler V2.0C.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -v
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -K pthread
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /opt/X/include/X11
+QMAKE_LIBDIR_X11 = /opt/X/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -G
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD = -K pthread
+QMAKE_RPATH = -Wl,-Brpath=
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = CC -xar -o
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)/Templates.DB
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/sco-cc/qmake.conf b/mkspecs/sco-cc/qmake.conf
deleted file mode 100644
index 479b7e440..000000000
--- a/mkspecs/sco-cc/qmake.conf
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-#
-# qmake configuration for sco-cc
-#
-# Written for SCO OpenServer with UDK.
-#
-# -Wf,--diag_suppress,838
-# turns off warning about missing return types in X headers
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC = -Wf,--diag_suppress,111 -Wf,--diag_suppress,177
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -Wf,--display_error_number -Wf,--diag_suppress,838
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -Tused
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 = /usr/X/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -G
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/sco-cc/tqmake.conf b/mkspecs/sco-cc/tqmake.conf
new file mode 100644
index 000000000..d89c31989
--- /dev/null
+++ b/mkspecs/sco-cc/tqmake.conf
@@ -0,0 +1,78 @@
+#
+#
+# tqmake configuration for sco-cc
+#
+# Written for SCO OpenServer with UDK.
+#
+# -Wf,--diag_suppress,838
+# turns off warning about missing return types in X headers
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC = -Wf,--diag_suppress,111 -Wf,--diag_suppress,177
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -Wf,--display_error_number -Wf,--diag_suppress,838
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -Tused
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 = /usr/X/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -G
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/sco-g++/qmake.conf b/mkspecs/sco-g++/qmake.conf
deleted file mode 100644
index 0bc7616a1..000000000
--- a/mkspecs/sco-g++/qmake.conf
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-#
-# qmake configuration for sco-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -G
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_RPATH =
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lm
-QMAKE_LIBS_QT = -lqt
-
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/sco-g++/tqmake.conf b/mkspecs/sco-g++/tqmake.conf
new file mode 100644
index 000000000..5c7c4534c
--- /dev/null
+++ b/mkspecs/sco-g++/tqmake.conf
@@ -0,0 +1,75 @@
+#
+#
+# tqmake configuration for sco-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -G
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_RPATH =
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lm
+QMAKE_LIBS_QT = -lqt
+
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-cc-64/qmake.conf b/mkspecs/solaris-cc-64/qmake.conf
deleted file mode 100644
index a00af10fd..000000000
--- a/mkspecs/solaris-cc-64/qmake.conf
+++ /dev/null
@@ -1,102 +0,0 @@
-#
-#
-# qmake configuration for solaris-cc-64
-#
-# Written for Sun WorkShop 5.0, Forte Developer 6, and Sun ONE Studio 7.
-#
-# From the standards(5) manual page:
-# The XNS4 specification is safe for use only in ILP32 (32-bit)
-# environments and should not be used for LP64 (64-bit)
-# application environments. Use XNS5, which has LP64-clean
-# interfaces that are portable across ILP32 and LP64 environments.
-# [...]
-# For platforms supporting the LP64 (64-bit) programming environment
-# where the SC5.0 Compilers have been installed, SUSv2-conforming LP64
-# applications using XNS5 library calls should be built with command
-# lines of the form:
-# c89 $(getconf XBS5_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=500 \
-# $(getconf XBS5_LP64_OFF64_LDFLAGS) foo.c -o foo \
-# $(getconf XBS5_LP64_OFF64_LIBS) -lxnet
-# So it appears that _XOPEN_SOURCE=500 should be defined when building
-# 64-bit applications (on Solaris 7 and better). But then __EXTENSIONS__
-# should be defined as well to recover all the default system interface.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -xarch=generic64 -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
-QMAKE_CFLAGS_DEPS = -xM
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -mt
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = -O2
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/openwin/include
-QMAKE_LIBDIR_X11 = /usr/openwin/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/openwin/include
-QMAKE_LIBDIR_OPENGL = /usr/openwin/lib
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS = -xarch=generic64
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -G
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD = -mt
-QMAKE_RPATH = -R
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS =
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread -lrt
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = CC -xar -o
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)Templates.DB $(OBJECTS_DIR)SunWS_cache
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-cc-64/tqmake.conf b/mkspecs/solaris-cc-64/tqmake.conf
new file mode 100644
index 000000000..5317c90eb
--- /dev/null
+++ b/mkspecs/solaris-cc-64/tqmake.conf
@@ -0,0 +1,102 @@
+#
+#
+# tqmake configuration for solaris-cc-64
+#
+# Written for Sun WorkShop 5.0, Forte Developer 6, and Sun ONE Studio 7.
+#
+# From the standards(5) manual page:
+# The XNS4 specification is safe for use only in ILP32 (32-bit)
+# environments and should not be used for LP64 (64-bit)
+# application environments. Use XNS5, which has LP64-clean
+# interfaces that are portable across ILP32 and LP64 environments.
+# [...]
+# For platforms supporting the LP64 (64-bit) programming environment
+# where the SC5.0 Compilers have been installed, SUSv2-conforming LP64
+# applications using XNS5 library calls should be built with command
+# lines of the form:
+# c89 $(getconf XBS5_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=500 \
+# $(getconf XBS5_LP64_OFF64_LDFLAGS) foo.c -o foo \
+# $(getconf XBS5_LP64_OFF64_LIBS) -lxnet
+# So it appears that _XOPEN_SOURCE=500 should be defined when building
+# 64-bit applications (on Solaris 7 and better). But then __EXTENSIONS__
+# should be defined as well to recover all the default system interface.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -xarch=generic64 -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
+QMAKE_CFLAGS_DEPS = -xM
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -mt
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = -O2
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/openwin/include
+QMAKE_LIBDIR_X11 = /usr/openwin/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/openwin/include
+QMAKE_LIBDIR_OPENGL = /usr/openwin/lib
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS = -xarch=generic64
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -G
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD = -mt
+QMAKE_RPATH = -R
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS =
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread -lrt
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = CC -xar -o
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)Templates.DB $(OBJECTS_DIR)SunWS_cache
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-cc/qmake.conf b/mkspecs/solaris-cc/qmake.conf
deleted file mode 100644
index 8dd0ee31b..000000000
--- a/mkspecs/solaris-cc/qmake.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-#
-# qmake configuration for solaris-cc
-#
-# Written for Sun WorkShop 5.0, Forte Developer 6, and Sun ONE Studio 7.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -xM
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_THREAD = -mt
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = -O2
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/openwin/include
-QMAKE_LIBDIR_X11 = /usr/openwin/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/openwin/include
-QMAKE_LIBDIR_OPENGL = /usr/openwin/lib
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS = -R/usr/lib -R$(TQTDIR)/lib
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -G
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD = -mt
-QMAKE_RPATH = -R
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS =
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread -lrt
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = CC -xar -o
-QMAKE_RANLIB =
-
-QMAKE_CLEAN = -r $(OBJECTS_DIR)Templates.DB $(OBJECTS_DIR)SunWS_cache
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-cc/tqmake.conf b/mkspecs/solaris-cc/tqmake.conf
new file mode 100644
index 000000000..dd6fb12f2
--- /dev/null
+++ b/mkspecs/solaris-cc/tqmake.conf
@@ -0,0 +1,85 @@
+#
+#
+# tqmake configuration for solaris-cc
+#
+# Written for Sun WorkShop 5.0, Forte Developer 6, and Sun ONE Studio 7.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -xM
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_THREAD = -mt
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = -O2
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/openwin/include
+QMAKE_LIBDIR_X11 = /usr/openwin/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/openwin/include
+QMAKE_LIBDIR_OPENGL = /usr/openwin/lib
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS = -R/usr/lib -R$(TQTDIR)/lib
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -G
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD = -mt
+QMAKE_RPATH = -R
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS =
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread -lrt
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = CC -xar -o
+QMAKE_RANLIB =
+
+QMAKE_CLEAN = -r $(OBJECTS_DIR)Templates.DB $(OBJECTS_DIR)SunWS_cache
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-g++-64/qmake.conf b/mkspecs/solaris-g++-64/qmake.conf
deleted file mode 100644
index 7c1df3942..000000000
--- a/mkspecs/solaris-g++-64/qmake.conf
+++ /dev/null
@@ -1,104 +0,0 @@
-#
-#
-# qmake configuration for solaris-g++64
-#
-# The X11 header files used to be broken on Solaris until patches were
-# released in early 2001 for Solaris 2.6, 7, and 8. On Solaris 2.5.1
-# or non-patched systems -fpermissive works around the incompatibility
-# between GCC 2.95 or better and Solaris - but we still get warnings
-# because we don't use -isystem.
-#
-# From the standards(5) manual page:
-# The XNS4 specification is safe for use only in ILP32 (32-bit)
-# environments and should not be used for LP64 (64-bit)
-# application environments. Use XNS5, which has LP64-clean
-# interfaces that are portable across ILP32 and LP64 environments.
-# [...]
-# For platforms supporting the LP64 (64-bit) programming environment
-# where the SC5.0 Compilers have been installed, SUSv2-conforming LP64
-# applications using XNS5 library calls should be built with command
-# lines of the form:
-# c89 $(getconf XBS5_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=500 \
-# $(getconf XBS5_LP64_OFF64_LDFLAGS) foo.c -o foo \
-# $(getconf XBS5_LP64_OFF64_LIBS) -lxnet
-# So it appears that _XOPEN_SOURCE=500 should be defined when building
-# 64-bit applications (on Solaris 7 and better). But then __EXTENSIONS__
-# should be defined as well to recover all the default system interface.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -m64 -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/openwin/include
-QMAKE_LIBDIR_X11 = /usr/openwin/lib/sparcv9
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/openwin/include
-QMAKE_LIBDIR_OPENGL = /usr/openwin/lib/sparcv9
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS = -m64
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG = -g
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-R,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS =
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread -lrt
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-g++-64/tqmake.conf b/mkspecs/solaris-g++-64/tqmake.conf
new file mode 100644
index 000000000..d1a458555
--- /dev/null
+++ b/mkspecs/solaris-g++-64/tqmake.conf
@@ -0,0 +1,104 @@
+#
+#
+# tqmake configuration for solaris-g++64
+#
+# The X11 header files used to be broken on Solaris until patches were
+# released in early 2001 for Solaris 2.6, 7, and 8. On Solaris 2.5.1
+# or non-patched systems -fpermissive works around the incompatibility
+# between GCC 2.95 or better and Solaris - but we still get warnings
+# because we don't use -isystem.
+#
+# From the standards(5) manual page:
+# The XNS4 specification is safe for use only in ILP32 (32-bit)
+# environments and should not be used for LP64 (64-bit)
+# application environments. Use XNS5, which has LP64-clean
+# interfaces that are portable across ILP32 and LP64 environments.
+# [...]
+# For platforms supporting the LP64 (64-bit) programming environment
+# where the SC5.0 Compilers have been installed, SUSv2-conforming LP64
+# applications using XNS5 library calls should be built with command
+# lines of the form:
+# c89 $(getconf XBS5_LP64_OFF64_CFLAGS) -D_XOPEN_SOURCE=500 \
+# $(getconf XBS5_LP64_OFF64_LDFLAGS) foo.c -o foo \
+# $(getconf XBS5_LP64_OFF64_LIBS) -lxnet
+# So it appears that _XOPEN_SOURCE=500 should be defined when building
+# 64-bit applications (on Solaris 7 and better). But then __EXTENSIONS__
+# should be defined as well to recover all the default system interface.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -m64 -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/openwin/include
+QMAKE_LIBDIR_X11 = /usr/openwin/lib/sparcv9
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/openwin/include
+QMAKE_LIBDIR_OPENGL = /usr/openwin/lib/sparcv9
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS = -m64
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG = -g
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-R,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS =
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread -lrt
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-g++/qmake.conf b/mkspecs/solaris-g++/qmake.conf
deleted file mode 100644
index 63d23d27a..000000000
--- a/mkspecs/solaris-g++/qmake.conf
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-#
-# qmake configuration for solaris-g++
-#
-# The X11 header files used to be broken on Solaris until patches were
-# released in early 2001 for Solaris 2.6, 7, and 8. On Solaris 2.5.1
-# or non-patched systems -fpermissive works around the incompatibility
-# between GCC 2.95 or better and Solaris - but we still get warnings
-# because we don't use -isystem.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 = /usr/openwin/include
-QMAKE_LIBDIR_X11 = /usr/openwin/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL = /usr/openwin/include
-QMAKE_LIBDIR_OPENGL = /usr/openwin/lib
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG = -g
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-R,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_NIS =
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread -lrt
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/solaris-g++/tqmake.conf b/mkspecs/solaris-g++/tqmake.conf
new file mode 100644
index 000000000..8717ee5b0
--- /dev/null
+++ b/mkspecs/solaris-g++/tqmake.conf
@@ -0,0 +1,87 @@
+#
+#
+# tqmake configuration for solaris-g++
+#
+# The X11 header files used to be broken on Solaris until patches were
+# released in early 2001 for Solaris 2.6, 7, and 8. On Solaris 2.5.1
+# or non-patched systems -fpermissive works around the incompatibility
+# between GCC 2.95 or better and Solaris - but we still get warnings
+# because we don't use -isystem.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 = /usr/openwin/include
+QMAKE_LIBDIR_X11 = /usr/openwin/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL = /usr/openwin/include
+QMAKE_LIBDIR_OPENGL = /usr/openwin/lib
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG = -g
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-R,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_NIS =
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread -lrt
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/tru64-cxx/qmake.conf b/mkspecs/tru64-cxx/qmake.conf
deleted file mode 100644
index 2f8b8f54d..000000000
--- a/mkspecs/tru64-cxx/qmake.conf
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-#
-# tmake configuration for tru64-cxx
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl plugin_no_soname
-
-QMAKE_CC = cxx
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF =
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB =
-QMAKE_CFLAGS_YACC = -Olimit 1000
-QMAKE_CFLAGS_THREAD = -pthread
-
-QMAKE_CXX = cxx
-QMAKE_CXXFLAGS = -x cxx $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = cxx
-QMAKE_LINK_SHLIB = cxx
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_THREAD = -pthread
-QMAKE_LFLAGS_SONAME = -soname$$LITERAL_WHITESPACE
-QMAKE_RPATH = -rpath$$LITERAL_WHITESPACE
-
-QMAKE_LIBS = -lm
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lrt
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/tru64-cxx/tqmake.conf b/mkspecs/tru64-cxx/tqmake.conf
new file mode 100644
index 000000000..2f8b8f54d
--- /dev/null
+++ b/mkspecs/tru64-cxx/tqmake.conf
@@ -0,0 +1,80 @@
+#
+#
+# tmake configuration for tru64-cxx
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl plugin_no_soname
+
+QMAKE_CC = cxx
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB =
+QMAKE_CFLAGS_YACC = -Olimit 1000
+QMAKE_CFLAGS_THREAD = -pthread
+
+QMAKE_CXX = cxx
+QMAKE_CXXFLAGS = -x cxx $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = cxx
+QMAKE_LINK_SHLIB = cxx
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_THREAD = -pthread
+QMAKE_LFLAGS_SONAME = -soname$$LITERAL_WHITESPACE
+QMAKE_RPATH = -rpath$$LITERAL_WHITESPACE
+
+QMAKE_LIBS = -lm
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lrt
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/tru64-g++/qmake.conf b/mkspecs/tru64-g++/qmake.conf
deleted file mode 100644
index f92e1aec0..000000000
--- a/mkspecs/tru64-g++/qmake.conf
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-#
-# qmake configuration for tru64-g++
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl plugin_no_soname
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -D_REENTRANT
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_THREAD =
-QMAKE_LFLAGS_SONAME = -Wl,-soname,
-QMAKE_RPATH = -Wl,-rpath,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD =
-QMAKE_LIBS_X11 = -lXext -lX11 -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lpthread -lexc -lrt
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cqs
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/tru64-g++/tqmake.conf b/mkspecs/tru64-g++/tqmake.conf
new file mode 100644
index 000000000..22198c382
--- /dev/null
+++ b/mkspecs/tru64-g++/tqmake.conf
@@ -0,0 +1,80 @@
+#
+#
+# tqmake configuration for tru64-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl plugin_no_soname
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_THREAD =
+QMAKE_LFLAGS_SONAME = -Wl,-soname,
+QMAKE_RPATH = -Wl,-rpath,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD =
+QMAKE_LIBS_X11 = -lXext -lX11 -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lpthread -lexc -lrt
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cqs
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/unixware-cc/qmake.conf b/mkspecs/unixware-cc/qmake.conf
deleted file mode 100644
index d120e64c1..000000000
--- a/mkspecs/unixware-cc/qmake.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-#
-# qmake configuration for unixware-cc
-#
-# Written for UnixWare 7 or Open UNIX 8 with UDK or OUDK.
-#
-# -Wf,--diag_suppress,838
-# turns off warning about missing return types in X headers
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = cc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_WARN_ON =
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -KPIC
-QMAKE_CFLAGS_YACC = -Wf,--diag_suppress,111 -Wf,--diag_suppress,177
-QMAKE_CFLAGS_THREAD = -Kthread
-
-QMAKE_CXX = CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -Wf,--display_error_number -Wf,--diag_suppress,838
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -Tused
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 = /usr/X/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = CC
-QMAKE_LINK_SHLIB = CC
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -G
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
-QMAKE_LFLAGS_THREAD = -Kthread
-QMAKE_RPATH = -R
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-
-QMAKE_LIBS_THREAD =
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/unixware-cc/tqmake.conf b/mkspecs/unixware-cc/tqmake.conf
new file mode 100644
index 000000000..2aa98fd2c
--- /dev/null
+++ b/mkspecs/unixware-cc/tqmake.conf
@@ -0,0 +1,85 @@
+#
+#
+# tqmake configuration for unixware-cc
+#
+# Written for UnixWare 7 or Open UNIX 8 with UDK or OUDK.
+#
+# -Wf,--diag_suppress,838
+# turns off warning about missing return types in X headers
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = cc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -KPIC
+QMAKE_CFLAGS_YACC = -Wf,--diag_suppress,111 -Wf,--diag_suppress,177
+QMAKE_CFLAGS_THREAD = -Kthread
+
+QMAKE_CXX = CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -Wf,--display_error_number -Wf,--diag_suppress,838
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -Tused
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 = /usr/X/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = CC
+QMAKE_LINK_SHLIB = CC
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -G
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE
+QMAKE_LFLAGS_THREAD = -Kthread
+QMAKE_RPATH = -R
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+
+QMAKE_LIBS_THREAD =
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/unixware-g++/qmake.conf b/mkspecs/unixware-g++/qmake.conf
deleted file mode 100644
index fb76b053b..000000000
--- a/mkspecs/unixware-g++/qmake.conf
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-#
-# qmake configuration for unixware-g++
-#
-# Written for UnixWare 7 or Open UNIX 8 with OSTK.
-#
-
-MAKEFILE_GENERATOR = UNIX
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = yacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall -W
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_SHLIB = -fPIC
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD =
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 = /usr/X/lib
-QMAKE_INCDIR_TQT = $(TQTDIR)/include
-QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-
-QMAKE_LINK = g++
-QMAKE_LINK_SHLIB = g++
-QMAKE_LFLAGS =
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
-QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
-QMAKE_LFLAGS_SONAME =
-QMAKE_LFLAGS_THREAD =
-QMAKE_RPATH = -Wl,-R,
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
-QMAKE_LIBS_X11SM = -lSM -lICE
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
-QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
-QMAKE_LIBS_THREAD = -lthread
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc
-QMAKE_UIC = $(TQTDIR)/bin/tquic
-
-QMAKE_AR = ar cq
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/unixware-g++/tqmake.conf b/mkspecs/unixware-g++/tqmake.conf
new file mode 100644
index 000000000..1dbcba908
--- /dev/null
+++ b/mkspecs/unixware-g++/tqmake.conf
@@ -0,0 +1,82 @@
+#
+#
+# tqmake configuration for unixware-g++
+#
+# Written for UnixWare 7 or Open UNIX 8 with OSTK.
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = yacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall -W
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD =
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 = /usr/X/lib
+QMAKE_INCDIR_TQT = $(TQTDIR)/include
+QMAKE_LIBDIR_TQT = $(TQTDIR)/lib
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+QMAKE_LINK = g++
+QMAKE_LINK_SHLIB = g++
+QMAKE_LFLAGS =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME =
+QMAKE_LFLAGS_THREAD =
+QMAKE_RPATH = -Wl,-R,
+
+QMAKE_LIBS =
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm
+QMAKE_LIBS_X11SM = -lSM -lICE
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_OPENGL = -lGLU -lGL -lXmu -lXt
+QMAKE_LIBS_OPENGL_QT = -lGL -lXmu
+QMAKE_LIBS_THREAD = -lthread
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc
+QMAKE_UIC = $(TQTDIR)/bin/tquic
+
+QMAKE_AR = ar cq
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf
deleted file mode 100644
index bef50fa70..000000000
--- a/mkspecs/win32-g++/qmake.conf
+++ /dev/null
@@ -1,97 +0,0 @@
-#
-#
-# qmake configuration for win32-g++
-#
-# Written for MinGW
-#
-
-MAKEFILE_GENERATOR = MINGW
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-DEFINES += UNICODE
-
-exists( $(TQTDIR)\.qtwinconfig ) {
- include( $(TQTDIR)\.qtwinconfig )
-}
-
-QMAKE_CC = gcc
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = byacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS =
-QMAKE_CFLAGS_DEPS = -M
-QMAKE_CFLAGS_WARN_ON = -Wall
-QMAKE_CFLAGS_WARN_OFF = -w
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -g
-QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_THREAD = -mthreads
-QMAKE_CFLAGS_RTTI_ON = -frtti
-QMAKE_CFLAGS_RTTI_OFF = -fno-rtti
-QMAKE_CFLAGS_EXCEPTIONS_ON = -fexceptions
-QMAKE_CFLAGS_EXCEPTIONS_OFF = -fno-exceptions
-
-QMAKE_CXX = g++
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
-QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
-QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
-QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
-
-QMAKE_INCDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)\include
-QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
-
-QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
-QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
-QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
-QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
-
-QMAKE_LINK = g++
-QMAKE_LFLAGS = -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
-QMAKE_LFLAGS_RELEASE = -Wl,-s
-QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_THREAD = -mthreads
-QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
-QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows -e __Z19TQtWinMainCRTStartupv
-QMAKE_LFLAGS_CONSOLE_DLL= -Wl,-subsystem,console -shared -Wl,--export-all-symbols
-QMAKE_LFLAGS_WINDOWS_DLL= -Wl,-subsystem,windows -shared -Wl,--export-all-symbols
-QMAKE_LINK_OBJECT_MAX = 10
-QMAKE_LINK_OBJECT_SCRIPT= object_ld_script
-QMAKE_LINK_OBJMOC_SCRIPT= objmoc_ld_script
-
-QMAKE_LIBS =
-QMAKE_LIBS_CONSOLE =
-QMAKE_LIBS_WINDOWS = -lkernel32 -luser32 -lgdi32 -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -limm32 -lwinmm -lwsock32 -lwinspool
-QMAKE_LIBS_QT = -lqt
-QMAKE_LIBS_QT_THREAD = -ltqt-mt
-QMAKE_LIBS_QT_ENTRY = -lqtmain
-
-QMAKE_LIBS_OPENGL = -lopengl32 -lglu32
-
-QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
-QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
-QMAKE_IDC = $(TQTDIR)\bin\idc.exe
-
-QMAKE_IDL = midl
-QMAKE_LIB = ar -ru
-QMAKE_RC = windres
-
-QMAKE_ZIP = zip -r -9
-
-QMAKE_COPY = copy
-QMAKE_MOVE = move
-QMAKE_DEL_FILE = del
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = if not exist
-QMAKE_MKDIR = mkdir
diff --git a/mkspecs/win32-g++/tqmake.conf b/mkspecs/win32-g++/tqmake.conf
new file mode 100644
index 000000000..1426e1406
--- /dev/null
+++ b/mkspecs/win32-g++/tqmake.conf
@@ -0,0 +1,97 @@
+#
+#
+# tqmake configuration for win32-g++
+#
+# Written for MinGW
+#
+
+MAKEFILE_GENERATOR = MINGW
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+DEFINES += UNICODE
+
+exists( $(TQTDIR)\.qtwinconfig ) {
+ include( $(TQTDIR)\.qtwinconfig )
+}
+
+QMAKE_CC = gcc
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS = -M
+QMAKE_CFLAGS_WARN_ON = -Wall
+QMAKE_CFLAGS_WARN_OFF = -w
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -g
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD = -mthreads
+QMAKE_CFLAGS_RTTI_ON = -frtti
+QMAKE_CFLAGS_RTTI_OFF = -fno-rtti
+QMAKE_CFLAGS_EXCEPTIONS_ON = -fexceptions
+QMAKE_CFLAGS_EXCEPTIONS_OFF = -fno-exceptions
+
+QMAKE_CXX = g++
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
+QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
+
+QMAKE_INCDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)\include
+QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+QMAKE_LINK = g++
+QMAKE_LFLAGS = -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
+QMAKE_LFLAGS_RELEASE = -Wl,-s
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_THREAD = -mthreads
+QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
+QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows -e __Z19TQtWinMainCRTStartupv
+QMAKE_LFLAGS_CONSOLE_DLL= -Wl,-subsystem,console -shared -Wl,--export-all-symbols
+QMAKE_LFLAGS_WINDOWS_DLL= -Wl,-subsystem,windows -shared -Wl,--export-all-symbols
+QMAKE_LINK_OBJECT_MAX = 10
+QMAKE_LINK_OBJECT_SCRIPT= object_ld_script
+QMAKE_LINK_OBJMOC_SCRIPT= objmoc_ld_script
+
+QMAKE_LIBS =
+QMAKE_LIBS_CONSOLE =
+QMAKE_LIBS_WINDOWS = -lkernel32 -luser32 -lgdi32 -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -limm32 -lwinmm -lwsock32 -lwinspool
+QMAKE_LIBS_QT = -lqt
+QMAKE_LIBS_QT_THREAD = -ltqt-mt
+QMAKE_LIBS_QT_ENTRY = -lqtmain
+
+QMAKE_LIBS_OPENGL = -lopengl32 -lglu32
+
+QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
+QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
+QMAKE_IDC = $(TQTDIR)\bin\idc.exe
+
+QMAKE_IDL = midl
+QMAKE_LIB = ar -ru
+QMAKE_RC = windres
+
+QMAKE_ZIP = zip -r -9
+
+QMAKE_COPY = copy
+QMAKE_MOVE = move
+QMAKE_DEL_FILE = del
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = strip
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = if not exist
+QMAKE_MKDIR = mkdir
diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf
deleted file mode 100644
index 27590c3ef..000000000
--- a/mkspecs/win32-icc/qmake.conf
+++ /dev/null
@@ -1,105 +0,0 @@
-#
-#
-# qmake configuration for win32-icc
-#
-# Written for Intel C++ 5.0.1, 6.0.1, and 7.0 for Windows.
-#
-
-MAKEFILE_GENERATOR = MSVC
-TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl
-DEFINES += UNICODE
-
-exists( $(TQTDIR)\.qtwinconfig ) {
- include( $(TQTDIR)\.qtwinconfig )
-}
-
-QMAKE_CC = icl
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = byacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -nologo -Zm200
-QMAKE_CFLAGS_WARN_ON = -W3
-QMAKE_CFLAGS_WARN_OFF = -W0
-QMAKE_CFLAGS_RELEASE =
-QMAKE_CFLAGS_DEBUG = -Zi -Od
-QMAKE_CFLAGS_MT = -MD
-QMAKE_CFLAGS_MT_DBG = -MDd
-QMAKE_CFLAGS_MT_DLL = -MD
-QMAKE_CFLAGS_MT_DLLDBG = -MDd
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_STL_ON = -GX
-QMAKE_CFLAGS_STL_OFF =
-QMAKE_CFLAGS_RTTI_ON = -GR
-QMAKE_CFLAGS_RTTI_OFF =
-QMAKE_CFLAGS_EXCEPTIONS_ON = -GX
-QMAKE_CFLAGS_EXCEPTIONS_OFF =
-
-QMAKE_CXX = $$QMAKE_CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
-QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
-QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
-QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
-QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
-QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
-QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
-QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
-
-QMAKE_INCDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)\include
-QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
-
-QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
-QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
-
-QMAKE_LINK = link
-QMAKE_LFLAGS = /NOLOGO
-QMAKE_LFLAGS_RELEASE = delayimp.lib /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
-QMAKE_LFLAGS_DEBUG = /DEBUG
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:console
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:windows
-QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:console /DLL
-QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:windows /DLL
-QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
-
-QMAKE_LIBS =
-QMAKE_LIBS_CONSOLE =
-QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib
-QMAKE_LIBS_QT = qt.lib
-QMAKE_LIBS_QT_THREAD = tqt-mt.lib
-QMAKE_LIBS_QT_ENTRY = qtmain.lib
-
-QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib delayimp.lib
-QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
-
-QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
-QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
-QMAKE_IDC = $(TQTDIR)\bin\idc.exe
-
-QMAKE_IDL = midl
-QMAKE_LIB = lib /NOLOGO
-QMAKE_RC = rc
-
-QMAKE_ZIP = zip -r -9
-
-QMAKE_COPY = copy
-QMAKE_MOVE = move
-QMAKE_DEL_FILE = del
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = if not exist
-QMAKE_MKDIR = mkdir
-
-DSP_EXTENSION = .dsp
diff --git a/mkspecs/win32-icc/tqmake.conf b/mkspecs/win32-icc/tqmake.conf
new file mode 100644
index 000000000..21b1edfd4
--- /dev/null
+++ b/mkspecs/win32-icc/tqmake.conf
@@ -0,0 +1,105 @@
+#
+#
+# tqmake configuration for win32-icc
+#
+# Written for Intel C++ 5.0.1, 6.0.1, and 7.0 for Windows.
+#
+
+MAKEFILE_GENERATOR = MSVC
+TEMPLATE = app
+CONFIG += qt warn_on release incremental link_prl
+DEFINES += UNICODE
+
+exists( $(TQTDIR)\.qtwinconfig ) {
+ include( $(TQTDIR)\.qtwinconfig )
+}
+
+QMAKE_CC = icl
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -nologo -Zm200
+QMAKE_CFLAGS_WARN_ON = -W3
+QMAKE_CFLAGS_WARN_OFF = -W0
+QMAKE_CFLAGS_RELEASE =
+QMAKE_CFLAGS_DEBUG = -Zi -Od
+QMAKE_CFLAGS_MT = -MD
+QMAKE_CFLAGS_MT_DBG = -MDd
+QMAKE_CFLAGS_MT_DLL = -MD
+QMAKE_CFLAGS_MT_DLLDBG = -MDd
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_STL_ON = -GX
+QMAKE_CFLAGS_STL_OFF =
+QMAKE_CFLAGS_RTTI_ON = -GR
+QMAKE_CFLAGS_RTTI_OFF =
+QMAKE_CFLAGS_EXCEPTIONS_ON = -GX
+QMAKE_CFLAGS_EXCEPTIONS_OFF =
+
+QMAKE_CXX = $$QMAKE_CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
+QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
+QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
+QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
+QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
+QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
+QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
+
+QMAKE_INCDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)\include
+QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
+
+QMAKE_LINK = link
+QMAKE_LFLAGS = /NOLOGO
+QMAKE_LFLAGS_RELEASE = delayimp.lib /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
+QMAKE_LFLAGS_DEBUG = /DEBUG
+QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:console
+QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:windows
+QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:console /DLL
+QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:windows /DLL
+QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
+
+QMAKE_LIBS =
+QMAKE_LIBS_CONSOLE =
+QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib
+QMAKE_LIBS_QT = qt.lib
+QMAKE_LIBS_QT_THREAD = tqt-mt.lib
+QMAKE_LIBS_QT_ENTRY = qtmain.lib
+
+QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib delayimp.lib
+QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
+
+QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
+QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
+QMAKE_IDC = $(TQTDIR)\bin\idc.exe
+
+QMAKE_IDL = midl
+QMAKE_LIB = lib /NOLOGO
+QMAKE_RC = rc
+
+QMAKE_ZIP = zip -r -9
+
+QMAKE_COPY = copy
+QMAKE_MOVE = move
+QMAKE_DEL_FILE = del
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = if not exist
+QMAKE_MKDIR = mkdir
+
+DSP_EXTENSION = .dsp
diff --git a/mkspecs/win32-msvc.net/qmake.conf b/mkspecs/win32-msvc.net/qmake.conf
deleted file mode 100644
index eefcbe09a..000000000
--- a/mkspecs/win32-msvc.net/qmake.conf
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-#
-# qmake configuration for win32-msvc.net
-#
-# Written for Microsoft C++.NET.
-#
-
-MAKEFILE_GENERATOR = MSVC.NET
-TEMPLATE = app
-CONFIG += qt warn_on release incremental flat link_prl precompile_header
-DEFINES += UNICODE WIN32
-
-exists( $(TQTDIR)\.qtwinconfig ) {
- include( $(TQTDIR)\.qtwinconfig )
-}
-
-QMAKE_CC = cl
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = byacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -nologo -Zm200
-QMAKE_CFLAGS_WARN_ON = -W3
-QMAKE_CFLAGS_WARN_OFF = -W0
-QMAKE_CFLAGS_RELEASE = -O1
-QMAKE_CFLAGS_DEBUG = -Zi -Gm
-QMAKE_CFLAGS_MT = -MD
-QMAKE_CFLAGS_MT_DBG = -MDd
-QMAKE_CFLAGS_MT_DLL = -MD
-QMAKE_CFLAGS_MT_DLLDBG = -MDd
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_STL_ON = -GX
-QMAKE_CFLAGS_STL_OFF =
-QMAKE_CFLAGS_RTTI_ON = -GR
-QMAKE_CFLAGS_RTTI_OFF =
-QMAKE_CFLAGS_EXCEPTIONS_ON = -GX
-QMAKE_CFLAGS_EXCEPTIONS_OFF =
-
-QMAKE_CXX = $$QMAKE_CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
-QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
-QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
-QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
-QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
-QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
-QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
-QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
-
-QMAKE_INCDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)\include
-QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
-
-QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
-QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
-
-QMAKE_LINK = link
-QMAKE_LFLAGS = /NOLOGO
-QMAKE_LFLAGS_RELEASE = /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
-QMAKE_LFLAGS_DEBUG = /DEBUG
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
-QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:CONSOLE /DLL
-QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:WINDOWS /DLL
-QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
-
-QMAKE_LIBS =
-QMAKE_LIBS_CONSOLE =
-QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib delayimp.lib
-QMAKE_LIBS_QT = qt.lib
-QMAKE_LIBS_QT_THREAD = tqt-mt.lib
-QMAKE_LIBS_QT_ENTRY = qtmain.lib
-
-QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib
-QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
-
-QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
-QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
-QMAKE_IDC = $(TQTDIR)\bin\idc.exe
-
-QMAKE_IDL = midl
-QMAKE_LIB = lib /NOLOGO
-QMAKE_RC = rc
-
-QMAKE_ZIP = zip -r -9
-
-QMAKE_COPY = copy
-QMAKE_MOVE = move
-QMAKE_DEL_FILE = del
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = if not exist
-QMAKE_MKDIR = mkdir
-
-VCPROJ_EXTENSION = .vcproj
-VCSOLUTION_EXTENSION = .sln
diff --git a/mkspecs/win32-msvc.net/tqmake.conf b/mkspecs/win32-msvc.net/tqmake.conf
new file mode 100644
index 000000000..00df1f167
--- /dev/null
+++ b/mkspecs/win32-msvc.net/tqmake.conf
@@ -0,0 +1,106 @@
+#
+#
+# tqmake configuration for win32-msvc.net
+#
+# Written for Microsoft C++.NET.
+#
+
+MAKEFILE_GENERATOR = MSVC.NET
+TEMPLATE = app
+CONFIG += qt warn_on release incremental flat link_prl precompile_header
+DEFINES += UNICODE WIN32
+
+exists( $(TQTDIR)\.qtwinconfig ) {
+ include( $(TQTDIR)\.qtwinconfig )
+}
+
+QMAKE_CC = cl
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -nologo -Zm200
+QMAKE_CFLAGS_WARN_ON = -W3
+QMAKE_CFLAGS_WARN_OFF = -W0
+QMAKE_CFLAGS_RELEASE = -O1
+QMAKE_CFLAGS_DEBUG = -Zi -Gm
+QMAKE_CFLAGS_MT = -MD
+QMAKE_CFLAGS_MT_DBG = -MDd
+QMAKE_CFLAGS_MT_DLL = -MD
+QMAKE_CFLAGS_MT_DLLDBG = -MDd
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_STL_ON = -GX
+QMAKE_CFLAGS_STL_OFF =
+QMAKE_CFLAGS_RTTI_ON = -GR
+QMAKE_CFLAGS_RTTI_OFF =
+QMAKE_CFLAGS_EXCEPTIONS_ON = -GX
+QMAKE_CFLAGS_EXCEPTIONS_OFF =
+
+QMAKE_CXX = $$QMAKE_CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
+QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
+QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
+QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
+QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
+QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
+QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
+
+QMAKE_INCDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)\include
+QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
+
+QMAKE_LINK = link
+QMAKE_LFLAGS = /NOLOGO
+QMAKE_LFLAGS_RELEASE = /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
+QMAKE_LFLAGS_DEBUG = /DEBUG
+QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
+QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
+QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:CONSOLE /DLL
+QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:WINDOWS /DLL
+QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
+
+QMAKE_LIBS =
+QMAKE_LIBS_CONSOLE =
+QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib delayimp.lib
+QMAKE_LIBS_QT = qt.lib
+QMAKE_LIBS_QT_THREAD = tqt-mt.lib
+QMAKE_LIBS_QT_ENTRY = qtmain.lib
+
+QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib
+QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
+
+QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
+QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
+QMAKE_IDC = $(TQTDIR)\bin\idc.exe
+
+QMAKE_IDL = midl
+QMAKE_LIB = lib /NOLOGO
+QMAKE_RC = rc
+
+QMAKE_ZIP = zip -r -9
+
+QMAKE_COPY = copy
+QMAKE_MOVE = move
+QMAKE_DEL_FILE = del
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = if not exist
+QMAKE_MKDIR = mkdir
+
+VCPROJ_EXTENSION = .vcproj
+VCSOLUTION_EXTENSION = .sln
diff --git a/mkspecs/win32-msvc/qmake.conf b/mkspecs/win32-msvc/qmake.conf
deleted file mode 100644
index d824b958b..000000000
--- a/mkspecs/win32-msvc/qmake.conf
+++ /dev/null
@@ -1,105 +0,0 @@
-#
-#
-# qmake configuration for win32-msvc
-#
-# Written for Microsoft C++.
-#
-
-MAKEFILE_GENERATOR = MSVC
-TEMPLATE = app
-CONFIG += qt warn_on release incremental flat link_prl precompile_header
-DEFINES += UNICODE
-
-exists( $(TQTDIR)\.qtwinconfig ) {
- include( $(TQTDIR)\.qtwinconfig )
-}
-
-QMAKE_CC = cl
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = byacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -nologo -Zm200
-QMAKE_CFLAGS_WARN_ON = -W3
-QMAKE_CFLAGS_WARN_OFF = -W0
-QMAKE_CFLAGS_RELEASE = -O1
-QMAKE_CFLAGS_DEBUG = -Zi
-QMAKE_CFLAGS_MT = -MD
-QMAKE_CFLAGS_MT_DBG = -MDd
-QMAKE_CFLAGS_MT_DLL = -MD
-QMAKE_CFLAGS_MT_DLLDBG = -MDd
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_STL_ON = -GX
-QMAKE_CFLAGS_STL_OFF =
-QMAKE_CFLAGS_RTTI_ON = -GR
-QMAKE_CFLAGS_RTTI_OFF =
-QMAKE_CFLAGS_EXCEPTIONS_ON = -GX
-QMAKE_CFLAGS_EXCEPTIONS_OFF =
-
-QMAKE_CXX = $$QMAKE_CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
-QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
-QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
-QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
-QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
-QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
-QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
-QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
-
-QMAKE_INCDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)\include
-QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
-
-QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
-QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
-
-QMAKE_LINK = link
-QMAKE_LFLAGS = /NOLOGO
-QMAKE_LFLAGS_RELEASE = delayimp.lib /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
-QMAKE_LFLAGS_DEBUG = /DEBUG
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:console
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:windows
-QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:console /DLL
-QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:windows /DLL
-QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
-
-QMAKE_LIBS =
-QMAKE_LIBS_CONSOLE =
-QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib
-QMAKE_LIBS_QT = qt.lib
-QMAKE_LIBS_QT_THREAD = tqt-mt.lib
-QMAKE_LIBS_QT_ENTRY = qtmain.lib
-
-QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib delayimp.lib
-QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
-
-QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
-QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
-QMAKE_IDC = $(TQTDIR)\bin\idc.exe
-
-QMAKE_IDL = midl
-QMAKE_LIB = lib /NOLOGO
-QMAKE_RC = rc
-
-QMAKE_ZIP = zip -r -9
-
-QMAKE_COPY = copy
-QMAKE_MOVE = move
-QMAKE_DEL_FILE = del
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = if not exist
-QMAKE_MKDIR = mkdir
-
-DSP_EXTENSION = .dsp
diff --git a/mkspecs/win32-msvc/tqmake.conf b/mkspecs/win32-msvc/tqmake.conf
new file mode 100644
index 000000000..9f0cf89a1
--- /dev/null
+++ b/mkspecs/win32-msvc/tqmake.conf
@@ -0,0 +1,105 @@
+#
+#
+# tqmake configuration for win32-msvc
+#
+# Written for Microsoft C++.
+#
+
+MAKEFILE_GENERATOR = MSVC
+TEMPLATE = app
+CONFIG += qt warn_on release incremental flat link_prl precompile_header
+DEFINES += UNICODE
+
+exists( $(TQTDIR)\.qtwinconfig ) {
+ include( $(TQTDIR)\.qtwinconfig )
+}
+
+QMAKE_CC = cl
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -nologo -Zm200
+QMAKE_CFLAGS_WARN_ON = -W3
+QMAKE_CFLAGS_WARN_OFF = -W0
+QMAKE_CFLAGS_RELEASE = -O1
+QMAKE_CFLAGS_DEBUG = -Zi
+QMAKE_CFLAGS_MT = -MD
+QMAKE_CFLAGS_MT_DBG = -MDd
+QMAKE_CFLAGS_MT_DLL = -MD
+QMAKE_CFLAGS_MT_DLLDBG = -MDd
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_STL_ON = -GX
+QMAKE_CFLAGS_STL_OFF =
+QMAKE_CFLAGS_RTTI_ON = -GR
+QMAKE_CFLAGS_RTTI_OFF =
+QMAKE_CFLAGS_EXCEPTIONS_ON = -GX
+QMAKE_CFLAGS_EXCEPTIONS_OFF =
+
+QMAKE_CXX = $$QMAKE_CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
+QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
+QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
+QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
+QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
+QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
+QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
+
+QMAKE_INCDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)\include
+QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
+
+QMAKE_LINK = link
+QMAKE_LFLAGS = /NOLOGO
+QMAKE_LFLAGS_RELEASE = delayimp.lib /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
+QMAKE_LFLAGS_DEBUG = /DEBUG
+QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:console
+QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:windows
+QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:console /DLL
+QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:windows /DLL
+QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
+
+QMAKE_LIBS =
+QMAKE_LIBS_CONSOLE =
+QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib
+QMAKE_LIBS_QT = qt.lib
+QMAKE_LIBS_QT_THREAD = tqt-mt.lib
+QMAKE_LIBS_QT_ENTRY = qtmain.lib
+
+QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib delayimp.lib
+QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
+
+QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
+QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
+QMAKE_IDC = $(TQTDIR)\bin\idc.exe
+
+QMAKE_IDL = midl
+QMAKE_LIB = lib /NOLOGO
+QMAKE_RC = rc
+
+QMAKE_ZIP = zip -r -9
+
+QMAKE_COPY = copy
+QMAKE_MOVE = move
+QMAKE_DEL_FILE = del
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = if not exist
+QMAKE_MKDIR = mkdir
+
+DSP_EXTENSION = .dsp
diff --git a/mkspecs/win32-msvc2005/qmake.conf b/mkspecs/win32-msvc2005/qmake.conf
deleted file mode 100644
index 141657e02..000000000
--- a/mkspecs/win32-msvc2005/qmake.conf
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-#
-# qmake configuration for win32-msvc2005
-#
-# Written for Microsoft Visual C++ 8.0 (2005)
-#
-
-MAKEFILE_GENERATOR = MSVC.NET
-TEMPLATE = app
-CONFIG += qt warn_on release incremental flat link_prl precompile_header
-DEFINES += UNICODE WIN32
-
-exists( $(TQTDIR)\.qtwinconfig ) {
- include( $(TQTDIR)\.qtwinconfig )
-}
-
-QMAKE_CC = cl
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = byacc
-QMAKE_YACCFLAGS = -d
-
-# Warning 4996 is the depricated warning, supress it for now.
-QMAKE_CFLAGS = -nologo -Zm200 -wd4996
-QMAKE_CFLAGS_WARN_ON = -W3
-QMAKE_CFLAGS_WARN_OFF = -W0
-QMAKE_CFLAGS_RELEASE = -O2
-QMAKE_CFLAGS_DEBUG = -Zi -Gm
-QMAKE_CFLAGS_MT = -MD
-QMAKE_CFLAGS_MT_DBG = -MDd
-QMAKE_CFLAGS_MT_DLL = -MD
-QMAKE_CFLAGS_MT_DLLDBG = -MDd
-QMAKE_CFLAGS_YACC =
-QMAKE_CFLAGS_STL_ON = -EHsc
-QMAKE_CFLAGS_STL_OFF =
-QMAKE_CFLAGS_RTTI_ON = -GR
-QMAKE_CFLAGS_RTTI_OFF =
-QMAKE_CFLAGS_EXCEPTIONS_ON = -EHsc
-QMAKE_CFLAGS_EXCEPTIONS_OFF =
-
-QMAKE_CXX = $$QMAKE_CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
-QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
-QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
-QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
-QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
-QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
-QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
-QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
-
-QMAKE_INCDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)\include
-QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
-
-QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
-QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
-
-QMAKE_LINK = link
-QMAKE_LFLAGS = /NOLOGO
-QMAKE_LFLAGS_RELEASE = /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
-QMAKE_LFLAGS_DEBUG = /DEBUG
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
-QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:CONSOLE /DLL
-QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:WINDOWS /DLL
-QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
-
-QMAKE_LIBS =
-QMAKE_LIBS_CONSOLE =
-QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib delayimp.lib
-QMAKE_LIBS_QT = qt.lib
-QMAKE_LIBS_QT_THREAD = tqt-mt.lib
-QMAKE_LIBS_QT_ENTRY = qtmain.lib
-
-QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib
-QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
-
-QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
-QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
-QMAKE_IDC = $(TQTDIR)\bin\idc.exe
-
-QMAKE_IDL = midl
-QMAKE_LIB = lib /NOLOGO
-QMAKE_RC = rc
-
-QMAKE_ZIP = zip -r -9
-
-QMAKE_COPY = copy
-QMAKE_MOVE = move
-QMAKE_DEL_FILE = del
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = if not exist
-QMAKE_MKDIR = mkdir
-
-VCPROJ_EXTENSION = .vcproj
-VCSOLUTION_EXTENSION = .sln
diff --git a/mkspecs/win32-msvc2005/tqmake.conf b/mkspecs/win32-msvc2005/tqmake.conf
new file mode 100644
index 000000000..cc13a3be6
--- /dev/null
+++ b/mkspecs/win32-msvc2005/tqmake.conf
@@ -0,0 +1,108 @@
+#
+#
+# tqmake configuration for win32-msvc2005
+#
+# Written for Microsoft Visual C++ 8.0 (2005)
+#
+
+MAKEFILE_GENERATOR = MSVC.NET
+TEMPLATE = app
+CONFIG += qt warn_on release incremental flat link_prl precompile_header
+DEFINES += UNICODE WIN32
+
+exists( $(TQTDIR)\.qtwinconfig ) {
+ include( $(TQTDIR)\.qtwinconfig )
+}
+
+QMAKE_CC = cl
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+
+# Warning 4996 is the depricated warning, supress it for now.
+QMAKE_CFLAGS = -nologo -Zm200 -wd4996
+QMAKE_CFLAGS_WARN_ON = -W3
+QMAKE_CFLAGS_WARN_OFF = -W0
+QMAKE_CFLAGS_RELEASE = -O2
+QMAKE_CFLAGS_DEBUG = -Zi -Gm
+QMAKE_CFLAGS_MT = -MD
+QMAKE_CFLAGS_MT_DBG = -MDd
+QMAKE_CFLAGS_MT_DLL = -MD
+QMAKE_CFLAGS_MT_DLLDBG = -MDd
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_STL_ON = -EHsc
+QMAKE_CFLAGS_STL_OFF =
+QMAKE_CFLAGS_RTTI_ON = -GR
+QMAKE_CFLAGS_RTTI_OFF =
+QMAKE_CFLAGS_EXCEPTIONS_ON = -EHsc
+QMAKE_CFLAGS_EXCEPTIONS_OFF =
+
+QMAKE_CXX = $$QMAKE_CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_MT = $$QMAKE_CFLAGS_MT
+QMAKE_CXXFLAGS_MT_DBG = $$QMAKE_CFLAGS_MT_DBG
+QMAKE_CXXFLAGS_MT_DLL = $$QMAKE_CFLAGS_MT_DLL
+QMAKE_CXXFLAGS_MT_DLLDBG= $$QMAKE_CFLAGS_MT_DLLDBG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_STL_ON = $$QMAKE_CFLAGS_STL_ON
+QMAKE_CXXFLAGS_STL_OFF = $$QMAKE_CFLAGS_STL_OFF
+QMAKE_CXXFLAGS_RTTI_ON = $$QMAKE_CFLAGS_RTTI_ON
+QMAKE_CXXFLAGS_RTTI_OFF = $$QMAKE_CFLAGS_RTTI_OFF
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = $$QMAKE_CFLAGS_EXCEPTIONS_ON
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
+
+QMAKE_INCDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)\include
+QMAKE_LIBDIR_TQT = $(TQTDIR)\lib
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
+
+QMAKE_LINK = link
+QMAKE_LFLAGS = /NOLOGO
+QMAKE_LFLAGS_RELEASE = /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll
+QMAKE_LFLAGS_DEBUG = /DEBUG
+QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
+QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
+QMAKE_LFLAGS_CONSOLE_DLL= /SUBSYSTEM:CONSOLE /DLL
+QMAKE_LFLAGS_WINDOWS_DLL= /SUBSYSTEM:WINDOWS /DLL
+QMAKE_LFLAGS_QT_DLL = /BASE:0x39D00000
+
+QMAKE_LIBS =
+QMAKE_LIBS_CONSOLE =
+QMAKE_LIBS_WINDOWS = kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib winspool.lib delayimp.lib
+QMAKE_LIBS_QT = qt.lib
+QMAKE_LIBS_QT_THREAD = tqt-mt.lib
+QMAKE_LIBS_QT_ENTRY = qtmain.lib
+
+QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib
+QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
+
+QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
+QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
+QMAKE_IDC = $(TQTDIR)\bin\idc.exe
+
+QMAKE_IDL = midl
+QMAKE_LIB = lib /NOLOGO
+QMAKE_RC = rc
+
+QMAKE_ZIP = zip -r -9
+
+QMAKE_COPY = copy
+QMAKE_MOVE = move
+QMAKE_DEL_FILE = del
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = if not exist
+QMAKE_MKDIR = mkdir
+
+VCPROJ_EXTENSION = .vcproj
+VCSOLUTION_EXTENSION = .sln
diff --git a/mkspecs/win32-watcom/qmake.conf b/mkspecs/win32-watcom/qmake.conf
deleted file mode 100644
index cc4d0021d..000000000
--- a/mkspecs/win32-watcom/qmake.conf
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-#
-# qmake configuration for win32-watcom
-#
-# Written for Watcom C++, now OpenWatcom.
-#
-
-TEMPLATE = app
-CONFIG += qt warn_on release link_prl
-
-QMAKE_CC = wcl386
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = byacc
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -zq
-QMAKE_CFLAGS_WARN_ON = -w2
-QMAKE_CFLAGS_WARN_OFF = -w0
-QMAKE_CFLAGS_RELEASE = -ox
-QMAKE_CFLAGS_DEBUG = -d2
-QMAKE_CFLAGS_YACC =
-
-QMAKE_CXX = $$QMAKE_CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-
-QMAKE_INCDIR =
-QMAKE_INCDIR_TQT = $(TQTDIR)\include
-
-QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -fo=$obj $src
-QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -fo=$obj $src
-
-QMAKE_LINK = wlink
-QMAKE_LFLAGS = op quiet op c
-QMAKE_LFLAGS_RELEASE =
-QMAKE_LFLAGS_DEBUG = d all
-QMAKE_LFLAGS_CONSOLE = sys nt
-QMAKE_LFLAGS_WINDOWS = sys nt_win
-QMAKE_LFLAGS_CONSOLE_DLL= sys nt
-QMAKE_LFLAGS_WINDOWS_DLL= sys nt_win
-
-QMAKE_LIBS =
-QMAKE_LIBS_CONSOLE =
-QMAKE_LIBS_WINDOWS =
-QMAKE_LIBS_QT = %TQTDIR%\lib\qt.lib
-QMAKE_LIBS_QT_ENTRY = %TQTDIR%\lib\qtmain.lib
-
-QMAKE_LIBS_OPENGL = opengl32.lib
-
-QMAKE_MOC = $(TQTDIR)/bin/tqmoc.exe
-QMAKE_UIC = $(TQTDIR)/bin/tquic.exe
-QMAKE_IDC = $(TQTDIR)/bin/idc.exe
-
-QMAKE_LIB = wlib -b -c -n -q -p=512
-QMAKE_RC = rc
-
-QMAKE_ZIP = zip -r -9
-
-QMAKE_COPY = copy
-QMAKE_MOVE = move
-QMAKE_DEL_FILE = del
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
diff --git a/mkspecs/win32-watcom/tqmake.conf b/mkspecs/win32-watcom/tqmake.conf
new file mode 100644
index 000000000..3729fb0c1
--- /dev/null
+++ b/mkspecs/win32-watcom/tqmake.conf
@@ -0,0 +1,68 @@
+#
+#
+# tqmake configuration for win32-watcom
+#
+# Written for Watcom C++, now OpenWatcom.
+#
+
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+
+QMAKE_CC = wcl386
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -zq
+QMAKE_CFLAGS_WARN_ON = -w2
+QMAKE_CFLAGS_WARN_OFF = -w0
+QMAKE_CFLAGS_RELEASE = -ox
+QMAKE_CFLAGS_DEBUG = -d2
+QMAKE_CFLAGS_YACC =
+
+QMAKE_CXX = $$QMAKE_CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+
+QMAKE_INCDIR =
+QMAKE_INCDIR_TQT = $(TQTDIR)\include
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -fo=$obj $src
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -fo=$obj $src
+
+QMAKE_LINK = wlink
+QMAKE_LFLAGS = op quiet op c
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG = d all
+QMAKE_LFLAGS_CONSOLE = sys nt
+QMAKE_LFLAGS_WINDOWS = sys nt_win
+QMAKE_LFLAGS_CONSOLE_DLL= sys nt
+QMAKE_LFLAGS_WINDOWS_DLL= sys nt_win
+
+QMAKE_LIBS =
+QMAKE_LIBS_CONSOLE =
+QMAKE_LIBS_WINDOWS =
+QMAKE_LIBS_QT = %TQTDIR%\lib\qt.lib
+QMAKE_LIBS_QT_ENTRY = %TQTDIR%\lib\qtmain.lib
+
+QMAKE_LIBS_OPENGL = opengl32.lib
+
+QMAKE_MOC = $(TQTDIR)/bin/tqmoc.exe
+QMAKE_UIC = $(TQTDIR)/bin/tquic.exe
+QMAKE_IDC = $(TQTDIR)/bin/idc.exe
+
+QMAKE_LIB = wlib -b -c -n -q -p=512
+QMAKE_RC = rc
+
+QMAKE_ZIP = zip -r -9
+
+QMAKE_COPY = copy
+QMAKE_MOVE = move
+QMAKE_DEL_FILE = del
+QMAKE_DEL_DIR = rmdir
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
diff --git a/qmake/CHANGES b/qmake/CHANGES
deleted file mode 100644
index a203791ee..000000000
--- a/qmake/CHANGES
+++ /dev/null
@@ -1,68 +0,0 @@
-1.07a -
-
- support for precompiled headers added
-
-1.06b -
-
- support for reading and writing libtool (.la) files
- support for reading pkgconfig (.pkg) files
-
- PWD added as an automatic variable to mean the directory
- the file being parsed is in (this change required that the
- directory be set to the file being parsed as well, function
- tests that query relative paths will need to be relative the
- file being parsed).
-
- persistant data cache introduced
-
-1.05a -
-
- caching of more information (speed ups)
- $$list() added to be used as a lambda function in qmake
- $$files() added to allow regular expression matching
- $$fromfile() added to grab one single variable value from a parsed file
- $$prompt() added to allow querying for user input from qmake
- include() modified to support specifying which variables to import
- equals() test added to test for equality
- MSVC.net generator added [partial solution files in vcsubdirs]
-
-1.04a -
-
- subdirs supports multiple project files in a single directory.
-
-1.03a -
-
- New function $$system() to extract the value of a shell call.
-
-1.02a -
-
- Dependency / Mocable caching. qmake can cache these expensive operations with qmake_cache
- CONFIG.
-
- The parser has been improved to cover more error cases, as well as more forgiving
-
- qmake now includes a special else scope to invert the previous test
-
- Ability to add user defined targets to UnixMakefiles.
-
-1.01a -
-
- New system for library linking. This system allows a user several different features:
-
- 1) libtool like library dependencies to static libraries build with qmake
- 2) library dependencies, when on .pro depends on another library - it will
- automatically build that other library (unix makefiles only)
- 3) automatic detection of configurations for Qt, if CONFIG qt is specified
- it will find the settings for the most recent TQt itself.
-
- Project Builder for Mac OS X is now a supported backend for qmake.
-
- qmake now offers a 'make uninstall' feature, to reverse the actions of a 'make install'.
-
- qmake can now do recursive searches in project-file mode (-r option).
-
-1.00a -
-
- First release, shipped with TQt 3.0.
-
- qmake ships with support for Unix make, MSVC (both dsp and nmake), Borland make.
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
deleted file mode 100644
index 175c7cf9c..000000000
--- a/qmake/Makefile.unix
+++ /dev/null
@@ -1,214 +0,0 @@
-#tqmake code
-OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o msvc_nmake.o \
- mingw_make.o msvc_dsp.o msvc_vcproj.o option.o \
- winmakefile.o projectgenerator.o metrowerks_xml.o pbuilder_pbx.o \
- msvc_objectmodel.o meta.o qtmd5.o
-
-#qt code
-QOBJS=tqstring.o tqtextstream.o tqiodevice.o tqglobal.o tqgdict.o tqcstring.o \
- tqdatastream.o tqgarray.o tqbuffer.o tqglist.o tqptrcollection.o tqfile.o \
- tqfile_unix.o tqregexp.o tqgvector.o tqgcache.o tqbitarray.o tqdir.o tquuid.o \
- tqfileinfo_unix.o tqdir_unix.o tqfileinfo.o tqdatetime.o tqstringlist.o tqmap.o \
- tqconfig.o tqunicodetables.o tqsettings.o tqlocale.o @QMAKE_QTOBJS@
-
-#all sources, used for the depend target
-DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp qtmd5.cpp generators/makefile.cpp generators/unix/unixmake2.cpp \
- generators/unix/unixmake.cpp generators/win32/msvc_nmake.cpp \
- generators/win32/winmakefile.cpp generators/projectgenerator.cpp generators/mac/metrowerks_xml.cpp \
- generators/mac/pbuilder_pbx.cpp generators/win32/msvc_objectmodel.cpp \
- @SOURCE_PATH@/src/tools/tqstring.cpp @SOURCE_PATH@/src/tools/tqtextstream.cpp \
- @SOURCE_PATH@/src/tools/tqiodevice.cpp @SOURCE_PATH@/src/tools/tqglobal.cpp \
- @SOURCE_PATH@/src/tools/tqgdict.cpp @SOURCE_PATH@/src/tools/tqcstring.cpp \
- @SOURCE_PATH@/src/tools/tqdatastream.cpp @SOURCE_PATH@/src/tools/tqgarray.cpp \
- @SOURCE_PATH@/src/tools/tqbuffer.cpp @SOURCE_PATH@/src/tools/tqglist.cpp \
- @SOURCE_PATH@/src/tools/tqptrcollection.cpp @SOURCE_PATH@/src/tools/tqfile.cpp \
- @SOURCE_PATH@/src/tools/tqfile_unix.cpp @SOURCE_PATH@/src/tools/tqregexp.cpp \
- @SOURCE_PATH@/src/tools/tqgvector.cpp @SOURCE_PATH@/src/tools/tqgcache.cpp \
- @SOURCE_PATH@/src/tools/tqbitarray.cpp @SOURCE_PATH@/src/tools/tqdir.cpp \
- @SOURCE_PATH@/src/tools/tquuid.cpp @SOURCE_PATH@/src/tools/tqfileinfo_unix.cpp \
- @SOURCE_PATH@/src/tools/tqdir_unix.cpp @SOURCE_PATH@/src/tools/tqfileinfo.cpp \
- @SOURCE_PATH@/src/tools/tqdatetime.cpp @SOURCE_PATH@/src/tools/tqstringlist.cpp \
- @SOURCE_PATH@/src/tools/tqmap.cpp @SOURCE_PATH@/src/tools/tqconfig.cpp \
- @SOURCE_PATH@/src/tools/tqsettings.cpp @SOURCE_PATH@/src/tools/tqurl.cpp \
- @SOURCE_PATH@/src/tools/tqsettings_mac.cpp @SOURCE_PATH@/src/tools/tqlocale.cpp
-
-CXXFLAGS= @QMAKE_CXXFLAGS@ \
- -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac \
- -I@BUILD_PATH@/include/qmake -I@BUILD_PATH@/include -I@SOURCE_PATH@/include \
- -DTQT_NO_TEXTCODEC -DTQT_NO_UNICODETABLES -DTQT_NO_COMPONENT -DTQT_NO_STL \
- -DTQT_NO_COMPRESS -I@QMAKESPEC@ -DHAVE_QCONFIG_CPP
-LFLAGS=@QMAKE_LFLAGS@
-
-tqmake: $(OBJS) $(QOBJS)
- $(CXX) -o $@ $(OBJS) $(QOBJS) $(LFLAGS)
- rm -f @BUILD_PATH@/bin/$@
- ln -s ../qmake/$@ @BUILD_PATH@/bin/$@
-
-install: tqmake
- [ -d @QT_INSTALL_BINS@ ] || mkdir -p @QT_INSTALL_BINS@
- -cp -f @BUILD_PATH@/bin/tqmake @QT_INSTALL_BINS@
- [ -d @QT_INSTALL_DATA@ ] || mkdir -p @QT_INSTALL_DATA@
- -cp -R -f @SOURCE_PATH@/mkspecs @QT_INSTALL_DATA@
-
-clean::
- rm -f $(OBJS) $(QOBJS)
-
-distclean:: clean
- rm -rf tqmake .deps
-
-depend:
- makedepend $(CXXFLAGS) -D__MAKEDEPEND__ $(DEPEND_SRC)
-
-# don't use optimization for these
-tqtextstream.o: @SOURCE_PATH@/src/tools/tqtextstream.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqtextstream.cpp
-
-tqiodevice.o: @SOURCE_PATH@/src/tools/tqiodevice.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqiodevice.cpp
-
-tqglobal.o: @SOURCE_PATH@/src/tools/tqglobal.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqglobal.cpp
-
-tqgdict.o: @SOURCE_PATH@/src/tools/tqgdict.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgdict.cpp
-
-tqcstring.o: @SOURCE_PATH@/src/tools/tqcstring.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqcstring.cpp
-
-tqsettings.o: @SOURCE_PATH@/src/tools/tqsettings.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqsettings.cpp
-
-tqsettings_mac.o: @SOURCE_PATH@/src/tools/tqsettings_mac.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqsettings_mac.cpp
-
-tqurl.o: @SOURCE_PATH@/src/kernel/tqurl.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/kernel/tqurl.cpp
-
-tqstring.o: @SOURCE_PATH@/src/tools/tqstring.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqstring.cpp
-
-tqlocale.o: @SOURCE_PATH@/src/tools/tqlocale.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqlocale.cpp
-
-tqdatastream.o: @SOURCE_PATH@/src/tools/tqdatastream.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdatastream.cpp
-
-tqunicodetables.o: @SOURCE_PATH@/src/tools/tqunicodetables.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqunicodetables.cpp
-
-tqgarray.o: @SOURCE_PATH@/src/tools/tqgarray.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgarray.cpp
-
-tqbuffer.o: @SOURCE_PATH@/src/tools/tqbuffer.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqbuffer.cpp
-
-tqglist.o: @SOURCE_PATH@/src/tools/tqglist.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqglist.cpp
-
-tqptrcollection.o: @SOURCE_PATH@/src/tools/tqptrcollection.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqptrcollection.cpp
-
-tqfile.o: @SOURCE_PATH@/src/tools/tqfile.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfile.cpp
-
-tqfile_unix.o: @SOURCE_PATH@/src/tools/tqfile_unix.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfile_unix.cpp
-
-tqregexp.o: @SOURCE_PATH@/src/tools/tqregexp.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqregexp.cpp
-
-tqgvector.o: @SOURCE_PATH@/src/tools/tqgvector.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgvector.cpp
-
-tqgcache.o: @SOURCE_PATH@/src/tools/tqgcache.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgcache.cpp
-
-tqbitarray.o: @SOURCE_PATH@/src/tools/tqbitarray.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqbitarray.cpp
-
-tqdir.o: @SOURCE_PATH@/src/tools/tqdir.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdir.cpp
-
-tquuid.o: @SOURCE_PATH@/src/tools/tquuid.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tquuid.cpp
-
-tqfileinfo_unix.o: @SOURCE_PATH@/src/tools/tqfileinfo_unix.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfileinfo_unix.cpp
-
-tqdir_unix.o: @SOURCE_PATH@/src/tools/tqdir_unix.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdir_unix.cpp
-
-tqfileinfo.o: @SOURCE_PATH@/src/tools/tqfileinfo.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfileinfo.cpp
-
-tqdatetime.o: @SOURCE_PATH@/src/tools/tqdatetime.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdatetime.cpp
-
-tqstringlist.o: @SOURCE_PATH@/src/tools/tqstringlist.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqstringlist.cpp
-
-tqmap.o: @SOURCE_PATH@/src/tools/tqmap.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqmap.cpp
-
-tqconfig.o: @BUILD_PATH@/src/tools/tqconfig.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) @BUILD_PATH@/src/tools/tqconfig.cpp
-
-winmakefile.o: generators/win32/winmakefile.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/winmakefile.cpp
-
-project.o: project.cpp project.h option.h
- $(CXX) -c -o $@ $(CXXFLAGS) project.cpp
-
-property.o: property.cpp project.h option.h
- $(CXX) -c -o $@ $(CXXFLAGS) property.cpp
-
-meta.o: meta.cpp project.h option.h
- $(CXX) -c -o $@ $(CXXFLAGS) meta.cpp
-
-main.o: main.cpp project.h
- $(CXX) -c -o $@ $(CXXFLAGS) main.cpp
-
-option.o: option.cpp option.h
- $(CXX) -c -o $@ $(CXXFLAGS) option.cpp
-
-qtmd5.o: qtmd5.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) qtmd5.cpp
-
-makefile.o: generators/makefile.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/makefile.cpp
-
-unixmake.o: generators/unix/unixmake.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/unix/unixmake.cpp
-
-unixmake2.o: generators/unix/unixmake2.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/unix/unixmake2.cpp
-
-mingw_make.o: generators/win32/mingw_make.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/mingw_make.cpp
-
-msvc_objectmodel.o: generators/win32/msvc_objectmodel.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp
-
-msvc_vcproj.o: generators/win32/msvc_vcproj.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_vcproj.cpp
-
-msvc_nmake.o: generators/win32/msvc_nmake.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_nmake.cpp
-
-metrowerks_xml.o: generators/mac/metrowerks_xml.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/mac/metrowerks_xml.cpp
-
-pbuilder_pbx.o: generators/mac/pbuilder_pbx.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp
-
-msvc_dsp.o: generators/win32/msvc_dsp.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_dsp.cpp
-
-projectgenerator.o: generators/projectgenerator.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) generators/projectgenerator.cpp
-
-#default rules
-.cpp.o:
- $(CXX) -c -o $@ $(CXXFLAGS) $<
-
-# DO NOT DELETE THIS LINE -- make depend depends on it
diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++
deleted file mode 100644
index 7dff21a06..000000000
--- a/qmake/Makefile.win32-g++
+++ /dev/null
@@ -1,197 +0,0 @@
-#
-# specific stuff for mingw g++ make
-#
-CXX = g++
-CFLAGS = -c -o$@ -O \
- -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools \
- -I..\mkspecs\win32-g++ \
- -DUNICODE -DTQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DTQT_NO_STL -DTQT_NO_COMPRESS
-CXXFLAGS = $(CFLAGS)
-LFLAGS =
-LIBS = -lole32 -luuid
-LINKQMAKE = g++ $(LFLAGS) -o tqmake.exe $(OBJS) $(QTOBJS) $(LIBS)
-ADDCLEAN =
-
-
-#tqmake code
-OBJS=project.o main.o makefile.o unixmake.o unixmake2.o mingw_make.o \
- msvc_nmake.o msvc_dsp.o msvc_vcproj.o option.o winmakefile.o projectgenerator.o \
- metrowerks_xml.o pbuilder_pbx.o msvc_objectmodel.o property.o meta.o qtmd5.o
-
-#qt code
-QTOBJS=tqstring.o tquuid.o tqtextstream.o tqiodevice.o tqglobal.o tqgdict.o tqcstring.o tqdatastream.o \
- tqgarray.o tqbuffer.o tqglist.o tqptrcollection.o tqfile.o tqfile_win.o tqregexp.o tqgvector.o \
- tqgcache.o tqbitarray.o tqdir.o tqfileinfo_win.o tqdir_win.o tqfileinfo.o tqdatetime.o \
- tqstringlist.o tqmap.o tqlibrary.o tqlibrary_win.o tqconfig.o tqsettings.o tqsettings_win.o tqunicodetables.o \
- tqlocale.o
-
-
-
-tqmake.exe: $(OBJS) $(QTOBJS)
- $(LINKQMAKE)
- -copy tqmake.exe ..\bin\tqmake.exe
-
-clean::
- -del $(OBJS) $(QTOBJS) $(ADDCLEAN)
-
-distclean:: clean
- -del tqmake
-
-.c.o:
- $(CXX) $(CFLAGS) $<
-
-.cpp.o:
- $(CXX) $(CXXFLAGS) $<
-
-tqconfig.o: ..\src\tools\tqconfig.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqconfig.cpp
-
-tqlibrary.o: ..\src\tools\tqlibrary.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqlibrary.cpp
-
-tqlibrary_win.o: ..\src\tools\tqlibrary_win.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqlibrary_win.cpp
-
-tqtextstream.o: ..\src\tools\tqtextstream.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqtextstream.cpp
-
-tqiodevice.o: ..\src\tools\tqiodevice.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqiodevice.cpp
-
-tqglobal.o: ..\src\tools\tqglobal.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqglobal.cpp
-
-tqgdict.o: ..\src\tools\tqgdict.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqgdict.cpp
-
-tqcstring.o: ..\src\tools\tqcstring.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqcstring.cpp
-
-tqstring.o: ..\src\tools\tqstring.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqstring.cpp
-
-tqlocale.o: ..\src\tools\tqlocale.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqlocale.cpp
-
-tquuid.o: ..\src\tools\tquuid.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tquuid.cpp
-
-tqdatastream.o: ..\src\tools\tqdatastream.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqdatastream.cpp
-
-tqgarray.o: ..\src\tools\tqgarray.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqgarray.cpp
-
-tqbuffer.o: ..\src\tools\tqbuffer.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqbuffer.cpp
-
-tqglist.o: ..\src\tools\tqglist.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqglist.cpp
-
-tqptrcollection.o: ..\src\tools\tqptrcollection.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqptrcollection.cpp
-
-tqfile.o: ..\src\tools\tqfile.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqfile.cpp
-
-tqfile_win.o: ..\src\tools\tqfile_win.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqfile_win.cpp
-
-tqtextcodec.o: ..\src\codecs\tqtextcodec.cpp
- $(CXX) $(CXXFLAGS) ..\src\codecs\tqtextcodec.cpp
-
-tqregexp.o: ..\src\tools\tqregexp.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqregexp.cpp
-
-tqgvector.o: ..\src\tools\tqgvector.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqgvector.cpp
-
-tqgcache.o: ..\src\tools\tqgcache.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqgcache.cpp
-
-tqbitarray.o: ..\src\tools\tqbitarray.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqbitarray.cpp
-
-tqdir.o: ..\src\tools\tqdir.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqdir.cpp
-
-tqsettings.o: ..\src\tools\tqsettings.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqsettings.cpp
-
-tqsettings_win.o: ..\src\tools\tqsettings_win.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqsettings_win.cpp
-
-tqfileinfo_win.o: ..\src\tools\tqfileinfo_win.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqfileinfo_win.cpp
-
-tqdir_win.o: ..\src\tools\tqdir_win.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqdir_win.cpp
-
-tqfileinfo.o: ..\src\tools\tqfileinfo.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqfileinfo.cpp
-
-tqdatetime.o: ..\src\tools\tqdatetime.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqdatetime.cpp
-
-tqstringlist.o: ..\src\tools\tqstringlist.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqstringlist.cpp
-
-tqmap.o: ..\src\tools\tqmap.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqmap.cpp
-
-tqunicodetables.o: ..\src\tools\tqunicodetables.cpp
- $(CXX) $(CXXFLAGS) ..\src\tools\tqunicodetables.cpp
-
-makefile.o: generators\makefile.cpp
- $(CXX) $(CXXFLAGS) generators\makefile.cpp
-
-unixmake.o: generators\unix\unixmake.cpp
- $(CXX) $(CXXFLAGS) generators\unix\unixmake.cpp
-
-unixmake2.o: generators\unix\unixmake2.cpp
- $(CXX) $(CXXFLAGS) generators\unix\unixmake2.cpp
-
-winmakefile.o: generators/win32/winmakefile.cpp
- $(CXX) $(CXXFLAGS) generators/win32/winmakefile.cpp
-
-mingw_make.o: generators/win32/mingw_make.cpp
- $(CXX) $(CXXFLAGS) generators/win32/mingw_make.cpp
-
-msvc_nmake.o: generators/win32/msvc_nmake.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_nmake.cpp
-
-msvc_dsp.o: generators/win32/msvc_dsp.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_dsp.cpp
-
-msvc_vcproj.o: generators/win32/msvc_vcproj.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_vcproj.cpp
-
-msvc_objectmodel.o: generators/win32/msvc_objectmodel.cpp
- $(CXX) $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp
-
-qtmd5.o: qtmd5.cpp
- $(CXX) $(CXXFLAGS) qtmd5.cpp
-
-project.o: project.cpp project.h option.h
- $(CXX) $(CXXFLAGS) project.cpp
-
-meta.o: meta.cpp project.h option.h
- $(CXX) $(CXXFLAGS) meta.cpp
-
-property.o: property.cpp property.h option.h
- $(CXX) $(CXXFLAGS) property.cpp
-
-main.o: main.cpp project.h
- $(CXX) $(CXXFLAGS) main.cpp
-
-option.o: option.cpp option.h
- $(CXX) $(CXXFLAGS) option.cpp
-
-projectgenerator.o: generators/projectgenerator.cpp
- $(CXX) $(CXXFLAGS) generators/projectgenerator.cpp
-
-metrowerks_xml.o: generators/mac/metrowerks_xml.cpp
- $(CXX) $(CXXFLAGS) generators/mac/metrowerks_xml.cpp
-
-pbuilder_pbx.o: generators/mac/pbuilder_pbx.cpp
- $(CXX) $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp
diff --git a/qmake/book/qmake-advanced.leaf b/qmake/book/qmake-advanced.leaf
deleted file mode 100644
index e4d7621b1..000000000
--- a/qmake/book/qmake-advanced.leaf
+++ /dev/null
@@ -1,401 +0,0 @@
-\chapter qmake's Advanced Concepts
-
-\section1 qmake's Advanced Concepts
-
-The \e qmake project files we've seen up to now have been very simple,
-just a list of \e{name = value} and \e{name += value} lines. \e qmake
-provides a lot more power, for example you can use a single project
-file to produce makefiles for multiple platforms.
-
-\section1 Operators
-
-So far, you have seen the \e = operator and \e += operator being used
-in a project file. There are more operators available for use; but
-some of these should be used carefully as they may change more than
-you expect them to.
-
-\section2 The '=' operator
-
-This operator simply assigns a value to a variable, it is used like
-this:
-
-\code
- TARGET = myapp
-\endcode
-
-This sets the TARGET variable to \e myapp. This will remove any
-previously set TARGET.
-
-\section2 The '+=' operator
-
-This operator appends a value to the list of values in a variable. It
-is used like this:
-
-\code
- DEFINES += QT_DLL
-\endcode
-
-This appends QT_DLL to the list of pre-processor defines to be put in the
-makefile.
-
-\section2 The '-=' operator
-
-This operator removes a value from the list of values in a variable.
-It is used like this:
-
-\code
- DEFINES -= QT_DLL
-\endcode
-
-This removes QT_DLL from the list of pre-processor defines to be put
-in the makefile.
-
-\section2 The '*=' operator
-
-This operator only adds a value to the list of values in a variable if
-it doesn't already exist. It is used like this:
-
-\code
- DEFINES *= QT_DLL
-\endcode
-
-QT_DLL will only be added to the list of pre-processor defines if it
-is not already defined.
-
-\section2 The '~=' operator
-
-This operator replaces any values that match the regexp with the
-specified value. It is used like this:
-
-\code
- DEFINES ~= s/QT_[DT].+/QT
-\endcode
-
-This removes any values in the list that start with QT_D or QT_T with
-QT.
-
-\section1 Scopes
-
-A scope are similar to 'if' statements, if a certain condition is
-true, the settings inside the scope are processed. A scope is written
-like this:
-
-\code
- win32 {
- DEFINES += QT_DLL
- }
-\endcode
-
-The above code will add the QT_DLL define to the makefile if \e qmake
-is used on a Windows platform. If \e qmake is used on a different
-platform than Windows, the define will be ignored. You may also perform
-single line conditionals/assignments with qmake like this:
-
-\code
- win32:DEFINES += QT_DLL
-\endcode
-
-For example, suppose we want to process something on all platforms
-\e except for Windows. We can achieve this by negating the scope like
-this:
-
-\code
- !win32 {
- DEFINES += QT_DLL
- }
-\endcode
-
-Any entry on the CONFIG line is also a scope. For example, if you
-write this:
-\code
- CONFIG += warn_on
-\endcode
-you will have a scope called 'warn_on'. This makes it easy to change
-the configuration for a project without losing all the custom settings
-that might be needed for a specific configuration. Since it is
-possible to put your own values on the CONFIG line, this provides you
-with a very powerful configuration tool for your makefiles. For
-example:
-
-\code
- CONFIG += qt warn_on debug
- debug {
- TARGET = myappdebug
- }
- release {
- TARGET = myapp
- }
-\endcode
-
-In the above code, two scopes are created which depend on what
-is put on the CONFIG line. In the example, \e debug is on the config
-line, so the TARGET variable is set to \e myappdebug. If \e release
-was on the config line, then the TARGET variable would be set to \e
-myapp.
-
-It is also possible to check for two things before processing some
-settings. For instance, if you want to check if the platform is
-Windows and that the thread configuration is set, you would write
-this:
-
-\code
- win32 {
- thread {
- DEFINES += TQT_THREAD_SUPPORT
- }
- }
-\endcode
-
-To save writing many nested scopes, you can nest scopes using a colon
-like this:
-
-\code
- win32:thread {
- DEFINES += TQT_THREAD_SUPPORT
- }
-\endcode
-
-Once a test has been performed you may also do else/elseif operations. With
-this you may easily write complicated tests. This can be done with the
-special 'else' scope, it can be combined with other scopes (separated by
-colons as above) for example:
-
-\code
- win32:thread {
- DEFINES += TQT_THREAD_SUPPORT
- } else:debug {
- DEFINES += QT_NOTHREAD_DEBUG
- } else {
- message("Unknown configuration")
- }
-\endcode
-
-\section1 Variables
-
-The variables that we have encountered so far are system variables,
-such as \e DEFINES, \e SOURCES and \e HEADERS. It is possible for you
-to create your own variables so that you use them in scopes. It's
-easy to create your own variable; just name it and assign something to
-it. For example:
-
-\code
- MY_VARIABLE = value
-\endcode
-
-There are no restricitions on what you do to your own variables, as \e
-qmake will just ignore them unless it needs to look at them for a
-scope.
-
-You can also assign the value of a current variable to another
-variable by prefixing $$ to the variable name. For example:
-
-\code
- MY_DEFINES = $$DEFINES
-\endcode
-
-Now the MY_DEFINES variable contains what is in the DEFINES variable at
-this point in the project file. This is also equivalent to:
-
-\code
- MY_DEFINES = $${DEFINES}
-\endcode
-
-The second notation allows you to adjoin the variable expansion to another
-value without separating by space. \e qmake will allow a variable to
-contain anything (including $(VALUE), which will be placed directly into
-the Makefile, and allow it to expand as appropriate, usually an environment
-variable). However, if you require an environment variable to be replaced
-immediately then you may use the $$() notation. For example:
-
-\code
- MY_DEFINES = $$(ENV_DEFINES)
-\endcode
-
-This will set MY_DEFINES to the value of the evironment variable
-ENV_DEFINES as it parses the .pro file. Additionally you may call built-in
-functions in variable replacing. These functions (not to be confused with
-Test Functions as enumerated in the next section) are listed below:
-
-\section2 join( variablename, glue, before, after )
-
-This will join the value of \e variablename with glue. If this value is
-non-empty it will prefix the value with \e before and suffix it with \e
-after. \e variablename is the only required field, the others will default
-to empty strings. If you need to encode spaces in \e glue, \e before, or \e
-after you must quote them.
-
-\section2 prompt( question )
-
-This will display \e question, and read from stdin as a return value.
-
-\section2 member( variablename, position )
-
-This will place the value in \e variablename in position \e position of the
-list. If the value of \e variablename is not long this will return an empty
-string. \e variablename is the only required field, if not specified
-position will default to the first value in the list (0).
-
-\section2 find( variablename, substr )
-
-This will place all the values in \e variablename that match \e substr. \e
-substr may be a regular expression as well, and will be matched
-accordingly.
-
-\code
- MY_VAR = one two three four
- MY_VAR2 = $$join(MY_VAR, " -L", -L) -Lfive
- MY_VAR3 = $$member(MY_VAR, 2) $$find(MY_VAR, t.*)
-\endcode
-
-MY_VAR2 will contain '-Lone -Ltwo -Lthree -Lfour -Lfive', and MYVAR3 will
-contains 'three two three'.
-
-\section2 system( program_and_args )
-
-This will return the stdout/stderr of the program executed, and parse it as
-normally expected. You can use this to interrogate information about the
-platform for example.
-
-\code
- UNAME = $$system(uname -s)
- contains( UNAME, [lL]inux ):message( This looks like Linux ($$UNAME) to me )
-\endcode
-
-\section1 Test Functions
-
-\e qmake provides built-in functions that perform simple, yet powerful
-tests. These tests may be used in place of scopes (as described above), in
-some cases it is more usefull to use the test function by itself ignoring
-its test value.
-
-\section2 contains( variablename, value )
-
-If \e value is in the list of values stored in the variable called \e
-variablename, then the settings inside the scope will be processed.
-For example:
-
-\code
- contains( CONFIG, thread ) {
- DEFINES += TQT_THREAD_SUPPORT
- }
-\endcode
-
-If \e thread is in the list of values for the \e CONFIG variable, then
-TQT_THREAD_SUPPORT will be added to the list of values in the \e
-DEFINES variable.
-
-\section2 count( variablename, number )
-
-If \e number matches the number of values stored in the variable
-called \e variablename, then the settings inside the scope will be
-processed. For example:
-
-\code
- count( DEFINES, 5 ) {
- CONFIG += debug
- }
-\endcode
-
-\section2 error( string )
-
-This function outputs the string given and then makes \e qmake exit.
-For example:
-
-\code
- error( "An error has occured" )
-\endcode
-
-The text "An error has occured" will be displayed on the console and
-\e qmake will exit.
-
-\section2 exists( filename )
-
-If the specified file exists, then the settings inside the scope will
-be processed. For example:
-
-\code
- exists( /local/qt/qmake/main.cpp ) {
- SOURCES += main.cpp
- }
-\endcode
-
-If \e /local/qt/qmake/main.cpp exists then main.cpp is added to the
-list of source files.
-
-Note that "/" can be used as a directory separator regardless of the
-platform.
-
-
-\section2 equals( variable, value )
-
-If the specified variable is equal to the value passed the scope will
-be processed. For example:
-
-\code
- NUMBERS = 1 2 3
- equals( NUMBERS, 3 4 5 ) {
- message("The numbers are equal")
- }
-\endcode
-
-The message will not be displayed because "1 2 3" does not equal "1 2
-3". As with all functions you can pass an expanded variable as the
-value argument (ie, $$NUMBERS).
-
-\section2 include( filename )
-
-The contents of filename are included at this point in the project
-file, so any settings in the specified file will be processed. An
-example of this is:
-
-\code
- include( myotherapp.pro )
-\endcode
-
-Any settings in the \e myotherapp.pro project file are now processed.
-
-\section2 isEmpty( variablename )
-
-This is the equivalent of using count( variablename, 0 ). If the
-variable called \e variablename has no elements, then the settings
-inside the scope will be processed. An example of this is:
-
-\code
- isEmpty( CONFIG ) {
- CONFIG += qt warn_on debug
- }
-\endcode
-
-\section2 message( string )
-
-This function simply outputs a message on the console.
-
-\code
- message( "This is a message" )
-\endcode
-
-The text "This is a message" is output to the console and
-processing of the project file carries on.
-
-\section2 system( command )
-
-The specified command is performed and if it returns an exit code of
-1, the settings inside the scope are processed. For example:
-
-\code
- system( ls /bin ) {
- SOURCES += bin/main.cpp
- HEADERS += bin/main.h
- }
-\endcode
-
-So if the command \e {ls /bin} returns 1 then \e bin/main.cpp is added
-to the list of sources and \e bin/main.h is added to the list of
-headers.
-
-\section2 infile( filename, var, val )
-
-This function will succeed if the file \e filename (when parsed
-by qmake itself) contains the variable \e var with a value of
-\e val. You may also not pass in a third argument (\e val) and the
-function will only test if \e var has been assigned to in the file.
diff --git a/qmake/book/qmake-commandreference.leaf b/qmake/book/qmake-commandreference.leaf
deleted file mode 100644
index 92509efa9..000000000
--- a/qmake/book/qmake-commandreference.leaf
+++ /dev/null
@@ -1,2132 +0,0 @@
-\chapter qmake Command Reference
-
-\section1 qmake Command Reference
-
-\list
-\i \link #About About This Reference \endlink
-\i \link #Commands Command Line Options \endlink
-\i \link #SystemVariables System Variables \endlink
-\i \link #Functions Functions \endlink
-\i \link #Properties Properties \endlink
-\i \link #Environment Environment Variables and Configuration \endlink
-\i \link #Extensions File Extensions \endlink
-\i \link #Customizing Customizing Makefile Output \endlink
-\endlist
-
-
-\target About
-\section1 About This Reference
-
-This reference is a detailed index of all command line options,
-configurations and internal variables used by the cross-platform
-makefile generation utility \e qmake.
-
-In addition to the variables and functions described in the following
-sections, \e qmake project files may also include comments.
-Comments begin with the '#' symbol and run to the end of the line.
-
-\target Commands
-\section1 Command Line Options
-
-\section2 Syntax
-
-\code
-qmake [options] files
-\endcode
-
-\section2 Options
-
-The following options can be specified on the command line to \e qmake:
-
-\list
-\i \c -o file \BR
- \e qmake output will be directed to \e file. if this argument
- is not specified, then \e qmake will try to guess a suitable name. If '-' is
- specified, output is directed to stdout.
-\i \c -unix \BR
- \e qmake will run in unix mode. In this mode, Unix file
- naming and path conventions will be used, additionally testing for unix
- (as a scope) will succeed. This is the default mode on all Unices.
-\i \c -macx \BR
- \e qmake will run in Mac OS X mode. In this mode, Unix file
- naming and path conventions will be used, additionally testing for macx
- (as a scope) will succeed. This is the default mode on Mac OS X.
-\i \c -win32 \BR
- \e qmake will run in win32 mode. In this mode, Windows file naming and path
- conventions will be used, additionally testing for win32 (as a scope) will succeed.
- This is the default mode on Windows.
-\i \c -d \BR
- \e qmake will output (hopefully) useful debugging information.
-\i \c -t tmpl \BR
- \e qmake will override any set TEMPLATE variables with tmpl, but only
- \e after the .pro file has been processed.
-\i \c -tp prefix \BR
- \e qmake will add the prefix to the TEMPLATE variable.
-\i \c -help \BR
- \e qmake will go over these features and give some useful help.
-\endlist
-
-There are also warning options that can help to find problems in your
-project file:
-
-\list
-\i \c -Wall \BR
- With this \e qmake will turn on all known warnings.
-\i \c -Wnone \BR
- No warning information will be generated by \e qmake.
-\i \c -Wparser \BR
- \e qmake will only generate parser warnings, this will alert
- you to common pitfalls, and potential problems in the parsing of your .pro
- files.
-\i \c -Wlogic \BR
- Again \e qmake will warn of common pitfalls, and potential problems. This can
- include (but not limited to) checking if a file is placed into a list of files
- multiple times, if a file cannot be found, etc.
-\endlist
-
-\e qmake supports two different modes of operation. The first mode,
-which is the default is makefile generation. In this mode, \e qmake
-will take a .pro file and turn it into a makefile. Creating makefiles
-is covered by this reference guide, there is another mode which
-generates .pro files.
-
-To toggle between these modes you must specify in the first argument
-what mode you want to use. If no mode is specified, \e qmake will
-assume you want makefile mode. The available modes are:
-
-\list
-\i \c -makefile \BR
- \e qmake output will be a makefile (\link #MakefileMode Makefile mode \endlink).
-\i \c -project \BR
- \e qmake output will be a project file (\link #ProjectfileMode Project file mode \endlink).
-\endlist
-
-\target MakefileMode
-\section3 Makefile Mode
-
-In Makefile mode \e qmake will generate a makefile. Additionally you may
-supply the following arguments in this mode:
-
-\list
-\i \c -after \BR
- \e qmake will process assignments given on the commandline after
- the specified files.
-\i \c -nocache \BR
- \e qmake will ignore the .qmake.cache file.
-\i \c -nodepend \BR
- \e qmake will not generate any dependency information.
-\i \c -cache file \BR
- \e qmake will use \e file as the cache file, ignoring any other .qmake.cache file found
-\i \c -spec spec \BR
- \e qmake will use \e spec as a path to platform-compiler information and QMAKESPEC will be ignored.
-\endlist
-
-The \c files argument can be a list of one or more project files, separated
-by spaces. You may also pass qmake assignments on the command line here and
-they will be processed before all files specified, for example:
-
-qmake -makefile -unix -o Makefile "CONFIG+=test" test.pro
-
-If however you are certain you want your variables processed after the
-the files specified, then you may pass the -after argument. When this
-is specified all assignments on the commandline after the -after
-option will be postponed until after the specified files are parsed.
-
-This will generate a Makefile, from test.pro with Unix pathnames. However
-many of these arguments aren't necessary as they are the default. Therefore
-the line can be simplified on Unix to:
-
-qmake "CONFIG+=test" test.pro
-
-
-\target ProjectfileMode
-\section3 Projectfile Mode
-
-In Projectfile mode \e qmake will generate a project file. Additionally, you may
-supply the following arguments in this mode:
-
-\list
-\i \c -r \BR
- \e qmake will look through supplied directories recursively
-\i \c -nopwd \BR
- \e qmake will not look in your current working directory for
- source code and only use the specified \c files
-\endlist
-
-The \c files argument can be a list of files or directories. If a
-directory is specified, then it will be included in the \link
-#DEPENDPATH DEPENDPATH \endlink variable and relevant code from there
-will be included in the generated project file, if a file is given it
-will go into the correct variable depending on extension (i.e. .ui
-files go into FORMS, .cpp files go into SOURCES, etc). Here too you
-may pass assignments on the commandline, when doing so these
-assignments will be placed last in the generated .pro file.
-
-\target SystemVariables
-\section1 System Variables
-
-\list
-\i \link #FrequentlyUsedSystemVariables Frequently Used System Variables \endlink
-\i \link #RarelyUsedSystemVariables Rarely Used System Variables \endlink
-\endlist
-
-
-\target FrequentlyUsedSystemVariables
-\section2 Frequently Used System Variables
-
-The following variables are recognized by \e qmake and are used
-most frequently when creating project files.
-
-
-\target CONFIG
-\section3 CONFIG
-
- The \c CONFIG variable specifies project configuration and
-compiler options. The values will be recognized internally by
-\e qmake and have special meaning. They are as follows.
-
-These \c CONFIG values control compilation flags:
-
-\list
-\i release - Compile with optimization enabled, ignored if
- "debug" is specified
-\i debug - Compile with debug options enabled
-\i warn_on - The compiler should emit more warnings than normally, ignored if
- "warn_off" is specified
-\i warn_off - The compiler should only emit severe warnings.
-\endlist
-
-These options define the application/library type:
-
-\list
-\i qt - The target is a TQt application/library and requires the TQt header
- files/library. The proper include and library paths for the Qt
- library will automatically be added to the project.
-\i opengl - The target requires the OpenGL (or Mesa)
- headers/libraries. The proper include and library paths for
- these libraries will automatically be added to the project.
-\i thread - The target is a multi-threaded application or library. The
- proper defines and compiler flags will automatically be added to
- the project.
-\i x11 - The target is a X11 application or library. The proper
- include paths and libraries will automatically be added to the
- project.
-\i windows - The target is a Win32 window application (app only). The
- proper include paths,compiler flags and libraries will
- automatically be added to the project.
-\i console - The target is a Win32 console application (app only). The
- proper include paths, compiler flags and libraries will
- automatically be added to the
- project.
-\i dll - The target is a shared object/DLL.The proper
- include paths, compiler flags and libraries will automatically be
- added to the project.
-\i staticlib - The target is a static library (lib only). The proper
- compiler flags will automatically be added to the project.
-\i plugin - The target is a plugin (lib only). This enables dll as well.
-\endlist
-
-These options are used to set the compiler flags:
-
-\list
-\i exceptions - Exception support is enabled
-\i rtti - RTTI support is enabled
-\i stl - STL support is enabled
-\endlist
-
-These options define specific things depending on the platform and/or template:
-
-\list
-\i flat - When using the vcapp template this will put all the source files into the source group and
- the header files into the header group regardless of what directory they reside in. Turning this
- option off will group the files within the source/header group depending on the directory they
- reside. This is turned on by default.
-\endlist
-
-The \c CONFIG variable will also be checked when resolving
-scopes. You may assign anything to this variable.
-
-For example:
-
-\code
-CONFIG += qt console newstuff
-...
-newstuff {
- SOURCES += new.cpp
- HEADERS += new.h
-}
-\endcode
-
-
-\target DEFINES
-\section3 DEFINES
-
-\e qmake adds the values of this variable as compiler C
-preprocessor macros (-D option).
-
-For example:
-
-\code
-DEFINES += USE_MY_STUFF QT_DLL
-\endcode
-
-
-\target DEF_FILE
-\section3 DEF_FILE
-
-\e {This is only used on Windows when using the 'app' template}.
-
-Specifies a .def file to be included in the project.
-
-
-\target DESTDIR
-\section3 DESTDIR
-
-Specifies where to put the \link #TARGET target \endlink file.
-
-For example:
-
-\code
- DESTDIR = ../../lib
-\endcode
-
-\target DLLDESTDIR
-\section3 DLLDESTDIR
-
-Specifies where to copy the \link #TARGET target \endlink dll.
-
-\target HEADERS
-\section3 HEADERS
-
-Defines the header files for the project.
-
-\e qmake will generate dependency information (unless -nodepend
-is specified on the \link #Commands command line \endlink) for the
-specified headers. \e qmake will also automatically detect if
-\e tqmoc is required by the classes in these headers, and add the
-appropriate dependencies and files to the project for generating and
-linking the moc files.
-
-For example:
-
-\code
-HEADERS = myclass.h \
- login.h \
- mainwindow.h
-\endcode
-
-See also \link #SOURCES SOURCES \endlink.
-
-
-\target INCLUDEPATH
-\section3 INCLUDEPATH
-
-This variable specifies the #include directories which should be
-searched when compiling the project. Use ';' or a space as the
-directory separator.
-
-For example:
-
-\code
- INCLUDEPATH = c:\msdev\include d:\stl\include
-\endcode
-
-
-\target FORMS
-\section3 FORMS
-
-This variable specifies the .ui files (see \link
-designer-manual.book TQt Designer \endlink) to be processed through \e tquic
-before compiling. All dependencies, headers and source files required
-to build these .ui files will automatically be added to the project.
-
-For example:
-
-\code
-FORMS = mydialog.ui \
- mywidget.ui \
- myconfig.ui
-\endcode
-
-Note that forms should not be specified using the \c += operator because
-this syntax is not fully supported by \QD.
-
-
-\target LEXSOURCES
-\section3 LEXSOURCES
-
-This variable contains a list of lex source files. All
-dependencies, headers and source files will automatically be added to
-the project for building these lex files.
-
-For example:
-
-\code
-LEXSOURCES = lexer.l
-\endcode
-
-
-\target LIBS
-\section3 LIBS
-
-This variable contains a list of libraries to be linked into the project.
-If you are more comfortable with the Unix convension of -L/-l flags you are
-free to use them in a cross-platform manner and qmake will do the correct
-thing with these libraries on Windows (namely this means passing the full
-path of the library to the linker). The only limitation to this is the
-library must exist, for qmake to find which directory a -l lib lives in.
-
-For example:
-
-\code
-unix:LIBS += -lmath -L/usr/local/lib
-win32:LIBS += c:\mylibs\math.lib
-\endcode
-
-
-\target MOC_DIR
-\section3 MOC_DIR
-
-This variable specifies the directory where all intermediate moc
-files should be placed.
-
-For example:
-
-\code
-unix:MOC_DIR = ../myproject/tmp
-win32:MOC_DIR = c:\myproject\tmp
-\endcode
-
-
-\target OBJECTS_DIR
-\section3 OBJECTS_DIR
-
-This variable specifies the directory where all intermediate
-objects should be placed.
-
-For example:
-
-\code
-unix:OBJECTS_DIR = ../myproject/tmp
-win32:OBJECTS__DIR = c:\myproject\tmp
-\endcode
-
-
-\target UI_DIR
-\section3 UI_DIR
-
-This variable specifies the directory where all intermediate files from tquic
-should be placed. This variable overrides both UI_SOURCES_DIR and
-UI_HEADERS_DIR.
-
-For example:
-
-\code
-unix:UI_DIR = ../myproject/ui
-win32:UI_DIR = c:\myproject\ui
-\endcode
-
-\target UI_HEADERS_DIR
-\section3 UI_HEADERS_DIR
-
-This variable specifies the directory where all declaration files (as
-generated by tquic) should be placed.
-
-For example:
-
-\code
-unix:UI_HEADERS_DIR = ../myproject/ui/include
-win32:UI_HEADERS_DIR = c:\myproject\ui\include
-\endcode
-
-\target UI_SOURCES_DIR
-\section3 UI_SOURCES_DIR
-
-This variable specifies the directory where all implementation files (as generated
-by tquic) should be placed.
-
-For example:
-
-\code
-unix:UI_SOURCES_DIR = ../myproject/ui/src
-win32:UI_SOURCES_DIR = c:\myproject\ui\src
-\endcode
-
-
-\target REQUIRES
-\section3 REQUIRES
-
-This is a special variable processed by \e qmake. If the
-contents of this variable do not appear in CONFIG by the time this
-variable is assigned, then a minimal makefile will be generated that
-states what dependencies (the values assigned to REQUIRES) are
-missing.
-
-This is mainly used in Qt's build system for building the examples.
-
-\target SOURCES
-\section3 SOURCES
-
-This variable contains the name of all source files in the project.
-
-For example:
-
-\code
-SOURCES = myclass.cpp \
- login.cpp \
- mainwindow.cpp
-
-\endcode
-
-See also \link #HEADERS HEADERS \endlink
-
-
-\section3 SUBDIRS
-
-This variable, when used with the 'subdirs'
-\link #TEMPLATE TEMPLATE \endlink contains the names of all subdirectories
-to look for a project file.
-
-For example:
-
-\code
-SUBDIRS = kernel \
- tools
-\endcode
-
-
-\target TARGET
-\section3 TARGET
-
-This specifies the name of the target file.
-
-For example:
-
-\code
-TEMPLATE = app
-TARGET = myapp
-SOURCES = main.cpp
-\endcode
-
-The project file above would produce an executable named 'myapp' on
-unix and 'myapp.exe' on windows.
-
-
-
-\target TEMPLATE
-\section3 TEMPLATE
-
-This variable contains the name of the template to use when
-generating the project. The allowed values are:
-
-\list
-\i app - Creates a makefile for building applications (the default)
-\i lib - Creates a makefile for building libraries
-\i subdirs - Creates a makefile for building targets in subdirectories
-\i vcapp - \e {win32 only} Creates an application project file for
-Visual Studio
-\i vclib - \e {win32 only} Creates a library project file for Visual
-Studio
-
-\endlist
-
-For example:
-
-\code
-TEMPLATE = lib
-SOURCES = main.cpp
-TARGET = mylib
-\endcode
-
-The template can be overridden by specifying a new template type with the
-\c -t command line option. This overrides the template type \e after the .pro
-file has been processed. With .pro files that use the template type to
-determine how the project is built, it is necessary to declare TEMPLATE on
-the command line rather than use the \c -t option.
-
-
-
-\section3 VERSION
-
-This variable contains the version number of the library if the
-'lib' \link #TEMPLATE TEMPLATE \endlink is specified.
-
-For example:
-
-\code
-VERSION = 1.2.3
-\endcode
-
-\section3 DISTFILES
-
-This variable contains a list of files to be included in the dist
-target. This feature is supported by UnixMake specs only.
-
-For example:
-
-\code
-DISTFILES += ../program.txt
-\endcode
-
-
-\target YACCSOURCES
-\section3 YACCSOURCES
-
-This variable contains a list of yacc source files to be included
-in the project. All dependencies, headers and source files will
-automatically be included in the project.
-
-For example:
-
-\code
-YACCSOURCES = tqmoc.y
-\endcode
-
-
-
-\target RarelyUsedSystemVariables
-\section2 Rarely Used System Variables
-
-The following variables are also recognized by \e qmake but are
-either internal or very rarely used.
-
-
-
-\target DESTDIR_TARGET
-\section3 DESTDIR_TARGET
-
-This variable is set internally by \e qmake, which is basically the DESTDIR variable with
-the TARGET variable appened at the end. The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-\target DSP_TEMPLATE
-\section3 DSP_TEMPLATE
-
-This variable is set internally by \e qmake, which specifies where the dsp template file for
-basing generated dsp files is stored. The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-\target LEXIMPLS
-\section3 LEXIMPLS
-
-This variable contains a list of lex implementation files. The value
-of this variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely
-needs to be modified.
-
-
-
-\target LEXOBJECTS
-\section3 LEXOBJECTS
-
-This variable contains the names of intermediate lex object
-files.The value of this variable is typically handled by
-\e qmake and rarely needs to be modified.
-
-
-\target LITERAL_HASH
-\section3 LITERAL_HASH
-
-This variable is used whenever a literal hash character (\c{#}) is needed in
-a variable declaration, perhaps as part of a file name or in a string passed
-to some external application.
-
-For example:
-
-\code
-# To include a literal hash character, use the $$LITERAL_HASH variable:
-urlPieces = http://doc.trolltech.com/3.3/qmake-manual-8.html LITERAL_HASH
-message($$join(urlPieces, $$LITERAL_HASH))
-\endcode
-
-By using \c LITERAL_HASH in this way, the \c # character can be used
-to construct a URL for the \c message() function to print to the console.
-
-
-\target MAKEFILE
-\section3 MAKEFILE
-
-This variable specifies the name of the makefile which
-\e qmake should use when outputting the dependency information
-for building a project. The value of this variable is typically
-handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\target MAKEFILE_GENERATOR
-\section3 MAKEFILE_GENERATOR
-
-This variable contains the name of the makefile generator to use
-when generating a makefile. The value of this variable is typically
-handled internally by \e qmake and rarely needs to be modified.
-
-
-\target OBJECTS
-\section3 OBJECTS
-
-This variable is generated from the \link #SOURCES SOURCES
-\endlink variable. The extension of each source file will have been
-replaced by .o (Unix) or .obj (Win32). The value of this variable is
-typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and
-rarely needs to be modified.
-
-\target OBJMOC
-\section3 OBJMOC
-
-This variable is set by \e qmake if files can be found that
-contain the TQ_OBJECT macro. \c OBJMOC contains the
-name of all intermediate moc object files. The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-\target PRECOMPILED_HEADER
-\section3 PRECOMPILED_HEADER
-
-This variable indicates the header file for creating a precompiled
-header file, to increase the compilation speed of a project.
-Precompiled headers are currently only supported on some platforms
-(Windows - all MSVC project types, Mac OS X - Xcode, Makefile,
-UNIX - gcc 3.3 and up).
-
-On other platforms, this variable has different meaning, as noted
-below.
-
-This variable contains a list of header files that require some
-sort of pre-compilation step (such as with tqmoc). The value of this
-variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-\target QMAKE
-\section3 QMAKE
-
-This variable contains the name of the \e qmake program
-itself and is placed in generated makefiles. The value of this
-variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-
-\target QMAKESPEC_systemvariable
-\section3 QMAKESPEC
-
-This variable contains the name of the \e qmake
-configuration to use when generating makefiles. The value of this
-variable is typically handled by \e qmake and rarely needs to be modified.
-Use the \link #QMAKESPEC QMAKESPEC \endlink environment variable instead.
-
-
-
-
-\target QMAKE_APP_FLAG
-\section3 QMAKE_APP_FLAG
-
-This variable is empty unless the 'app'
-\link #TEMPLATE TEMPLATE \endlink is specified. The value of this
-variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified. Use the following instead:
-
-\code
-app {
- #conditional code for 'app' template here
-}
-\endcode
-
-
-
-
-\target QMAKE_APP_OR_DLL
-\section3 QMAKE_APP_OR_DLL
-
-This variable is empty unless the 'app' or 'dll'
-\link #TEMPLATE TEMPLATE \endlink is specified. The value of this
-variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-
-\target QMAKE_AR_CMD
-\section3 QMAKE_AR_CMD
-
-\e {This is used on Unix platforms only}
-
-This variable contains the command for invoking the program which
-creates, modifies and extracts archives. The value of this variable is
-typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink
-and rarely needs to be modified.
-
-
-
-\target QMAKE_CFLAGS_DEBUG
-\section3 QMAKE_CFLAGS_DEBUG
-
-This variable contains the flags for the C compiler in debug mode.The value of this variable is
-typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink
-and rarely needs to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_MT
-\section3 QMAKE_CFLAGS_MT
-
-This variable contains the compiler flags for creating a
-multi-threaded application or when the version of TQt that you link
-against is a multi-threaded statically linked library. The value of
-this variable is typically handled by \e qmake or
-\link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_MT_DBG
-\section3 QMAKE_CFLAGS_MT_DBG
-
-This variable contains the compiler flags for creating a debuggable
-multi-threaded application or when the version of TQt that you link
-against is a debuggable multi-threaded statically linked library. The
-value of this variable is typically handled by \e qmake or
-\link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_MT_DLL
-\section3 QMAKE_CFLAGS_MT_DLL
-
-\e {This is used on Windows only}
-
-This variable contains the compiler flags for creating a
-multi-threaded dll or when the version of TQt that you link
-against is a multi-threaded dll. The value of this variable is typically
-handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and
-rarely needs to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_MT_DLLDBG
-\section3 QMAKE_CFLAGS_MT_DLLDBG
-
-\e {This is used on Windows only}
-
-This variable contains the compiler flags for creating a debuggable
-multi-threaded dll or when the version of TQt that you link
-against is a debuggable multi-threaded statically linked library.
-The value of this variable is typically handled by \e qmake or
-\link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_RELEASE
-\section3 QMAKE_CFLAGS_RELEASE
-
-This variable contains the compiler flags for creating a non-debuggable
-application. The value of this variable is typically
-handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and
-rarely needs to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_SHLIB
-\section3 QMAKE_CFLAGS_SHLIB
-
-\e {This is used on Unix platforms only}
-
-This variable contains the compiler flags for creating a shared
-library. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_THREAD
-\section3 QMAKE_CFLAGS_THREAD
-
-This variable contains the compiler flags for creating a multi-threaded
-application. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CFLAGS_WARN_OFF
-\section3 QMAKE_CFLAGS_WARN_OFF
-
-This variable is not empty if the warn_off
-\link #TEMPLATE TEMPLATE \endlink option is specified. The value of this
-variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink
-and rarely needs to be modified.
-
-
-
-\target QMAKE_CFLAGS_WARN_ON
-\section3 QMAKE_CFLAGS_WARN_ON
-
-This variable is not empty if the warn_on
-\link #TEMPLATE TEMPLATE \endlink option is specified.
-The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CLEAN
-\section3 QMAKE_CLEAN
-
-This variable contains any files which are not generated files (such as tqmoc and tquic
-generated files) and object files that should be removed when using "make clean".
-
-
-
-\target QMAKE_CXXFLAGS_DEBUG
-\section3 QMAKE_CXXFLAGS_DEBUG
-
-This variable contains the C++ compiler flags for creating a debuggable
-application. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-\target QMAKE_CXXFLAGS_MT
-\section3 QMAKE_CXXFLAGS_MT
-
-This variable contains the C++ compiler flags for creating a multi-threaded
-application. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CXXFLAGS_MT_DBG
-\section3 QMAKE_CXXFLAGS_MT_DBG
-
-This variable contains the C++ compiler flags for creating a debuggable multi-threaded
-application. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CXXFLAGS_MT_DLL
-\section3 QMAKE_CXXFLAGS_MT_DLL
-
-\c {This is used on Windows only}
-
-This variable contains the C++ compiler flags for creating a multi-threaded
-dll. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CXXFLAGS_MT_DLLDBG
-\section3 QMAKE_CXXFLAGS_MT_DLLDBG
-
-\c {This is used on Windows only}
-
-This variable contains the C++ compiler flags for creating a multi-threaded debuggable
-dll. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CXXFLAGS_RELEASE
-\section3 QMAKE_CXXFLAGS_RELEASE
-
-This variable contains the C++ compiler flags for creating an
-application. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CXXFLAGS_SHLIB
-\section3 QMAKE_CXXFLAGS_SHLIB
-
-This variable contains the C++ compiler flags for creating a
-shared library. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CXXFLAGS_THREAD
-\section3 QMAKE_CXXFLAGS_THREAD
-
-This variable contains the C++ compiler flags for creating a
-multi-threaded application. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs
-to be modified.
-
-
-
-
-\target QMAKE_CXXFLAGS_WARN_OFF
-\section3 QMAKE_CXXFLAGS_WARN_OFF
-
-This variable contains the C++ compiler flags for suppressing compiler warnings.
- The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-\target QMAKE_CXXFLAGS_WARN_ON
-\section3 QMAKE_CXXFLAGS_WARN_ON
-
-This variable contains C++ compiler flags for generating compiler warnings.
- The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\target QMAKE_EXTENSION_SHLIB
-\section3 QMAKE_EXTENSION_SHLIB
-
-This variable contains the extention for shared libraries. The value of this
-variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink
-and rarely needs to be modified.
-
-
-
-
-\target QMAKE_FAILED_REQUIREMENTS
-\section3 QMAKE_FAILED_REQUIREMENTS
-
-This variable contains the list of requirements that were failed to be met when
-\e qmake was used. For example, the sql module is needed and wasn't compiled into Qt. The
-value of this variable is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink
-and rarely needs to be modified.
-
-
-
-
-\target QMAKE_FILETAGS
-\section3 QMAKE_FILETAGS
-
-This variable contains the file tags needed to be entered into the makefile, such as SOURCES
-and HEADERS. The value of this variable is typically handled by \e qmake or
-\link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\target QMAKE_INCDIR
-\section3 QMAKE_INCDIR
-
-This variable contains the location of all known header files to be added to
-INCLUDEPATH when building an application. The value of this variable is
-typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely
-needs to be modified.
-
-
-\target POST_TARGETDEPS
-\section3 POST_TARGETDEPS
-
-All libraries that the \link #TARGET target \endlink depends on can be
-listed in this variable. Some backends do not support this, these include
-MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support
-internally by these build tools, this is usefull for explicitly listing
-dependant static libraries.
-
-This list will go after all builtin (and \link #PRE_TARGETDEPS
-$$PRE_TARGETDEPS \endlink) dependencies.
-
-
-\target PRE_TARGETDEPS
-\section3 PRE_TARGETDEPS
-
-All libraries that the \link #TARGET target \endlink depends on can be
-listed in this variable. Some backends do not support this, these include
-MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support
-internally by these build tools, this is usefull for explicitly listing
-dependant static libraries.
-
-This list will go before all builtin dependencies.
-
-
-\target QMAKE_INCDIR_OPENGL
-\section3 QMAKE_INCDIR_OPENGL
-
-This variable contains the location of OpenGL header files to be added
-to INCLUDEPATH when building an application with OpenGL support. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-\target QMAKE_INCDIR_TQT
-\section3 QMAKE_INCDIR_TQT
-
-This variable contains the location of all known header file
-paths to be added to INCLUDEPATH when building a TQt application. The value
-of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\target QMAKE_INCDIR_THREAD
-\section3 QMAKE_INCDIR_THREAD
-
-This variable contains the location of all known header file
-paths to be added to INCLUDEPATH when building a multi-threaded application.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\target QMAKE_INCDIR_X11
-\section3 QMAKE_INCDIR_X11
-
-\e {This is used on Unix platforms only}
-
-This variable contains the location of X11 header file paths to be
-added to INCLUDEPATH when building a X11 application. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-\target QMAKE_LFLAGS_CONSOLE
-\section3 QMAKE_LFLAGS_CONSOLE
-
-\e {This is used on Windows only}
-
-This variable contains link flags when building console
-programs. The value of this variable is typically handled by
-\e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 QMAKE_LFLAGS_CONSOLE_DLL
-
-\e {This is used on Windows only}
-
-This variable contains link flags when building console
-dlls. The value of this variable is typically handled by
-\e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_DEBUG
-
-This variable contains link flags when building debuggable applications. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_PLUGIN
-
-This variable contains link flags when building plugins. The value
-of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_QT_DLL
-
-This variable contains link flags when building programs that
-use the TQt library built as a dll. The value of this variable is
-typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_RELEASE
-
-This variable contains link flags when building applications for
-release. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_SHAPP
-
-This variable contains link flags when building applications which are using
-the 'app' template. The value of this variable is typically handled by
-\e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_SHLIB
-
-This variable contains link flags when building shared libraries
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_SONAME
-
-This variable specifies the link flags to set the name of shared objects,
-such as .so or .dll. The value of this variable is typically handled by \e
-qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\section3 QMAKE_LFLAGS_THREAD
-
-This variable contains link flags when building multi-threaded projects.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LFLAGS_WINDOWS
-
-\e {This is used on Windows only}
-
-This variable contains link flags when building windows projects.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 QMAKE_LFLAGS_WINDOWS_DLL
-
-\e {This is used on Windows only}
-
-This variable contains link flags when building windows dll projects.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 QMAKE_LIBDIR
-
-This variable contains the location of all known library
-directories.The value of this variable is typically handled by
-\e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBDIR_FLAGS
-
-\e {This is used on Unix platforms only}
-
-This variable contains the location of all library
-directory with -L prefixed. The value of this variable is typically handled by
-\e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-\section3 VPATH
-
-This variable tells \e qmake where to search for files it cannot
-open. With this you may tell \e qmake where it may look for things
-like SOURCES, and if it finds an entry in SOURCES that cannot be
-opened it will look through the entire VPATH list to see if it can
-find the file on its own.
-
-See also \link #DEPENDPATH DEPENDPATH \endlink.
-
-\target DEPENDPATH
-\section3 DEPENDPATH
-
-This variable contains the list of all directories to look in to
-resolve dependencies. This will be used when crawling through
-'included' files.
-
-
-\section3 QMAKE_LIBDIR_OPENGL
-
-This variable contains the location of the OpenGL library
-directory.The value of this variable is typically handled by
-\e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBDIR_TQT
-
-This variable contains the location of the TQt library
-directory.The value of this variable is typically handled by
-\e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBDIR_X11
-
-\e {This is used on Unix platforms only}
-
-This variable contains the location of the X11 library
-directory.The value of this variable is typically handled by
-\e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-\section3 QMAKE_LIBS
-
-This variable contains all project libraries. The value of this
-variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 QMAKE_LIBS_CONSOLE
-
-\e {This is used on Windows only}
-
-This variable contains all project libraries that should be linked against
-when building a console application. The value of this
-variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\section3 QMAKE_LIBS_OPENGL
-
-This variable contains all OpenGL libraries. The value of this
-variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_OPENGL_QT
-
-This variable contains all OpenGL TQt libraries.The value of this
-variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_QT
-
-This variable contains all TQt libraries.The value of this
-variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_QT_DLL
-
-\e {This is used on Windows only}
-
-This variable contains all TQt libraries when TQt is built as a dll. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_QT_OPENGL
-
-This variable contains all the libraries needed to link against if
-OpenGL support is turned on. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-\section3 QMAKE_LIBS_QT_THREAD
-
-This variable contains all the libraries needed to link against if
-thread support is turned on. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_THREAD
-
-\e {This is used on Unix platforms only}
-
-This variable contains all libraries that need to be linked against
-when building a multi-threaded application. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_WINDOWS
-
-\e {This is used on Windows only}
-
-This variable contains all windows libraries.The value of this
-variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_X11
-
-\e {This is used on Unix platforms only}
-
-This variable contains all X11 libraries.The value of this
-variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIBS_X11SM
-
-\e {This is used on Unix platforms only}
-
-This variable contains all X11 session management libraries. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_LIB_FLAG
-
-This variable is not empty if the 'lib' template is specified. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-\section3 QMAKE_LINK_SHLIB_CMD
-
-This variable contains the command to execute when creating a
-shared library. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 QMAKE_POST_LINK
-
-This variable contains the command to execute after linking the TARGET
-together. This variable is normally empty and therefore nothing is
-executed, additionally some backends will not support this - mostly only
-Makefile backends.
-
-
-
-\section3 QMAKE_PRE_LINK
-
-This variable contains the command to execute before linking the TARGET
-together. This variable is normally empty and therefore nothing is
-executed, additionally some backends will not support this - mostly only
-Makefile backends.
-
-
-
-\section3 QMAKE_LN_SHLIB
-
-This variable contains the command to execute when creating a link
-to a shared library. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_MAKEFILE
-
-This variable contains the name of the makefile to create. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-
-\section3 QMAKE_MOC_SRC
-
-This variable contains the names of all moc source files to
-generate and include in the project. The value of this variable is
-typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 QMAKE_QMAKE
-
-This variable contains the location of qmake if it is not in the path.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 QMAKE_QT_DLL
-
-This variable is not empty if TQt was built as a dll. The
-value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-\section3 QMAKE_RUN_CC
-
-This variable specifies the individual rule needed to build an object.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-\section3 QMAKE_RUN_CC_IMP
-
-This variable specifies the individual rule needed to build an object.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\section3 QMAKE_RUN_CXX
-
-This variable specifies the individual rule needed to build an object.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\section3 QMAKE_RUN_CXX_IMP
-
-This variable specifies the individual rule needed to build an object.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-\section3 QMAKE_TARGET
-
-This variable contains the name of the project target. The value of
-this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 QMAKE_UIC
-
-This variable contains the location of tquic if it is not in the path.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-It can be used to specify arguments to tquic as well, such as additional plugin
-paths. For example:
-
-\code
- QMAKE_UIC = tquic -L /path/to/plugin
-\endcode
-
-
-
-\section3 RC_FILE
-
-This variable contains the name of the resource file for the application.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-
-\section3 RES_FILE
-
-This variable contains the name of the resource file for the application.
-The value of this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\section3 SRCMOC
-
-This variable is set by \e qmake if files can be found that
-contain the TQ_OBJECT macro. \c SRCMOC contains the
-name of all the generated moc files. The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-\section3 TARGET_EXT
-
-This variable specifies the target's extension. The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-
-\section3 TARGET_x
-
-This variable specifies the target's extension with a major version number. The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-\section3 TARGET_x.y.z
-
-This variable specifies the target's extension with version number. The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-\section3 UICIMPLS
-
-This variable contains a list of the generated implementation files by TQUIC.
-The value of this variable
-is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
-modified.
-
-
-
-
-
-\section3 UICOBJECTS
-
-This variable is generated from the UICIMPLS variable. The extension of each
-file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is
-typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and
-rarely needs to be modified.
-
-
-
-\section3 VER_MAJ
-
-This variable contains the major version number of the library, if the
-'lib' \link #TEMPLATE template \endlink is specified.
-
-
-
-
-
-\section3 VER_MIN
-
-This variable contains the minor version number of the library, if the
-'lib' \link #TEMPLATE template \endlink is specified.
-
-
-
-
-
-\section3 VER_PAT
-
-This variable contains the patch version number of the library, if the
-'lib' \link #TEMPLATE template \endlink is specified.
-
-
-
-\section3 QMAKE_EXT_MOC
-
-This variable changes the extention used on included moc files.
-
-See also \link #Extensions File Extensions \endlink.
-
-
-
-\section3 QMAKE_EXT_UI
-
-This variable changes the extention used on /e Designer UI files.
-
-See also \link #Extensions File Extensions \endlink.
-
-
-
-\section3 QMAKE_EXT_PRL
-
-This variable changes the extention used on created PRL files.
-
-See also \link #Extensions File Extensions \endlink,
- \link #LibDepend Library Dependencies \endlink.
-
-
-
-\section3 QMAKE_EXT_LEX
-
-This variable changes the extention used on files given to lex.
-
-See also \link #Extensions File Extensions \endlink,
- \link #LEXSOURCES LEXSOURCES \endlink.
-
-
-
-\section3 QMAKE_EXT_YACC
-This variable changes the extention used on files given to yacc.
-
-See also \link #Extensions File Extensions \endlink,
- \link #LEXSOURCES YACCSOURCES \endlink.
-
-
-
-\section3 QMAKE_EXT_OBJ
-
-This variable changes the extention used on generated object files.
-
-See also \link #Extensions File Extensions \endlink.
-
-
-\section3 QMAKE_EXT_CPP
-
-This variable changes the interpretation of all suffixes in this
-list of values as files of type C++ source code.
-
-See also \link #Extensions File Extensions \endlink.
-
-
-\section3 QMAKE_EXT_H
-
-This variable changes the interpretation of all suffixes in this
-list of values as files of type C header files.
-
-See also \link #Extensions File Extensions \endlink.
-
-
-\section3 YACCIMPLS
-
-This variable contains a list of yacc source files. The value of
-this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-
-
-\section3 YACCOBJECTS
-
-This variable contains a list of yacc object files. The value of
-this variable is typically handled by \e qmake or
- \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
-
-
-\target Functions
-\section1 Functions
-
-\e qmake recognizes the following functions:
-
-
-
-\section2 include( filename )
-
-This function will include the contents of \e filename into the
-current project at the point where was included. The function succeeds
-if \e filename was included, otherwise it fails. You can check the
-return value of this function using a
-scope.
-
-For example:
-
-\code
-include( shared.pri )
-OPTIONS = standard custom
-!include( options.pri ) {
- message( "No custom build options specified" )
- OPTIONS -= custom
-}
-\endcode
-
-\section2 exists( file )
-
-This function will test if \e file exists. If the file exists, then it will succeed; otherwise it will
-fail.
-You can specify a regular expression in file and it will succeed if any file
-matches the regular expression specified.
-
-For example:
-\code
-exists( $(TQTDIR)/lib/libtqt-mt* ) {
- message( "Configuring for multi-threaded Qt..." )
- CONFIG += thread
-}
-\endcode
-
-\section2 contains( variablename, value )
-
-This function will succeed if the variable \e variablename
-contains the value \e value. You can check the return value of this
-function using a scope.
-
-For example:
-
-\code
-contains( drivers, network ) {
- # drivers contains 'network'
- message( "Configuring for network build..." )
- HEADERS += network.h
- SOURCES += network.cpp
-}
-\endcode
-
-\section2 count( variablename, number )
-
-This function will succeed if the variable \e variablename
-contains \e number elements, otherwise it will fail. You can check
-the return value of this function using a
-scope.
-
-For example:
-
-\code
-MYVAR = one two three
-count( MYVAR, 3 ) {
- # always true
-}
-\endcode
-
-\section2 infile( filename, var, val )
-
-This function will succeed if the file \e filename (when parsed
-by qmake itself) contains the variable \e var with a value of
-\e val. You may also not pass in a third argument (\e val) and the
-function will only test if \e var has been assigned to in the file.
-
-\section2 isEmpty( variablename )
-
-This function will succeed if the variable \e variablename is
-empty (same as \c count(variable, 0)).
-
-\section2 system( command )
-
-This function will execute \c command in a secondary shell and will
-succeed if the command exits with an exit status of 1. You can check the
-return value of this function using a scope.
-
-For example:
-
-\code
- system(ls /bin):HAS_BIN=FALSE
-\endcode
-
-\section2 message( string )
-
-This function will always succeed, and will display the given
-\e string to the user.
-
-\section2 error( string )
-
-This function will never return a value. It will display the given \e
-string to the user, and then exit \e qmake. This function should
-only be used for very fatal configurations.
-
-For example:
-
-\code
- release:debug:error(You can't have release and debug at the same time!)
-\endcode
-
-\target Properties
-\section1 Properties
-
-\e qmake has a system of persistant information, this allows you to
-'set' a variable in qmake once, and each time qmake is invoked this
-value can be queried. Use the following to set a property in qmake:
-
-\code
-qmake -set VARIABLE VALUE
-\endcode
-
-To retrieve this information back from qmake you can do:
-
-\code
-qmake -query VARIABLE
-qmake -query #queries all current VARIABLE/VALUE pairs..
-\endcode
-
-This information will be saved into a TQSettings object (meaning it
-will be stored in different places for different platforms). As
-VARIABLE is versioned as well, you can set one value in an older
-version of qmake, and newer versions will retrieve this value, however
-if you -set VARIABLE into a newer version of qmake the older version
-will not use this value. You can however query a specific version of a
-variable if you prefix that version of qmake to VARIABLE, as in:
-
-\code
-qmake -query "1.06a/VARIABLE"
-\endcode
-
-qmake also has the notion of 'builtin' properties, for example you can
-query the installation of TQt for this version of qmake with the
-QT_INSTALL_PREFIX property:
-
-\code
-qmake -query "QT_INSTALL_PREFIX"
-\endcode
-
-These builtin properties cannot have a version prefixed to them as
-they are not versioned and each qmake will have its own notion of
-these values. The list below outlines the builtin properties:
-
-\list
-\i QT_INSTALL_PREFIX - Where the version of TQt this qmake is built for resides
-\i QT_INSTALL_DATA - Where data for this version of TQt resides
-\i QMAKE_VERSION - The current version of qmake
-\endlist
-
-Finally, these values can be queried in a project file with a special
-notation such as:
-
-\code
-QMAKE_VERS = $$[QMAKE_VERSION]
-\endcode
-
-\target Environment
-\section1 Environment Variables and Configuration
-
-\target QMAKESPEC
-\section2 QMAKESPEC
-
-\e qmake requires a platform and compiler description file which
-contains many default values used to generate appropriate makefiles.
-The standard TQt distribution comes with many of these files, located
-in the 'mkspecs' subdirectory of the TQt installation.
-
-The QMAKESPEC environment variable can contain any of the following:
-
-\list
-\i A complete path to a directory containing a qmake.conf file. In this case \e qmake will open the qmake.conf file from within that directory. If the file does not exist, \e qmake will exit with an error.
-\i The name of a platform-compiler combination. In this case, \e qmake will search in the directory specified by the TQTDIR environment variable.
-\endlist
-
-Note: the QMAKESPEC path will automatically be added to the
-\link #INCLUDEPATH INCLUDEPATH \endlink system variable.
-
-\target INSTALLS
-\section2 INSTALLS
-
-It is common on UNIX to be able to install from the same utility as
-you build with (e.g make install). For this \e qmake has introduce the
-concept of an install set. The notation for this is quite simple,
-first you fill in an "object" in qmake for example:
-
-\code
- documentation.path = /usr/local/program/doc
- documentation.files = docs/*
-\endcode
-
-In this way you are telling \e qmake several things about this
-install, first that you plan to install to /usr/local/program/doc (the
-path member), second that you plan to copy everything in the docs
-directory. Once this is done you may insert it in the install list:
-
-\code
- INSTALLS += documentation
-\endcode
-
-Now \e qmake will take over making sure the correct things are copied
-to the specified places. If however you require greater control you
-may use the 'extra' member of the object:
-
-\code
- unix:documentation.extra = create_docs; mv master.doc toc.doc
-\endcode
-
-Then qmake will run the things in extra (this is of course platform
-specific, so you may need to test for your platform first, this case
-we test for unix). Then it will do the normal processings of the files
-member. Finally if you appened a builtin install to INSTALLS \e qmake
-(and do not specify a files or extra member) will decide what needs to
-be copied for you, currently the only supported builtin is target:
-
-\code
- target.path = /usr/local/myprogram
- INSTALLS += target
-\endcode
-
-With this \e qmake will know what you plan need copied, and do this
-for you.
-
-\target cache
-\section2 Cache File
-
-The cache file (mentioned above in the options) is a special file \e qmake
-will read to find settings not specified in the \c qmake.conf file, the
-.pro file, or the command line. If \c -nocache is not specified, \e qmake
-will try to find a file called \c .qmake.cache in parent directories. If
-it fails to find this file, it will silently ignore this step of
-processing.
-
-\target LibDepend
-\section2 Library Dependencies
-
-Often when linking against a library \e qmake relies on the underlying
-platform to know what other libraries this library links against, and
-lets the platform pull them in. In many cases, however, this is not
-sufficent. For example when statically linking a library there are no
-libraries linked against, and therefore no dependencies to those
-libraries are created - however an application that later links
-against this library will need to know where to find the symbols that
-the linked in library will require. To help with this situation \e
-qmake will follow a library's dependencies when it feels appropriate,
-however this behaviour must be enabled in \e qmake. To enable requires
-two steps. First, you must enable it in the library - to do this you
-must tell \e qmake to save information about this library:
-
-\code
- CONFIG += create_prl
-\endcode
-
-This is only relevant to the lib template, and will be ignored for all
-others. When this option is enabled \e qmake will create a file
-(called a .prl file) which will save some meta information about the
-library. This metafile is itself just a qmake project file, but with
-all internal variables. You are free to view this file, and if deleted
-\e qmake will know to recreate it when necesary (either when the .pro
-file is later read, or if a dependent library (described below) has
-changed). When installing this library (by using target in INSTALLS,
-above) \e qmake will automatically copy the .prl file to your install
-path.
-
-The second step to enabling this processing is to turn on reading of
-the meta information created above:
-
-\code
- CONFIG += link_prl
-\endcode
-
-When this is turned on \e qmake will process all libraries linked to,
-and find their meta information. With this meta information \e qmake
-will figure out what is relevant to linking, specifically it will add
-to your list of DEFINES as well as LIBS. Once \e qmake has processed
-this file, it will then look through the newly introduced LIBS and
-find their dependent .prl files, and continue until all libraries have
-been resolved. At this point the makefile is created as usual, and the
-libraries are linked explicity against your program.
-
-The internals of the .prl file are left closed so they can easily
-change later. It is not designed to be changed by hand however, and
-should only be created by \e qmake - these .prl files should also not
-be transfered from operating system to operating system as they may be
-platform dependent (like a makefile).
-
-\target Extensions
-\section2 File Extensions
-
-Under normal circumstances \e qmake will try to use appropriate file extensions
-for your platform. There may be times, however, that you would like to override
-the behavior of these extensions. To do this, you must modify builtin variables
-in your .pro file, which will in turn changes \e qmake's interpretation of these
-files. You may do this as:
-
-\code
- QMAKE_EXT_MOC = .mymoc
-\endcode
-
-The variables are as follows:
-
-\list
-\i QMAKE_EXT_MOC - This modifies the extension placed on included moc files.
-\i QMAKE_EXT_UI - This modifies the extension used for designer UI files (usually in FORMS).
-\i QMAKE_EXT_PRL - This modifies the extension placed on
- \link #LibDepend library dependency files \endlink.
-\i QMAKE_EXT_LEX - This changes the suffix used in files (usually in LEXSOURCES).
-\i QMAKE_EXT_YACC - This changes the suffix used in files (usually in YACCSOURCES).
-\i QMAKE_EXT_OBJ - This changes the suffix used on generated object files.
-\endlist
-
-All the above accept just the first value, so you must assign to it one value that
-will be used through your makefile. There are two variables that accept a list of values,
-they are:
-
-\list
-\i QMAKE_EXT_CPP - Changes interpretation all files with these suffixes to be
- C++ source files.
-\i QMAKE_EXT_H - Changes interpretation all files with these suffixes to be
- C header files.
-\endlist
-
-
-\target Customizing
-\section2 Customizing Makefile Output
-
-qmake often tries to be all things to all build tools, this is often less
-than ideal when you really need to run special platform dependent
-commands. This can be achieved with specific instructions to the different
-qmake backends (currently this is only supported by the UNIX \link
-#MAKEFILE_GENERATOR generator \endlink).
-
-The interfaces to customizing the Makefile are done through "objects" as in
-other places in qmake. The notation for this is quite simple, first you
-fill in an "object" in qmake for example:
-
-\code
- mytarget.target = .buildfile
- mytarget.commands = touch $$mytarget.target
- mytarget.depends = mytarget2
-
- mytarget2.commands = @echo Building $$mytarget.target
-\endcode
-
-The information above defines a qmake target called mytarget which contains
-a Makefile target called .buildfile, .buildfile is generated by 'touch
-.buildfile', and finally that this Makefile target depends on the qmake
-target mytarget2. Additionally we've defined the qmake target mytarget2
-which simply echo's something to stdout.
-
-The final step to making use of the above is to instruct qmake that this is
-actually an object used by the target building parts of qmake by:
-
-\code
-QMAKE_EXTRA_UNIX_TARGETS += mytarget mytarget2
-\endcode
-
-This is all you need to do to actually build custom targets in qmake, of
-course you may want to tie one of these targets to actually building the
-\link #TARGET qmake build target \endlink. To do this, you simply need to
-include your Makefile target in the list of \link #PRE_TARGETDEPS PRE_TARGETDEPS
-\endlink.
-
-For convenience there is also a method of customizing (UNIX) projects
-for generic new compilers (or even preprocessors).
-
-\code
-new_moc.output = tqmoc_${QMAKE_FILE_BASE}.cpp
-new_moc.commands = tqmoc ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
-new_moc.depends = g++ -E -M ${QMAKE_FILE_NAME} | sed "s,^.*: ,,"
-new_moc.input = NEW_HEADERS
-QMAKE_EXTRA_UNIX_COMPILERS += new_moc
-\endcode
-
-With this you can create a new moc for qmake, the commands will be
-executed over all arguments given to a NEW_HEADERS variable (from the
-input variable), and write to output (and automatically hand this
-filename to the compiler to be linked into your target). Additionally
-qmake will execute depends to generate dependency information and
-place this in the project as well.
-
-These commands can easily be placed into a cache file, and subsequent
-.pro files can give several arguments to NEW_HEADERS.
diff --git a/qmake/book/qmake-concepts.leaf b/qmake/book/qmake-concepts.leaf
deleted file mode 100644
index 929ba6202..000000000
--- a/qmake/book/qmake-concepts.leaf
+++ /dev/null
@@ -1,187 +0,0 @@
-\chapter qmake Concepts
-
-\section1 Introducing qmake
-
-\e qmake is an easy-to-use tool from Trolltech that creates makefiles
-for development projects across different platforms. \e qmake
-simplifies the generation of makefiles so that only a few lines of
-information are needed to create a makefile. \e qmake can be used for
-any software project whether it is written in TQt or not, although it
-also contains additional features to support TQt development.
-
-\e qmake generates a makefile based on the information in a project
-file. Project files are created by the developer. Project files are
-usually simple, but can be quite sophisticated if required.
-\e qmake can also generate projects for Microsoft Visual studio
-without having to change the project file.
-
-\section1 qmake's Concepts
-
-\section2 The QMAKESPEC environment variable
-
-Before \e qmake can be used to build makefiles, the QMAKESPEC
-environment variable must be set to the platform-compiler combination
-that is being used on the system. The QMAKESPEC environment variable
-tells qmake where to look to find platform and compiler specific
-information. This ensures that the right libraries are used, and that
-the generated makefile uses the correct syntax. A list of the
-currently supported platform-compiler combinations can be found in
-qt/mkspecs. Just set your environment variable to one of the
-directories listed.
-
-For example, if you are using Microsoft Visual Studio on Windows, then
-you would set the QMAKESPEC environment variable to \e win32-msvc.
-If you are using gcc on Solaris then you would set your QMAKESPEC
-environment variable to \e solaris-g++.
-
-Inside each of the directories in qt/mkspecs, there is a \e qmake.conf
-file which contains the platform and compiler specific information.
-These settings are applied to any project that is built using \e
-qmake and should not be modified unless you're an expert. For example,
-if all your applications had to link against a particular library, you
-might add this information to the relevant \e qmake.conf file.
-
-\section2 Project (.pro) files
-
-A project file is used to tell \e qmake the details it needs to know
-about creating a makefile for the application. For instance, a list
-of source files and header files that should be put into the project
-file; any application specific configuration, such as an extra library
-that should be linked against, or an extra include path.
-
-\section3 '#' comments
-
-You can add comments to project files. Comments begin with the '#'
-symbol and run to the end of the line.
-
-\section2 Templates
-
-The template variable tells \e qmake what sort of makefile should be
-generated for the application. The following choices are available:
-
-\list
-\i app - Creates a makefile that builds an application. This is the
-default, so if a template is not specified, this is used.
-\i lib - Creates a makefile that builds a library.
-\i vcapp - Creates a Visual Studio Project file which builds an application.
-\i vclib - Creates a Visual Studio Project file which builds a library.
-\i subdirs - This is a special template which creates a makefile which
-will go into the specified directories and create a makefile for the
-project file and call make on it.
-\endlist
-
-\section3 The 'app' template
-
-The 'app' template tells \e qmake to generate a makefile that will build
-an application. When using this template the following \e qmake
-system variables are recognized. You should use these in your .pro
-file to specify information about your application.
-
-\list
-\i HEADERS - A list of all the header files for the application.
-\i SOURCES - A list of all the source files for the application.
-\i FORMS - A list of all the .ui files (created using \e{Qt Designer})
-for the application.
-\i LEXSOURCES - A list of all the lex source files for the application.
-\i YACCSOURCES - A list of all the yacc source files for the application.
-\i TARGET - Name of the executable for the application. This defaults
-to the name of the project file. (The extension, if any, is added
-automatically).
-\i DESTDIR - The directory in which the target executable is placed.
-\i DEFINES - A list of any additional pre-processor defines needed for the application.
-\i INCLUDEPATH - A list of any additional include paths needed for the application.
-\i DEPENDPATH - The dependency search path for the application.
-\i VPATH - The search path to find supplied files.
-\i DEF_FILE - Windows only: A .def file to be linked against for the application.
-\i RC_FILE - Windows only: A resource file for the application.
-\i RES_FILE - Windows only: A resource file to be linked against for the application.
-\endlist
-
-You only need to use the system variables that you have values for,
-for instance, if you don't have any extra INCLUDEPATHs then you don't
-need to specify any, \e qmake will add in the default ones needed.
-For instance, an example project file might look like this:
-
-\code
-TEMPLATE = app
-DESTDIR = c:\helloapp
-HEADERS += hello.h
-SOURCES += hello.cpp
-SOURCES += main.cpp
-DEFINES += QT_DLL
-CONFIG += qt warn_on release
-\endcode
-
-For items that are single valued, e.g. the template or the destination
-directory, we use "="; but for multi-valued items we use "+=" to \e
-add to the existing items of that type. Using "=" replaces the item's
-value with the new value, for example if we wrote \c{DEFINES=QT_DLL},
-all other definitions would be deleted.
-
-\section3 The 'lib' template
-
-The 'lib' template tells \e qmake to generate a makefile that will
-build a library. When using this template, in addition to the system variables
-mentioned above for the 'app' template the \e VERSION variable is
-supported. You should use these in your .pro file to specify
-information about the library.
-
-\list
-\i VERSION - The version number of the target library, for example, 2.3.1.
-\endlist
-
-\section3 The 'subdirs' template
-
-The 'subdirs' template tells qmake to generate a makefile that will go
-into the specified subdirectories and generate a makefile for the
-project file in the directory and call make on it.
-
-The only system variable that is recognised for this template is the
-\e SUBDIRS variable. This variable contains a list of all the
-subdirectories that contain project files to be processed. It is
-essential that the project file in the sub directory has the same name
-as the subdirectory, so that \e qmake can find it. For
-example, if the subdirectory is called 'myapp' then the project file
-in that directory should be called \e myapp.pro in that directory.
-
-\section2 The CONFIG variable
-
-The config variable specifies the options that the compiler should use
-and the libraries that should be linked against. Anything can be
-added to the config variable, but the options covered below are
-recognised by qmake internally.
-
-The following options control what compiler flags are used:
-
-\list
-\i release - The application is to be built in release mode. This is ignored if 'debug' is specified.
-\i debug - The application is to be built in debug mode.
-\i warn_on - The compiler should output as many warnings as possible. This is ignored if 'warn_off' is specified.
-\i warn_off - The compiler should output as few warnings as possible.
-\endlist
-
-The following options define the type of library/application to be built:
-
-\list
-\i qt - The application is a TQt application and should link against the TQt library.
-\i thread - The application is a multi-threaded application.
-\i x11 - The application is an X11 application or library.
-\i windows - 'app' template only: the application is a Windows window application.
-\i console - 'app' template only: the application is a Windows console application.
-\i dll - 'lib' template only: The library is a shared library (dll).
-\i staticlib - 'lib' template only: The library is a static library.
-\i plugin - 'lib' template only: The library is a plugin; this enables the dll option.
-\endlist
-
-For example, if your application uses the TQt library and you want to
-build it as a debuggable multi-threaded application, your project file
-will have the following line:
-
-\code
- CONFIG += qt thread debug
-\endcode
-
-Note, that you must use "+=", not "=", or \e qmake will not be able to
-use the settings used to build TQt as a guide as what type of Qt
-library was built.
-
diff --git a/qmake/book/qmake-install.leaf b/qmake/book/qmake-install.leaf
deleted file mode 100644
index 5182be521..000000000
--- a/qmake/book/qmake-install.leaf
+++ /dev/null
@@ -1,46 +0,0 @@
-\chapter Installing qmake
-
-\section1 Installing qmake
-
-\e qmake is built by default when TQt is built.
-
-This section explains how to build \e qmake manually. Skip ahead to
-\l{The 10 minute guide to using qmake}, if you already have \e qmake.
-
-\section2 Installing qmake manually
-
-Before building TQt manually the following environment variables must
-be set:
-
-\list
-\i QMAKESPEC \BR This must be set to the platform and compiler
-combination that you are using on your system. \BR For example, if
-you are using Windows and Microsoft Visual Studio, you would set this
-environment variable to \e win32-msvc. If you are using Solaris and
-g++, you would set this environment variable to \e solaris-g++.
-
-The following is a list of environment variables available to choose
-from when setting QMAKESPEC:
-
-aix-64 hpux-cc irix-032 netbsd-g++ solaris-cc unixware7-g++
-aix-g++ hpux-g++ linux-cxx openbsd-g++ solaris-g++
-aix-xlc hpux-n64 linux-g++ openunix-cc sunos-g++ win32-g++
-bsdi-g++ hpux-o64 linux-icc qnx-g++ tru64-cxx win32-msvc
-dgux-g++ hurd-g++ linux-kcc reliant-64 tru64-g++ win32-watc
-freebsd-g++ irix-64 macx-pbuilder reliant-cds ultrix-g++ win32-visa
-hpux-acc irix-g++ macx-g++ sco-g++ unixware-g
-hpux-acc irix-n32 solaris-64 unixware7-cc
-
-\i TQTDIR \BR This must be set to where TQt is (or will be) installed.
-For example, \e {c:\\qt} and \e {\\local\\qt}
-\endlist
-
-Once the environment variables are set go into the qmake directory, \e
-$TQTDIR/qmake, e.g. \e{C:\\qt\\qmake}. Now run \e make or \e nmake
-depending on your compiler.
-
-When the make has completed, \e qmake is ready for use.
-
-
-
-
diff --git a/qmake/book/qmake-manual.book b/qmake/book/qmake-manual.book
deleted file mode 100644
index 68eb0e613..000000000
--- a/qmake/book/qmake-manual.book
+++ /dev/null
@@ -1,12 +0,0 @@
-\title qmake User Guide
-
-\granularity chapter
-
-\input qmake-preface.leaf
-\input qmake-install.leaf
-\input qmake-quick.leaf
-\input qmake-tutorial.leaf
-\input qmake-concepts.leaf
-\input qmake-advanced.leaf
-\input qmake-pch.leaf
-\input qmake-commandreference.leaf
diff --git a/qmake/book/qmake-pch.leaf b/qmake/book/qmake-pch.leaf
deleted file mode 100644
index 616e1004a..000000000
--- a/qmake/book/qmake-pch.leaf
+++ /dev/null
@@ -1,136 +0,0 @@
-\chapter Using Precompiled Headers
-
-\target About
-\section1 About Precompiled Headers
-\index About Precompiled Headers
-\index Using Precompiled Headers
-\index Precompiled Headers
-\index PCH
-
-Precompiled headers are a performance feature supported by some
-compilers to compile a stable body of code, and store the compiled
-state of the code in a binary file. During subsequent compilations,
-the compiler will load the stored state, and continue compiling the
-specified file. Each subsequent compilation is faster because the
-stable code does not need to be recompiled.
-
-\e qmake supports the use of precompiled headers (PCH) on some
-platforms and build environments, including:
-\list
-\i Windows
- \list
- \i nmake
- \i Dsp projects (VC 6.0)
- \i Vcproj projects (VC 7.0 \& 7.1)
- \endlist
-\i Mac OS X
- \list
- \i Makefile
- \i Xcode
- \i GCC 3.3 and up
- \endlist
-\i Unix
- \list
- \i GCC 3.4 and up
- \endlist
-\endlist
-
-
-\target ADD_PCH
-\section1 Adding PCH to your project
-
-
-\target PCH_CONTENTS
-\section2 Contents of the precompiled header file
-
-The precompiled header must contain code which is \e stable
-and \e static throughout your project. A typical PCH might look
-like this:
-\section3 stable.h
-
-\code
- /* Add C includes here */
-
- #if defined __cplusplus
- /* Add C++ includes here */
- #include
- #include
- #include
- #include // TQt includes
- #include
- #include
- #include "thirdparty/include/libmain.h"
- #include "my_stable_class.h"
- ...
- #endif
-\endcode
-
-Note that a precompiled header file needs to separate C includes from
-CPP includes, since the precompiled header file for C files may not
-contain C++ code.
-
-
-\target PROJECT_OPTIONS
-\section2 Project options
-
-To make your project use PCH, the only thing you need to change in
-your project settings (.pro), is to include the PRECOMPILED_HEADER option:
-\code
- PRECOMPILED_HEADER = stable.h
-\endcode
-\e qmake will handle the rest, to ensure the creation and use of the
-precompiled header file. You do not need to include the precompiled
-header file in HEADERS, as qmake will do this if the configuration
-supports PCH.
-
-All platforms that support precompiled headers have the configuration
-option \Bold precompile_header set. Using this option, you may trigger
-conditional blocks in your .pro file, to add settings when using PCH.
-For example:
-\code
- precompile_header:!isEmpty(PRECOMPILED_HEADER) {
- DEFINES += USING_PCH
- }
-
-\endcode
-
-\target EXAMPLE_PROJECT
-\section1 Example project
-
-You can find the following source code in the
-\e{qt/qmake/examples/precompile} directory:
-
-\Bold mydialog.ui
-\quotefile precompile/mydialog.ui
-\skipto
-
-\Bold stable.h
-\quotefile precompile/stable.h
-\skipto /*
-\printuntil #endif
-
-\Bold myobject.h
-\quotefile precompile/myobject.h
-\skipto #include
-\printuntil }
-
-\Bold myobject.cpp
-\quotefile precompile/myobject.cpp
-\skipto #include
-\printuntil }
-
-\Bold util.cpp
-\quotefile precompile/util.cpp
-\skipto void
-\printuntil }
-
-\Bold main.cpp
-\quotefile precompile/main.cpp
-\skipto #include
-\printuntil }
-
-\Bold precompile.pro
-\quotefile precompile/precompile.pro
-\skipto #
-\printuntil .ui
diff --git a/qmake/book/qmake-preface.leaf b/qmake/book/qmake-preface.leaf
deleted file mode 100644
index b716903f6..000000000
--- a/qmake/book/qmake-preface.leaf
+++ /dev/null
@@ -1,18 +0,0 @@
-\chapter Introduction to qmake
-
-\section1 Introduction to qmake
-
-\e qmake is a tool created by Trolltech to write makefiles for
-different compilers and platforms.
-
-Writing makefiles by hand can be difficult and error prone, especially
-if several makefiles are required for different compiler and platform
-combinations. With \e qmake, developers create a simple single
-'project' file and run \e qmake to generate the appropriate
-makefiles. \e qmake takes care of all the compiler and platform
-dependencies, freeing developers to focus on their code. Trolltech
-uses \e qmake as the primary build tool for the TQt library, and for
-the tools supplied with Qt.
-
-\e qmake also takes care of Qt's special requirements, automatically
-including build rules for \link tqmoc.html tqmoc\endlink and \e tquic.
diff --git a/qmake/book/qmake-quick.leaf b/qmake/book/qmake-quick.leaf
deleted file mode 100644
index 135e9fa60..000000000
--- a/qmake/book/qmake-quick.leaf
+++ /dev/null
@@ -1,114 +0,0 @@
-\chapter The 10 minute guide to using qmake
-
-\section1 Creating a project file
-
-\e qmake uses information stored in project (.pro) files to determine
-what should go in the makefiles it generates.
-
-A basic project file contains information about the application, for
-example, which files are needed to compile the application, and which
-configuration settings to use.
-
-Here's a simple example project file:
-\code
- SOURCES = hello.cpp
- HEADERS = hello.h
- CONFIG += qt warn_on release
-\endcode
-
-We'll provide a brief line-by-line explanation, deferring the detail
-until later on in the manual.
-
-\code
- SOURCES = hello.cpp
-\endcode
-
-This line specifies the source files that implement the application. In this
-case there is just one file, \e hello.cpp. Most applications require
-multiple files; this situation is dealt with by listing all the files
-on the same line space separated, like this:
-\code
- SOURCES = hello.cpp main.cpp
-\endcode
-
-Alternatively, each file can be listed on a separate line, by escaping
-the newlines, like this:
-\code
- SOURCES = hello.cpp \
- main.cpp
-\endcode
-
-A more verbose approach is to list each file separately, like this:
-\code
- SOURCES += hello.cpp
- SOURCES += main.cpp
-\endcode
-This approach uses "+=" rather than "=" which is safer, because it
-always adds a new file to the existing list rather than replacing the
-list.
-
-The HEADERS line is used to specify the header files created for use
-by the application, e.g.
-\code
- HEADERS += hello.h
-\endcode
-
-Any of the approaches used to list source files may be used for header
-files.
-
-The CONFIG line is used to give \e qmake information about the
-application's configuration.
-\code
- CONFIG += qt warn_on release
-\endcode
-
-The "+=" is used here, because we add our configuration options to any
-that are already present. This is safer than using "=" which replaces
-all options with just those specified.
-
-The \e qt part of the CONFIG line tells \e qmake that the application
-is built using Qt. This means that \e qmake will link against the Qt
-libraries when linking and add in the neccesary include paths for
-compiling.
-
-The \e warn_on part of the CONFIG line tells \e qmake that it should
-set the compiler flags so that warnings are output.
-
-The \e release part of the CONFIG line tells \e qmake that the
-application must be built as a release application. During
-development, programmers may prefer to replace \e release with \e
-debug, which is discussed later.
-
-\omit
-The last line in the project file is the TARGET line:
-\code
- TARGET = hello
-\endcode
-The target line simply specifies what the name of the target should be
-for the application. You shouldn't put an extension here because \e
-qmake will do this for you.
-\endomit
-
-Project files are plain text (i.e. use an editor like notepad, vim
-or xemacs) and must be saved with a '.pro' extension. The name of the
-application's executable will be the same as the project file's name,
-but with an extension appropriate to the platform. For example, a
-project file called 'hello.pro' will produce 'hello.exe' on Windows
-and 'hello' on Unix.
-
-\section1 Generating a makefile
-
-When you have created your project file it is very easy to generate a
-makefile, all you need to do is go to where you have created your
-project file and type:
-
-Makefiles are generated from the '.pro' files like this:
-\code
- qmake -o Makefile hello.pro
-\endcode
-
-For Visual Studio users, \e qmake can also generate '.dsp' files, for
-example:
-\code
- qmake -t vcapp -o hello.dsp hello.pro
-\endcode
diff --git a/qmake/book/qmake-tutorial.leaf b/qmake/book/qmake-tutorial.leaf
deleted file mode 100644
index 49f5f8560..000000000
--- a/qmake/book/qmake-tutorial.leaf
+++ /dev/null
@@ -1,239 +0,0 @@
-\chapter qmake Tutorial
-
-\section1 Introduction to the qmake tutorial
-
-This tutorial teaches you how to use \e qmake. We recommend that
-you read the \e qmake user guide after completing this tutorial.
-
-\section1 Starting off simple
-
-Let's assume that you have just finished a basic implementation of
-your application, and you have created the following files:
-
-\list
-\i hello.cpp
-\i hello.h
-\i main.cpp
-\endlist
-
-You will find these files in \e {qt/qmake/examples/tutorial}. The
-only other thing you know about the setup of the application is that
-it's written in Qt. First, using your favorite plain text editor,
-create a file called \e hello.pro in \e {qt/qmake/tutorial}. The
-first thing you need to do is add the lines that tell \e qmake about
-the source and header files that are part of your development project.
-
-We'll add the source files to the project file first. To do this you
-need to use the SOURCES variable. Just start a new line with \e
-{SOURCES +=} and put hello.cpp after it. You should have something
-like:
-
-\code
- SOURCES += hello.cpp
-\endcode
-
-We repeat this for each source file in the project, until we end up
-with:
-
-\code
- SOURCES += hello.cpp
- SOURCES += main.cpp
-\endcode
-
-If you prefer to use a Make-like syntax, with all the files listed in
-one go you can use the newline escaping like this:
-
-\code
- SOURCES = hello.cpp \
- main.cpp
-\endcode
-
-Now that the source files are listed in the project file, the header
-files must be added. These are added in exactly the same way as source
-files, except that the variable name is HEADERS:
-
-Once you have done this, your project file should look something like
-this:
-\code
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
-\endcode
-
-The target name is set automatically; it is the same as the project
-file, but with the suffix appropriate to the platform. For example, if
-the project file is called 'hello.pro', the target will be 'hello.exe'
-on Windows and 'hello' on Unix. If you want to use a different name
-you can set it in the project file:
-\code
- TARGET = helloworld
-\endcode
-
-The final step is to set the \e CONFIG variable. Since this is a Qt
-application, we need to put 'qt' on the CONFIG line so that \e qmake
-will add the relevant libraries to be linked against and ensure that
-build lines for \e tqmoc and \e tquic are included in the makefile.
-
-The finished project file should look like this:
-\code
- CONFIG += qt
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
-\endcode
-
-You can now use \e qmake to generate a makefile for your application.
-On the command line, in your application directory, type:
-
-\code
- qmake -o Makefile hello.pro
-\endcode
-
-Then type \e make or \e nmake depending on the compiler you use.
-
-\section1 Making an application debuggable
-
-The release version of an application doesn't contain any debugging
-symbols or other debuggin information. During development it is useful
-to produce a debugging version of the application that has the
-relevant information. This is easily achieved by adding 'debug' to the
-CONFIG variable in the project file.
-
-For example:
-\code
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
-\endcode
-
-Use \e qmake as before to generate a makefile and you will be able to
-debug your application.
-
-\section1 Adding platform specific source files
-
-After a few hours of coding, you might have made a start on the
-platform specific part of your application, and decided to keep the
-platform dependent code separate. So you now have two new files to
-include into your project file - \e hellowin.cpp and \e
-hellounix.cpp. We can't just add these to the \e SOURCES
-variable since this will put both files in the makefile. So what we
-need to do here is to use a scope which will be processed depending on
-which platform \e qmake is run on.
-
-A simple scope which will add in the platform dependent file for
-Windows looks like this:
-
-\code
- win32 {
- SOURCES += hellowin.cpp
- }
-\endcode
-
-So if \e qmake is run on Windows, it will add \e hellowin.cpp to the
-list of source files. If \e qmake is run on any other platform, it
-will simply ignore it. Now all that is left to be done is to create a
-scope for the unix dependent file.
-
-When you have done that, your project file should now look
-something like this:
-
-\code
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
- win32 {
- SOURCES += hellowin.cpp
- }
- unix {
- SOURCES += hellounix.cpp
- }
-\endcode
-
-Use \e qmake as before to generate a makefile.
-
-\section1 Stopping qmake if a file doesn't exist
-
-You may not want to create a makefile if a certain file doesn't exist.
-We can check if a file exists by using the exists() function. We can
-stop \e qmake from processing by using the error() function. This
-works in the same way as scopes. Simply replace the scope condition
-with the function. A check for a main.cpp file looks like this:
-
-\code
- !exists( main.cpp ) {
- error( "No main.cpp file found" )
- }
-\endcode
-
-The "!" is used to negate the test, i.e. \c{exists( main.cpp )} is
-true if the file exists and \c{!exists( main.cpp )} is true if the
-file doesn't exist.
-
-\code
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
- win32 {
- SOURCES += hellowin.cpp
- }
- unix {
- SOURCES += hellounix.cpp
- }
- !exists( main.cpp ) {
- error( "No main.cpp file found" )
- }
-\endcode
-
-Use \e qmake as before to generate a makefile. If you rename \e
-main.cpp temporarily, you will see the message and \e qmake will stop
-processing.
-
-\section1 Checking for more than one condition
-
-Suppose you use Windows and you want to be able to see the tqDebug()
-statements when you run your application on the command line. Unless
-you build your application with the console setting, you won't see the
-output. We can easily put \e console on the CONFIG line so that on
-Windows the makefile will have this setting. But let's say that we
-only want to add the CONFIG line if we are running on Windows \e and when
-\e debug is already on the CONFIG line. This requires using two
-nested scopes; just create one scope, then create the other inside
-that one. Put the settings to be processed inside the last scope,
-like this:
-
-\code
- win32 {
- debug {
- CONFIG += console
- }
- }
-\endcode
-
-Nested scopes can be joined together using colons, so the final
-project file looks like this:
-
-\code
- CONFIG += qt debug
- HEADERS += hello.h
- SOURCES += hello.cpp
- SOURCES += main.cpp
- win32 {
- SOURCES += hellowin.cpp
- }
- unix {
- SOURCES += hellounix.cpp
- }
- !exists( main.cpp ) {
- error( "No main.cpp file found" )
- }
- win32:debug {
- CONFIG += console
- }
-\endcode
-
-
-That's it! You have now completed the tutorial for \e qmake, and are
-ready to write project files for your development projects.
diff --git a/qmake/examples/precompile/main.cpp b/qmake/examples/precompile/main.cpp
deleted file mode 100644
index 0c8218040..000000000
--- a/qmake/examples/precompile/main.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-#include
-#include
-#include
-#include "myobject.h"
-#include "mydialog.h"
-
-int main(int argc, char **argv)
-{
- TQApplication app(argc, argv);
-
- MyObject obj;
- MyDialog dia;
- app.setMainWidget( &dia );
- dia.connect( dia.aButton, TQ_SIGNAL(clicked()), TQ_SLOT(close()) );
- dia.show();
-
- return app.exec();
-}
diff --git a/qmake/examples/precompile/mydialog.ui b/qmake/examples/precompile/mydialog.ui
deleted file mode 100644
index 081ddfa87..000000000
--- a/qmake/examples/precompile/mydialog.ui
+++ /dev/null
@@ -1,29 +0,0 @@
-
-MyDialog
-
-
- MyDialog
-
-
- Mach 2!
-
-
-
-
- aLabel
-
-
- Join the life in the fastlane; - PCH enable your project today! -
-
-
-
-
- aButton
-
-
- &Quit
-
-
-
-
-
diff --git a/qmake/examples/precompile/myobject.cpp b/qmake/examples/precompile/myobject.cpp
deleted file mode 100644
index da24e625d..000000000
--- a/qmake/examples/precompile/myobject.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include
-#include
-#include "myobject.h"
-
-MyObject::MyObject()
- : TQObject()
-{
- std::cout << "MyObject::MyObject()\n";
-}
-
-MyObject::~MyObject()
-{
- tqDebug("MyObject::~MyObject()");
-}
diff --git a/qmake/examples/precompile/myobject.h b/qmake/examples/precompile/myobject.h
deleted file mode 100644
index 90c0b865b..000000000
--- a/qmake/examples/precompile/myobject.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#include
-
-class MyObject : public TQObject
-{
-public:
- MyObject();
- ~MyObject();
-};
diff --git a/qmake/examples/precompile/precompile.pro b/qmake/examples/precompile/precompile.pro
deleted file mode 100644
index 1f02d1a17..000000000
--- a/qmake/examples/precompile/precompile.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-#############################################
-#
-# Example for using Precompiled Headers
-#
-#############################################
-TEMPLATE = app
-LANGUAGE = C++
-CONFIG += console precompile_header
-
-# Use Precompiled headers (PCH)
-PRECOMPILED_HEADER = stable.h
-
-HEADERS += stable.h \
- myobject.h
-SOURCES += main.cpp \
- myobject.cpp \
- util.cpp
-FORMS = mydialog.ui
-
diff --git a/qmake/examples/precompile/stable.h b/qmake/examples/precompile/stable.h
deleted file mode 100644
index a62e50179..000000000
--- a/qmake/examples/precompile/stable.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Add C includes here */
-
-#if defined __cplusplus
-/* Add C++ includes here */
-
-# include
-# include
-# include
-# include
-#endif
diff --git a/qmake/examples/precompile/util.cpp b/qmake/examples/precompile/util.cpp
deleted file mode 100644
index 6a1545255..000000000
--- a/qmake/examples/precompile/util.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-void util_function_does_nothing()
-{
- // Nothing here...
- int x = 0;
- ++x;
-}
-
diff --git a/qmake/examples/tutorial/hello.cpp b/qmake/examples/tutorial/hello.cpp
deleted file mode 100644
index 8ab5e5a5a..000000000
--- a/qmake/examples/tutorial/hello.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "hello.h"
-
-MyPushButton::MyPushButton( const TQString& text )
- : TQPushButton( text, 0, "mypushbutton" )
-{
- tqDebug( "My PushButton has been constructed" );
-}
diff --git a/qmake/examples/tutorial/hello.h b/qmake/examples/tutorial/hello.h
deleted file mode 100644
index 47eb7e3ab..000000000
--- a/qmake/examples/tutorial/hello.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#include
-
-class MyPushButton : public TQPushButton
-{
-public:
- MyPushButton( const TQString& );
-};
diff --git a/qmake/examples/tutorial/hellounix.cpp b/qmake/examples/tutorial/hellounix.cpp
deleted file mode 100644
index 0abf10ebf..000000000
--- a/qmake/examples/tutorial/hellounix.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-// This file does nothing, but check your makefile to see if there is a
-// reference to hello_win.cpp...there shouldn't be if qmake is used on X11.
diff --git a/qmake/examples/tutorial/hellowin.cpp b/qmake/examples/tutorial/hellowin.cpp
deleted file mode 100644
index 54c8d5d3a..000000000
--- a/qmake/examples/tutorial/hellowin.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-// This file does nothing, but check your makefile to see if there is a
-// reference to hello_x11.cpp...there shouldn't be if qmake is used on Windows.
diff --git a/qmake/examples/tutorial/main.cpp b/qmake/examples/tutorial/main.cpp
deleted file mode 100644
index a908c9710..000000000
--- a/qmake/examples/tutorial/main.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include
-#include "hello.h"
-
-int main( int argc, char **argv )
-{
- TQApplication a( argc, argv );
-
- MyPushButton* hello = new MyPushButton( "Hello world!" );
- hello->resize( 100, 30 );
-
- a.setMainWidget( hello );
- hello->show();
- return a.exec();
-}
diff --git a/qmake/generators/mac/metrowerks_xml.cpp b/qmake/generators/mac/metrowerks_xml.cpp
deleted file mode 100644
index 83e917bdf..000000000
--- a/qmake/generators/mac/metrowerks_xml.cpp
+++ /dev/null
@@ -1,822 +0,0 @@
-/****************************************************************************
-**
-** Implementation of MetrowerksMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "metrowerks_xml.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-#include
-#if defined(Q_OS_MAC)
-#include
-#include
-#include
-#endif
-
-MetrowerksMakefileGenerator::MetrowerksMakefileGenerator(TQMakeProject *p) : MakefileGenerator(p), init_flag(FALSE)
-{
-
-}
-
-bool
-MetrowerksMakefileGenerator::writeMakefile(TQTextStream &t)
-{
- if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
- /* for now just dump, I need to generated an empty xml or something.. */
- fprintf(stderr, "Project file not generated because all requirements not met:\n\t%s\n",
- var("QMAKE_FAILED_REQUIREMENTS").latin1());
- return TRUE;
- }
-
- if(project->first("TEMPLATE") == "app" ||
- project->first("TEMPLATE") == "lib") {
- return writeMakeParts(t);
- }
- else if(project->first("TEMPLATE") == "subdirs") {
- writeHeader(t);
- tqDebug("Not supported!");
- return TRUE;
- }
- return FALSE;
-}
-
-bool
-MetrowerksMakefileGenerator::writeMakeParts(TQTextStream &t)
-{
- //..grrr.. libs!
- TQStringList extra_objs;
- bool do_libs = TRUE;
- if(project->first("TEMPLATE") == "app")
- extra_objs += project->variables()["QMAKE_CRT_OBJECTS"];
- else if(project->first("TEMPLATE") == "lib" && project->isActiveConfig("staticlib"))
- do_libs = FALSE;
- if(do_libs)
- extra_objs += project->variables()["QMAKE_LIBS"];
- for(TQStringList::Iterator val_it = extra_objs.begin();
- val_it != extra_objs.end(); ++val_it) {
- if((*val_it).startsWith("-L")) {
- TQString dir((*val_it).right((*val_it).length() - 2));
- fixEnvVariables(dir);
- if(project->variables()["DEPENDPATH"].findIndex(dir) == -1 &&
- project->variables()["INCLUDEPATH"].findIndex(dir) == -1)
- project->variables()["INCLUDEPATH"].append(dir);
- } else if((*val_it).startsWith("-l")) {
- TQString lib("lib" + (*val_it).right((*val_it).length() - 2) + "." +
- project->first("QMAKE_EXTENSION_SHLIB"));
- if(project->variables()["LIBRARIES"].findIndex(lib) == -1)
- project->variables()["LIBRARIES"].append(lib);
- } else
- if((*val_it) == "-framework") {
- ++val_it;
- if(val_it == extra_objs.end())
- break;
- TQString frmwrk = (*val_it) + ".framework";
- if(project->variables()["FRAMEWORKS"].findIndex(frmwrk) == -1)
- project->variables()["FRAMEWORKS"].append(frmwrk);
- } else if((*val_it).left(1) != "-") {
- TQString lib=(*val_it);
- int s = lib.findRev('/');
- if(s != -1) {
- TQString dir = lib.left(s);
- lib = lib.right(lib.length() - s - 1);
- fixEnvVariables(dir);
- if(project->variables()["DEPENDPATH"].findIndex(dir) == -1 &&
- project->variables()["INCLUDEPATH"].findIndex(dir) == -1)
- project->variables()["INCLUDEPATH"].append(dir);
- }
- project->variables()["LIBRARIES"].append(lib);
- }
- }
- //let metrowerks find the files & set the files to the type I expect
- TQDict seen(293);
- TQString paths[] = { TQString("SRCMOC"), TQString("FORMS"), TQString("UICDECLS"),
- TQString("UICIMPLS"), TQString("SOURCES"),TQString("HEADERS"),
- TQString::null };
- for(int y = 0; paths[y] != TQString::null; y++) {
- TQStringList &l = project->variables()[paths[y]];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- //establish file types
- seen.insert((*val_it), (void *)1);
- createFork((*val_it)); //the file itself
- TQStringList &d = findDependencies((*val_it)); //depends
- for(TQStringList::Iterator dep_it = d.begin(); dep_it != d.end(); ++dep_it) {
- if(!seen.find((*dep_it))) {
- seen.insert((*dep_it), (void *)1);
- createFork((*dep_it));
- }
- }
- //now chop it
- int s = (*val_it).findRev('/');
- if(s != -1) {
- TQString dir = (*val_it).left(s);
- (*val_it) = (*val_it).right((*val_it).length() - s - 1);
- TQString tmpd=dir, tmpv;
- if(fixifyToMacPath(tmpd, tmpv)) {
- bool add_in = TRUE;
- TQString deps[] = { TQString("DEPENDPATH"),
- TQString("INCLUDEPATH"), TQString::null },
- dd, dv;
- for(int yy = 0; deps[yy] != TQString::null; yy++) {
- TQStringList &l2 = project->variables()[deps[yy]];
- for(TQStringList::Iterator val_it2 = l2.begin();
- val_it2 != l2.end(); ++val_it2) {
- TQString dd= (*val_it2), dv;
- if(!fixifyToMacPath(dd, dv))
- continue;
- if(dd == tmpd && tmpv == dv) {
- add_in = FALSE;
- break;
- }
- }
- }
- if(add_in)
- project->variables()["INCLUDEPATH"].append(dir);
- }
- }
- }
- }
- //need a defines file
- if(!project->isEmpty("DEFINES")) {
- TQString pre_pref = project->first("TARGET_STEM");
- if(project->first("TEMPLATE") == "lib")
- pre_pref += project->isActiveConfig("staticlib") ? "_static" : "_shared";
- project->variables()["CODEWARRIOR_PREFIX_HEADER"].append(pre_pref + "_prefix.h");
- }
-
- TQString xmlfile = findTemplate(project->first("QMAKE_XML_TEMPLATE"));
- TQFile file(xmlfile);
- if(!file.open(IO_ReadOnly )) {
- fprintf(stderr, "Cannot open XML file: %s\n",
- project->first("QMAKE_XML_TEMPLATE").latin1());
- return FALSE;
- }
- TQTextStream xml(&file);
- createFork(Option::output.name());
-
- int rep;
- TQString line;
- while ( !xml.eof() ) {
- line = xml.readLine();
- while((rep = line.find(TQRegExp("\\$\\$[!a-zA-Z0-9_-]*"))) != -1) {
- TQString torep = line.mid(rep, line.find(TQRegExp("[^\\$!a-zA-Z0-9_-]"), rep) - rep);
- TQString variable = torep.right(torep.length()-2);
-
- t << line.left(rep); //output the left side
- line = line.right(line.length() - (rep + torep.length())); //now past the variable
- if(variable == "CODEWARRIOR_HEADERS" || variable == "CODEWARRIOR_SOURCES" ||
- variable == "CODEWARRIOR_LIBRARIES" || variable == "CODEWARRIOR_QPREPROCESS" ||
- variable == "CODEWARRIOR_QPREPROCESSOUT") {
- TQString outcmd=variable.right(variable.length() - variable.findRev('_') - 1);
- TQStringList args;
- if(outcmd == "TQPREPROCESS")
- args << "UICS" << "MOCS";
- else if(outcmd == "TQPREPROCESSOUT")
- args << "SRCMOC" << "UICIMPLS" << "UICDELCS";
- else
- args << outcmd;
- for(TQStringList::Iterator arit = args.begin(); arit != args.end(); ++arit) {
- TQString arg = (*arit);
- TQString kind = "Text";
- if(arg == "LIBRARIES")
- kind = "Library";
- if(!project->variables()[arg].isEmpty()) {
- TQStringList &list = project->variables()[arg];
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString flag;
- if(project->isActiveConfig("debug")) {
- bool debug = TRUE;
- if(outcmd == "TQPREPROCESS") {
- debug = FALSE;
- } else {
- for(TQStringList::Iterator hit = Option::h_ext.begin(); hit != Option::h_ext.end(); ++hit) {
- if((*it).endsWith((*hit))) {
- debug = FALSE;
- break;
- }
- }
- }
- if(debug)
- flag = "Debug";
- }
- t << "\t\t\t\t" << endl
- << "\t\t\t\t\tName" << endl
- << "\t\t\t\t\t" << (*it) << "" << endl
- << "\t\t\t\t\tMacOS" << endl
- << "\t\t\t\t\t" << kind << "" << endl
- << "\t\t\t\t\t" << flag << "" << endl
- << "\t\t\t\t" << endl;
- }
- }
- }
- } else if(variable == "CODEWARRIOR_SOURCES_LINKORDER" ||
- variable == "CODEWARRIOR_HEADERS_LINKORDER" ||
- variable == "CODEWARRIOR_LIBRARIES_LINKORDER" ||
- variable == "CODEWARRIOR_QPREPROCESS_LINKORDER" ||
- variable == "CODEWARRIOR_QPREPROCESSOUT_LINKORDER") {
- TQString outcmd=variable.mid(variable.find('_')+1,
- variable.findRev('_')-(variable.find('_')+1));
- TQStringList args;
- if(outcmd == "TQPREPROCESS")
- args << "UICS" << "MOCS";
- else if(outcmd == "TQPREPROCESSOUT")
- args << "SRCMOC" << "UICIMPLS" << "UICDELCS";
- else
- args << outcmd;
- for(TQStringList::Iterator arit = args.begin(); arit != args.end(); ++arit) {
- TQString arg = (*arit);
- if(!project->variables()[arg].isEmpty()) {
- TQStringList &list = project->variables()[arg];
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- t << "\t\t\t\t" << endl
- << "\t\t\t\t\tName" << endl
- << "\t\t\t\t\t" << (*it) << "" << endl
- << "\t\t\t\t\tMacOS" << endl
- << "\t\t\t\t" << endl;
- }
- }
- }
- } else if(variable == "CODEWARRIOR_HEADERS_GROUP" ||
- variable == "CODEWARRIOR_SOURCES_GROUP" ||
- variable == "CODEWARRIOR_LIBRARIES_GROUP" ||
- variable == "CODEWARRIOR_QPREPROCESS_GROUP" ||
- variable == "CODEWARRIOR_QPREPROCESSOUT_GROUP") {
- TQString outcmd = variable.mid(variable.find('_')+1,
- variable.findRev('_')-(variable.find('_')+1));
- TQStringList args;
- if(outcmd == "TQPREPROCESS")
- args << "UICS" << "MOCS";
- else if(outcmd == "TQPREPROCESSOUT")
- args << "SRCMOC" << "UICIMPLS" << "UICDELCS";
- else
- args << outcmd;
- for(TQStringList::Iterator arit = args.begin(); arit != args.end(); ++arit) {
- TQString arg = (*arit);
- if(!project->variables()[arg].isEmpty()) {
- TQStringList &list = project->variables()[arg];
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- t << "\t\t\t\t" << endl
- << "\t\t\t\t\t" << var("TARGET_STEM") << ""
- << endl
- << "\t\t\t\t\tName" << endl
- << "\t\t\t\t\t" << (*it) << "" << endl
- << "\t\t\t\t\tMacOS" << endl
- << "\t\t\t\t" << endl;
- }
- }
- }
- } else if(variable == "CODEWARRIOR_FRAMEWORKS") {
- if(!project->isEmpty("FRAMEWORKS")) {
- TQStringList &list = project->variables()["FRAMEWORKS"];
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- t << "\t\t\t\t" << endl
- << "\t\t\t\t\t" << endl
- << "\t\t\t\t\t\tName" << endl
- << "\t\t\t\t\t\t" << (*it) << "" << endl
- << "\t\t\t\t\t\tMacOS" << endl
- << "\t\t\t\t\t" << endl
- << "\t\t\t\t" << endl;
- }
- }
- } else if(variable == "CODEWARRIOR_DEPENDPATH" || variable == "CODEWARRIOR_INCLUDEPATH" ||
- variable == "CODEWARRIOR_FRAMEWORKPATH") {
- TQString arg=variable.right(variable.length()-variable.find('_')-1);
- TQStringList list;
- if(arg == "INCLUDEPATH") {
- list = project->variables()[arg];
- list << Option::mkfile::qmakespec;
- list << TQDir::current().currentDirPath();
-
- TQStringList &l = project->variables()["QMAKE_LIBS_PATH"];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- TQString p = (*val_it), v;
- if(!fixifyToMacPath(p, v))
- continue;
-
- t << "\t\t\t\t\t" << endl
- << "\t\t\t\t\t\tSearchPath" << endl
- << "\t\t\t\t\t\t\tPath"
- << "" << p << "" << endl
- << "\t\t\t\t\t\t\tPathFormatMacOS" << endl
- << "\t\t\t\t\t\t\tPathRootCodeWarrior" << endl
- << "\t\t\t\t\t\t" << endl
- << "\t\t\t\t\t\tRecursivetrue" << endl
- << "\t\t\t\t\t\tHostFlagsAll" << endl
- << "\t\t\t\t\t" << endl;
- }
- } else if(variable == "DEPENDPATH") {
- TQStringList &l = project->variables()[arg];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it)
- {
- //apparently tmake used colon separation...
- TQStringList damn = TQStringList::split(':', (*val_it));
- if(!damn.isEmpty())
- list += damn;
- else
- list.append((*val_it));
- }
- } else {
- list = project->variables()[arg];
- }
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString p = (*it), v, recursive = "false", framework = "false";
- if(p.startsWith("recursive--")) {
- p = p.right(p.length() - 11);
- recursive = "true";
- }
- if(!fixifyToMacPath(p, v))
- continue;
- if(arg == "FRAMEWORKPATH")
- framework = "true";
-
- t << "\t\t\t\t\t" << endl
- << "\t\t\t\t\t\tSearchPath" << endl
- << "\t\t\t\t\t\t\tPath"
- << "" << p << "" << endl
- << "\t\t\t\t\t\t\tPathFormatMacOS" << endl
- << "\t\t\t\t\t\t\tPathRoot" << v << "" << endl
- << "\t\t\t\t\t\t" << endl
- << "\t\t\t\t\t\tRecursive" << recursive << "" << endl
- << "\t\t\t\t\t\tFrameworkPath" << framework << "" << endl
- << "\t\t\t\t\t\tHostFlagsAll" << endl
- << "\t\t\t\t\t" << endl;
- }
- } else if(variable == "CODEWARRIOR_WARNING" || variable == "!CODEWARRIOR_WARNING") {
- bool b = ((!project->isActiveConfig("warn_off")) &&
- project->isActiveConfig("warn_on"));
- if(variable.startsWith("!"))
- b = !b;
- t << (int)b;
- } else if(variable == "CODEWARRIOR_TEMPLATE") {
- if(project->first("TEMPLATE") == "app" ) {
- t << "Executable";
- } else if(project->first("TEMPLATE") == "lib") {
- if(project->isActiveConfig("staticlib"))
- t << "Library";
- else
- t << "SharedLibrary";
- }
- } else if(variable == "CODEWARRIOR_OUTPUT_DIR") {
- TQString outdir = "{Project}/", volume;
- if(!project->isEmpty("DESTDIR"))
- outdir = project->first("DESTDIR");
- if(project->first("TEMPLATE") == "app" && !project->isActiveConfig("console"))
- outdir += var("TARGET") + ".app/Contents/MacOS/";
- if(fixifyToMacPath(outdir, volume, FALSE)) {
- t << "\t\t\tPath" << outdir << ""
- << endl
- << "\t\t\tPathFormatMacOS" << endl
- << "\t\t\tPathRoot" << volume << ""
- << endl;
- }
- } else if(variable == "CODEWARRIOR_PACKAGER_PANEL") {
- if(project->first("TEMPLATE") == "app" && !project->isActiveConfig("console")) {
- TQString outdir = "{Project}/", volume;
- if(!project->isEmpty("DESTDIR"))
- outdir = project->first("DESTDIR");
- outdir += var("TARGET") + ".app";
- if(fixifyToMacPath(outdir, volume, FALSE)) {
- t << "\t\tMWMacOSPackager_UsePackager"
- << "1" << "\n"
- << "\t\tMWMacOSPackager_FolderToPackage" << "\n"
- << "\t\t\tPath" << outdir
- << "" << "\n"
- << "\t\t\tPathFormatMacOS"
- << "\n"
- << "\t\t\tPathRoot" << volume
- << "" << "\n"
- << "\t\t" << "\n"
- << "\t\tMWMacOSPackager_CreateClassicAlias"
- << "0" << "\n"
- << "\t\tMWMacOSPackager_ClassicAliasMethod"
- << "UseTargetOutput" << "\n"
- << "\t\tMWMacOSPackager_ClassicAliasPath"
- << "" << "\n"
- << "\t\tMWMacOSPackager_CreatePkgInfo"
- << "1" << "\n"
- << "\t\tMWMacOSPackager_PkgCreatorType"
- << "CUTE" << "\n"
- << "\t\tMWMacOSPackager_PkgFileType"
- << "APPL" << endl;
- }
- }
- } else if(variable == "CODEWARRIOR_FILETYPE") {
- if(project->first("TEMPLATE") == "lib")
- t << "MYDL";
- else
- t << "MEXE";
- } else if(variable == "CODEWARRIOR_TQTDIR") {
- t << getenv("TQTDIR");
- } else if(variable == "CODEWARRIOR_CACHEMODDATES") {
- t << "true";
- } else {
- t << var(variable);
- }
- }
- t << line << endl;
- }
- t << endl;
- file.close();
-
- if(tqmocAware()) {
- TQString mocs = project->first("MOCS");
- TQFile mocfile(mocs);
- if(!mocfile.open(IO_WriteOnly)) {
- fprintf(stderr, "Cannot open MOCS file: %s\n", mocs.latin1());
- } else {
- createFork(mocs);
- TQTextStream mocs(&mocfile);
- TQStringList &list = project->variables()["SRCMOC"];
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString src = findMocSource((*it));
- if(src.findRev('/') != -1)
- src = src.right(src.length() - src.findRev('/') - 1);
- mocs << src << endl;
- }
- mocfile.close();
- }
- }
-
- if(!project->isEmpty("FORMS")) {
- TQString uics = project->first("UICS");
- TQFile uicfile(uics);
- if(!uicfile.open(IO_WriteOnly)) {
- fprintf(stderr, "Cannot open UICS file: %s\n", uics.latin1());
- } else {
- createFork(uics);
- TQTextStream uics(&uicfile);
- TQStringList &list = project->variables()["FORMS"];
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString ui = (*it);
- if(ui.findRev('/') != -1)
- ui = ui.right(ui.length() - ui.findRev('/') - 1);
- uics << ui << endl;
- }
- uicfile.close();
- }
- }
-
- if(!project->isEmpty("CODEWARRIOR_PREFIX_HEADER")) {
- TQFile prefixfile(project->first("CODEWARRIOR_PREFIX_HEADER"));
- if(!prefixfile.open(IO_WriteOnly)) {
- fprintf(stderr, "Cannot open PREFIX file: %s\n", prefixfile.name().latin1());
- } else {
- createFork(project->first("CODEWARRIOR_PREFIX_HEADER"));
- TQTextStream prefix(&prefixfile);
- TQStringList &list = project->variables()["DEFINES"];
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- if((*it).find('=') != -1) {
- int x = (*it).find('=');
- prefix << "#define " << (*it).left(x) << " " << (*it).right((*it).length() - x - 1) << endl;
- } else {
- prefix << "#define " << (*it) << endl;
- }
- }
- prefixfile.close();
- }
- }
- return TRUE;
-}
-
-
-
-void
-MetrowerksMakefileGenerator::init()
-{
- if(init_flag)
- return;
- init_flag = TRUE;
-
- if ( project->isEmpty("QMAKE_XML_TEMPLATE") )
- project->variables()["QMAKE_XML_TEMPLATE"].append("mwerkstmpl.xml");
-
- TQStringList &configs = project->variables()["CONFIG"];
- if(project->isActiveConfig("qt")) {
- if(configs.findIndex("moc")) configs.append("moc");
- if ( !( (project->first("TARGET") == "qt") || (project->first("TARGET") == "qte") ||
- (project->first("TARGET") == "tqt-mt") ) )
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];
- if(configs.findIndex("moc"))
- configs.append("moc");
- if ( !project->isActiveConfig("debug") )
- project->variables()["DEFINES"].append("TQT_NO_DEBUG");
- }
-
- //version handling
- if(project->variables()["VERSION"].isEmpty())
- project->variables()["VERSION"].append("1.0." +
- (project->isEmpty("VER_PAT") ? TQString("0") :
- project->first("VER_PAT")) );
- TQStringList ver = TQStringList::split('.', project->first("VERSION"));
- ver << "0" << "0"; //make sure there are three
- project->variables()["VER_MAJ"].append(ver[0]);
- project->variables()["VER_MIN"].append(ver[1]);
- project->variables()["VER_PAT"].append(ver[2]);
-
- if( !project->isEmpty("LIBS") )
- project->variables()["QMAKE_LIBS"] += project->variables()["LIBS"];
- if( project->variables()["QMAKE_EXTENSION_SHLIB"].isEmpty() )
- project->variables()["QMAKE_EXTENSION_SHLIB"].append( "dylib" );
-
- if ( project->isActiveConfig("moc") ) {
- TQString mocfile = project->first("TARGET");
- if(project->first("TEMPLATE") == "lib")
- mocfile += project->isActiveConfig("staticlib") ? "_static" : "_shared";
- project->variables()["MOCS"].append(mocfile + ".mocs");
- setTQMocAware(TRUE);
- }
- if(!project->isEmpty("FORMS")) {
- TQString uicfile = project->first("TARGET");
- if(project->first("TEMPLATE") == "lib")
- uicfile += project->isActiveConfig("staticlib") ? "_static" : "_shared";
- project->variables()["UICS"].append(uicfile + ".uics");
- }
- if(project->isEmpty("DESTDIR"))
- project->variables()["DESTDIR"].append(TQDir::currentDirPath());
- MakefileGenerator::init();
-
- if ( project->isActiveConfig("opengl") ) {
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_OPENGL"];
- if ( (project->first("TARGET") == "qt") || (project->first("TARGET") == "qte") ||
- (project->first("TARGET") == "tqt-mt") )
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL_QT"];
- else
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];
- }
-
- if(project->isActiveConfig("qt"))
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQT"];
- if(project->isEmpty("FRAMEWORKPATH"))
- project->variables()["FRAMEWORKPATH"].append("/System/Library/Frameworks/");
-
- //set the target up
- project->variables()["TARGET_STEM"] = project->variables()["TARGET"];
- if(project->first("TEMPLATE") == "lib") {
- if(project->isActiveConfig("staticlib"))
- project->variables()["TARGET"].first() = "lib" + project->first("TARGET") + ".lib";
- else
- project->variables()["TARGET"].first() = "lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB");
-
- project->variables()["CODEWARRIOR_VERSION"].append(project->first("VER_MAJ") +
- project->first("VER_MIN") +
- project->first("VER_PAT"));
- } else {
- project->variables()["CODEWARRIOR_VERSION"].append("0");
- if(project->isEmpty("QMAKE_ENTRYPOINT"))
- project->variables()["QMAKE_ENTRYPOINT"].append("start");
- project->variables()["CODEWARRIOR_ENTRYPOINT"].append(
- project->first("QMAKE_ENTRYPOINT"));
- }
-}
-
-
-TQString
-MetrowerksMakefileGenerator::findTemplate(const TQString &file)
-{
- TQString ret;
- if(!TQFile::exists(ret = file) &&
- !TQFile::exists((ret = Option::mkfile::qmakespec + TQDir::separator() + file)) &&
- !TQFile::exists((ret = TQString(getenv("TQTDIR")) + "/mkspecs/mac-mwerks/" + file)) &&
- !TQFile::exists((ret = (TQString(getenv("HOME")) + "/.tmake/" + file))))
- return "";
- return ret;
-}
-
-bool
-MetrowerksMakefileGenerator::createFork(const TQString &f)
-{
-#if defined(Q_OS_MACX)
- FSRef fref;
- FSSpec fileSpec;
- if(TQFile::exists(f)) {
- mode_t perms = 0;
- {
- struct stat s;
- stat(f.latin1(), &s);
- if(!(s.st_mode & S_IWUSR)) {
- perms = s.st_mode;
- chmod(f.latin1(), perms | S_IWUSR);
- }
- }
- FILE *o = fopen(f.latin1(), "a");
- if(!o)
- return FALSE;
- if(FSPathMakeRef((const UInt8 *)f.latin1(), &fref, NULL) == noErr) {
- if(FSGetCatalogInfo(&fref, kFSCatInfoNone, NULL, NULL, &fileSpec, NULL) == noErr)
- FSpCreateResFile(&fileSpec, 'CUTE', 'TEXT', smSystemScript);
- else
- tqDebug("bogus %d", __LINE__);
- } else
- tqDebug("bogus %d", __LINE__);
- fclose(o);
- if(perms)
- chmod(f.latin1(), perms);
- }
-#else
- Q_UNUSED(f)
-#endif
- return TRUE;
-}
-
-bool
-MetrowerksMakefileGenerator::fixifyToMacPath(TQString &p, TQString &v, bool )
-{
- v = "Absolute";
- if(p.find(':') != -1) //guess its macish already
- return TRUE;
-
- static TQString st_volume;
- if(st_volume.isEmpty()) {
- st_volume = var("QMAKE_VOLUMENAME");
-#if defined(Q_OS_MACX)
- if(st_volume.isEmpty()) {
- uchar foo[512];
- HVolumeParam pb;
- memset(&pb, '\0', sizeof(pb));
- pb.ioVRefNum = 0;
- pb.ioNamePtr = foo;
- if(PBHGetVInfoSync((HParmBlkPtr)&pb) == noErr) {
- int len = foo[0];
- memcpy(foo,foo+1, len);
- foo[len] = '\0';
- st_volume = (char *)foo;
- }
- }
-#endif
- }
- TQString volume = st_volume;
-
- fixEnvVariables(p);
- if(p.startsWith("\"") && p.endsWith("\""))
- p = p.mid(1, p.length() - 2);
- if(p.isEmpty())
- return FALSE;
- if(!p.endsWith("/"))
- p += "/";
- if(TQDir::isRelativePath(p)) {
- if(p.startsWith("{")) {
- int eoc = p.find('}');
- if(eoc == -1)
- return FALSE;
- volume = p.mid(1, eoc - 1);
- p = p.right(p.length() - eoc - 1);
- } else {
- TQFileInfo fi(p);
- if(fi.convertToAbs()) //strange
- return FALSE;
- p = fi.filePath();
- }
- }
- p = TQDir::cleanDirPath(p);
- if(!volume.isEmpty())
- v = volume;
- p.replace("/", ":");
- if(p.right(1) != ":")
- p += ':';
- return TRUE;
-}
-
-void
-MetrowerksMakefileGenerator::processPrlFiles()
-{
- TQPtrList libdirs;
- libdirs.setAutoDelete(TRUE);
- const TQString lflags[] = { "QMAKE_LIBS", TQString::null };
- for(int i = 0; !lflags[i].isNull(); i++) {
- for(bool ret = FALSE; TRUE; ret = FALSE) {
- TQStringList l_out;
- TQStringList &l = project->variables()[lflags[i]];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString opt = (*it);
- if(opt.startsWith("-")) {
- if(opt.startsWith("-L")) {
- TQString r = opt.right(opt.length() - 2), l = r;
- fixEnvVariables(l);
- libdirs.append(new MakefileDependDir(r.replace( "\"", ""),
- l.replace( "\"", "")));
- } else if(opt.left(2) == "-l") {
- TQString lib = opt.right(opt.length() - 2), prl;
- for(MakefileDependDir *mdd = libdirs.first(); mdd; mdd = libdirs.next() ) {
- prl = mdd->local_dir + Option::dir_sep + "lib" + lib;
- if(processPrlFile(prl)) {
- if(prl.startsWith(mdd->local_dir))
- prl.replace(0, mdd->local_dir.length(), mdd->real_dir);
- TQRegExp reg("^.*lib(" + lib + "[^.]*)\\." +
- project->first("QMAKE_EXTENSION_SHLIB") + "$");
- if(reg.exactMatch(prl))
- prl = "-l" + reg.cap(1);
- opt = prl;
- ret = TRUE;
- break;
- }
- }
- } else if(opt == "-framework") {
- l_out.append(opt);
- ++it;
- opt = (*it);
- TQString prl = "/System/Library/Frameworks/" + opt +
- ".framework/" + opt;
- if(processPrlFile(prl))
- ret = TRUE;
- }
- if(!opt.isEmpty())
- l_out.append(opt);
- } else {
- if(processPrlFile(opt))
- ret = TRUE;
- if(!opt.isEmpty())
- l_out.append(opt);
- }
- }
- if(ret)
- l = l_out;
- else
- break;
- }
- }
-}
-
-void
-MetrowerksMakefileGenerator::processPrlVariable(const TQString &var, const TQStringList &l)
-{
- if(var == "QMAKE_PRL_LIBS") {
- TQStringList &out = project->variables()["QMAKE_LIBS"];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- bool append = TRUE;
- if((*it).startsWith("-")) {
- if((*it).startsWith("-l") || (*it).startsWith("-L")) {
- append = out.findIndex((*it)) == -1;
- } else if((*it).startsWith("-framework")) {
- ++it;
- for(TQStringList::ConstIterator outit = out.begin();
- outit != out.end(); ++it) {
- if((*outit) == "-framework") {
- ++outit;
- if((*outit) == (*it)) {
- append = FALSE;
- break;
- }
- }
- }
- }
- } else if(TQFile::exists((*it))) {
- append = out.findIndex((*it));
- }
- if(append)
- out.append((*it));
- }
- } else {
- MakefileGenerator::processPrlVariable(var, l);
- }
-}
-
-
-bool
-MetrowerksMakefileGenerator::openOutput(TQFile &file) const
-{
- TQString outdir;
- if(!file.name().isEmpty()) {
- TQFileInfo fi(file);
- if(fi.isDir())
- outdir = file.name() + TQDir::separator();
- }
- if(!outdir.isEmpty() || file.name().isEmpty())
- file.setName(outdir + project->first("TARGET") + ".xml");
- return MakefileGenerator::openOutput(file);
-}
diff --git a/qmake/generators/mac/metrowerks_xml.h b/qmake/generators/mac/metrowerks_xml.h
deleted file mode 100644
index 60c0321ae..000000000
--- a/qmake/generators/mac/metrowerks_xml.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Definition of MetrowerksMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __METROWERKS_XML_H__
-#define __METROWERKS_XML_H__
-
-#include "makefile.h"
-
-class MetrowerksMakefileGenerator : public MakefileGenerator
-{
- bool createFork(const TQString &f);
- bool fixifyToMacPath(TQString &c, TQString &v, bool exists=TRUE);
-
- bool init_flag;
-
- bool writeMakeParts(TQTextStream &);
- bool writeSubDirs(TQTextStream &);
-
- bool writeMakefile(TQTextStream &);
- TQString findTemplate(const TQString &file);
- void init();
-public:
- MetrowerksMakefileGenerator(TQMakeProject *p);
- ~MetrowerksMakefileGenerator();
-
- bool openOutput(TQFile &file) const;
-protected:
- virtual void processPrlFiles();
- virtual void processPrlVariable(const TQString &var, const TQStringList &l);
- virtual bool doDepends() const { return FALSE; } //never necesary
-};
-
-inline MetrowerksMakefileGenerator::~MetrowerksMakefileGenerator()
-{ }
-
-#endif /* __METROWERKS_XML_H__ */
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
deleted file mode 100644
index 691dc4306..000000000
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ /dev/null
@@ -1,1428 +0,0 @@
-/****************************************************************************
-**
-** Implementation of ProjectBuilderMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "pbuilder_pbx.h"
-#include "option.h"
-#include "meta.h"
-#include
-#include
-#include
-#include
-#include
-#include "qtmd5.h"
-#ifdef Q_OS_UNIX
-# include
-# include
-#endif
-
-// Note: this is fairly hacky, but it does the job...
-
-ProjectBuilderMakefileGenerator::ProjectBuilderMakefileGenerator(TQMakeProject *p) : UnixMakefileGenerator(p)
-{
-
-}
-
-bool
-ProjectBuilderMakefileGenerator::writeMakefile(TQTextStream &t)
-{
- if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
- /* for now just dump, I need to generated an empty xml or something.. */
- fprintf(stderr, "Project file not generated because all requirements not met:\n\t%s\n",
- var("QMAKE_FAILED_REQUIREMENTS").latin1());
- return TRUE;
- }
-
- project->variables()["MAKEFILE"].clear();
- project->variables()["MAKEFILE"].append("Makefile");
- if(project->first("TEMPLATE") == "app" || project->first("TEMPLATE") == "lib")
- return writeMakeParts(t);
- else if(project->first("TEMPLATE") == "subdirs")
- return writeSubdirs(t, FALSE);
- return FALSE;
-}
-
-bool
-ProjectBuilderMakefileGenerator::writeSubdirs(TQTextStream &t, bool direct)
-{
- TQString mkwrap = fileFixify(pbx_dir + Option::dir_sep + ".." + Option::dir_sep + project->first("MAKEFILE"),
- TQDir::currentDirPath());
- TQFile mkwrapf(mkwrap);
- if(mkwrapf.open(IO_WriteOnly | IO_Translate)) {
- debug_msg(1, "pbuilder: Creating file: %s", mkwrap.latin1());
- TQTextStream mkwrapt(&mkwrapf);
- UnixMakefileGenerator::writeSubdirs(mkwrapt, direct);
- }
-
- //HEADER
- const int pbVersion = pbuilderVersion();
- t << "// !$*UTF8*$!" << "\n"
- << "{" << "\n"
- << "\t" << "archiveVersion = 1;" << "\n"
- << "\t" << "classes = {" << "\n" << "\t" << "};" << "\n"
- << "\t" << "objectVersion = " << pbVersion << ";" << "\n"
- << "\t" << "objects = {" << endl;
-
- //SUBDIRS
- TQStringList subdirs = project->variables()["SUBDIRS"];
- TQString oldpwd = TQDir::currentDirPath();
- TQMap groups;
- for(TQStringList::Iterator it = subdirs.begin(); it != subdirs.end(); ++it) {
- TQFileInfo fi(Option::fixPathToLocalOS((*it), TRUE));
- if(fi.exists()) {
- if(fi.isDir()) {
- TQString profile = (*it);
- if(!profile.endsWith(Option::dir_sep))
- profile += Option::dir_sep;
- profile += fi.baseName() + ".pro";
- subdirs.append(profile);
- } else {
- TQMakeProject tmp_proj;
- TQString dir = fi.dirPath(), fn = fi.fileName();
- if(!dir.isEmpty()) {
- if(!TQDir::setCurrent(dir))
- fprintf(stderr, "Cannot find directory: %s\n", dir.latin1());
- }
- if(tmp_proj.read(fn, oldpwd)) {
- if(Option::debug_level) {
- TQMap &vars = tmp_proj.variables();
- for(TQMap::Iterator it = vars.begin();
- it != vars.end(); ++it) {
- if(it.key().left(1) != "." && !it.data().isEmpty())
- debug_msg(1, "%s: %s === %s", fn.latin1(), it.key().latin1(),
- it.data().join(" :: ").latin1());
- }
- }
- if(tmp_proj.first("TEMPLATE") == "subdirs") {
- subdirs += fileFixify(tmp_proj.variables()["SUBDIRS"]);
- } else if(tmp_proj.first("TEMPLATE") == "app" || tmp_proj.first("TEMPLATE") == "lib") {
- TQString pbxproj = TQDir::currentDirPath() + Option::dir_sep + tmp_proj.first("TARGET") + projectSuffix();
- if(!TQFile::exists(pbxproj)) {
- warn_msg(WarnLogic, "Ignored (not found) '%s'", pbxproj.latin1());
- goto nextfile; // # Dirty!
- }
- project->variables()["QMAKE_PBX_SUBDIRS"] += pbxproj;
- //PROJECTREF
- {
- bool in_root = TRUE;
- TQString name = TQDir::currentDirPath();
- TQString project_key = keyFor(pbxproj + "_PROJECTREF");
- if(project->isActiveConfig("flat")) {
- TQString flat_file = fileFixify(name, oldpwd, Option::output_dir, TRUE);
- if(flat_file.find(Option::dir_sep) != -1) {
- TQStringList dirs = TQStringList::split(Option::dir_sep, flat_file);
- name = dirs.back();
- }
- } else {
- TQString flat_file = fileFixify(name, oldpwd, Option::output_dir, TRUE);
- if(TQDir::isRelativePath(flat_file) && flat_file.find(Option::dir_sep) != -1) {
- TQString last_grp("QMAKE_PBX_HEIR_GROUP");
- TQStringList dirs = TQStringList::split(Option::dir_sep, flat_file);
- name = dirs.back();
- for(TQStringList::Iterator dir_it = dirs.begin(); dir_it != dirs.end(); ++dir_it) {
- TQString new_grp(last_grp + Option::dir_sep + (*dir_it)), new_grp_key(keyFor(new_grp));
- if(dir_it == dirs.begin()) {
- if(!groups.contains(new_grp))
- project->variables()["QMAKE_PBX_GROUPS"].append(new_grp_key);
- } else {
- if(!groups[last_grp].contains(new_grp_key))
- groups[last_grp] += new_grp_key;
- }
- last_grp = new_grp;
- }
- groups[last_grp] += project_key;
- in_root = FALSE;
- }
- }
- if(in_root)
- project->variables()["QMAKE_PBX_GROUPS"] += project_key;
- t << "\t\t" << project_key << " = {" << "\n"
- << "\t\t\t" << "isa = PBXFileReference;" << "\n"
- << "\t\t\t" << "name = " << tmp_proj.first("TARGET") << ";" << "\n"
- << "\t\t\t" << "path = " << pbxproj << ";" << "\n"
- << "\t\t\t" << "refType = 0;" << "\n"
- << "\t\t\t" << "sourceTree = \"\";" << "\n"
- << "\t\t" << "};" << "\n";
- //PRODUCTGROUP
- t << "\t\t" << keyFor(pbxproj + "_PRODUCTGROUP") << " = {" << "\n"
- << "\t\t\t" << "children = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXGroup;" << "\n"
- << "\t\t\t" << "name = Products;" << "\n"
- << "\t\t\t" << "refType = 4;" << "\n"
- << "\t\t\t" << "sourceTree = \"\";" << "\n"
- << "\t\t" << "};" << "\n";
- }
- }
- }
-nextfile:
- TQDir::setCurrent(oldpwd);
- }
- }
- }
- for(TQMap::Iterator grp_it = groups.begin(); grp_it != groups.end(); ++grp_it) {
- t << "\t\t" << keyFor(grp_it.key()) << " = {" << "\n"
- << "\t\t\t" << "isa = PBXGroup;" << "\n"
- << "\t\t\t" << "children = (" << "\n"
- << valGlue(grp_it.data(), "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "name = \"" << grp_it.key().section(Option::dir_sep, -1) << "\";" << "\n"
- << "\t\t\t" << "refType = 4;" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
- //DUMP EVERYTHING THAT TIES THE ABOVE TOGETHER
- //BUILDSTYLE
- TQString active_buildstyle;
-#if 0
- for(int as_release = 0; as_release < 2; as_release++)
-#else
- bool as_release = !project->isActiveConfig("debug");
-#endif
- {
- TQMap settings;
- settings.insert("COPY_PHASE_STRIP", (as_release ? "YES" : "NO"));
- if(as_release)
- settings.insert("GCC_GENERATE_DEBUGGING_SYMBOLS", "NO");
- TQString name;
- if(pbVersion >= 42)
- name = (as_release ? "Release" : "Debug");
- else
- name = (as_release ? "Deployment" : "Development");
-
- if(pbVersion >= 42) {
- TQString key = keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_" + name);
- project->variables()["QMAKE_SUBDIR_PBX_BUILDCONFIGS"].append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "isa = XCBuildConfiguration;" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n";
- for(TQMap::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)
- t << "\t\t\t\t" << set_it.key() << " = \"" << set_it.data() << "\";\n";
- t << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "name = " << name << ";" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
- TQString key = keyFor("QMAKE_SUBDIR_PBX_BUILDSTYLE_" + name);
- if(project->isActiveConfig("debug") != (bool)as_release) {
- project->variables()["QMAKE_SUBDIR_PBX_BUILDSTYLES"].append(key);
- active_buildstyle = name;
- } else if(pbVersion >= 42) {
- project->variables()["QMAKE_SUBDIR_PBX_BUILDSTYLES"].append(key);
- }
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "buildRules = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n";
- for(TQMap::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)
- t << "\t\t\t\t" << set_it.key() << " = \"" << set_it.data() << "\";\n";
- t << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "isa = PBXBuildStyle;" << "\n"
- << "\t\t\t" << "name = " << name << ";" << "\n"
- << "\t\t" << "};" << "\n";
- }
- if(pbVersion >= 42) {
- t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST") << " = {" << "\n"
- << "\t\t\t" << "isa = XCConfigurationList;" << "\n"
- << "\t\t\t" << "buildConfigurations = (" << "\n"
- << varGlue("QMAKE_SUBDIR_PBX_BUILDCONFIGS", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "defaultConfigurationIsVisible = 0;" << "\n"
- << "\t\t\t" << "defaultConfigurationIsName = " << active_buildstyle << ";" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
-#ifdef GENERATE_AGGREGRATE_SUBDIR
- //target
- t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_AGGREGATE_TARGET") << " = {" << "\n"
- << "\t\t\t" << "buidPhases = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n"
- << "\t\t\t\t" << "PRODUCT_NAME = " << project->variables()["TARGET"].first() << ";" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "dependencies = (" << "\n";
- {
- const TQStringList &qmake_subdirs = project->variables()["QMAKE_PBX_SUBDIRS"];
- for(int i = 0; i < qmake_subdirs.count(); i++)
- t << "\t\t\t\t" << keyFor(qmake_subdirs[i] + "_TARGETREF") << "," << "\n";
- }
- t << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXAggregateTarget;" << "\n"
- << "\t\t\t" << "name = " << project->variables()["TARGET"].first() << ";" << "\n"
- << "\t\t\t" << "productName = " << project->variables()["TARGET"].first() << ";" << "\n"
- << "\t\t" << "};" << "\n";
-#endif
-
- //ROOT_GROUP
- t << "\t\t" << keyFor("QMAKE_PBX_ROOT_GROUP") << " = {" << "\n"
- << "\t\t\t" << "children = (" << "\n"
- << varGlue("QMAKE_PBX_GROUPS", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXGroup;" << "\n"
- << "\t\t\t" << "refType = 4;" << "\n"
- << "\t\t\t" << "sourceTree = \"\";" << "\n"
- << "\t\t" << "};" << "\n";
-
- //ROOT
- t << "\t\t" << keyFor("QMAKE_PBX_ROOT") << " = {" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "buildStyles = (" << "\n"
- << varGlue("QMAKE_PBX_BUILDSTYLES", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXProject;" << "\n"
- << "\t\t\t" << "mainGroup = " << keyFor("QMAKE_PBX_ROOT_GROUP") << ";" << "\n"
- << "\t\t\t" << "projectDirPath = \"\";" << "\n";
- if(pbVersion >= 42)
- t << "\t\t\t" << "buildConfigurationList = " << keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST") << ";" << "\n";
- t << "\t\t\t" << "projectReferences = (" << "\n";
- {
- TQStringList &libdirs = project->variables()["QMAKE_PBX_SUBDIRS"];
- for(TQStringList::Iterator it = libdirs.begin(); it != libdirs.end(); ++it)
- t << "\t\t\t\t" << "{" << "\n"
- << "\t\t\t\t\t" << "ProductGroup = " << keyFor((*it) + "_PRODUCTGROUP") << ";" << "\n"
- << "\t\t\t\t\t" << "ProjectRef = " << keyFor((*it) + "_PROJECTREF") << ";" << "\n"
- << "\t\t\t\t" << "}," << "\n";
- }
- t << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "targets = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t" << "};" << "\n";
-
- //FOOTER
- t << "\t" << "};" << "\n"
- << "\t" << "rootObject = " << keyFor("QMAKE_PBX_ROOT") << ";" << "\n"
- << "}" << endl;
-
- return TRUE;
-}
-
-bool
-ProjectBuilderMakefileGenerator::writeMakeParts(TQTextStream &t)
-{
- int i;
- TQStringList tmp;
- bool did_preprocess = FALSE;
-
- //HEADER
- const int pbVersion = pbuilderVersion();
- t << "// !$*UTF8*$!" << "\n"
- << "{" << "\n"
- << "\t" << "archiveVersion = 1;" << "\n"
- << "\t" << "classes = {" << "\n" << "\t" << "};" << "\n"
- << "\t" << "objectVersion = " << pbVersion << ";" << "\n"
- << "\t" << "objects = {" << endl;
-
- //MAKE QMAKE equivelant
- if(!project->isActiveConfig("no_autoqmake") && project->projectFile() != "(stdin)") {
- TQString mkfile = pbx_dir + Option::dir_sep + "qt_makeqmake.mak";
- TQFile mkf(mkfile);
- if(mkf.open(IO_WriteOnly | IO_Translate)) {
- debug_msg(1, "pbuilder: Creating file: %s", mkfile.latin1());
- TQTextStream mkt(&mkf);
- writeHeader(mkt);
- mkt << "QMAKE = " <<
- (project->isEmpty("QMAKE_QMAKE") ? TQString("$(TQTDIR)/bin/tqmake") :
- var("QMAKE_QMAKE")) << endl;
- writeMakeQmake(mkt);
- mkf.close();
- }
- TQString phase_key = keyFor("QMAKE_PBX_MAKEQMAKE_BUILDPHASE");
- mkfile = fileFixify(mkfile, TQDir::currentDirPath());
- project->variables()["QMAKE_PBX_PRESCRIPT_BUILDPHASES"].append(phase_key);
- t << "\t\t" << phase_key << " = {" << "\n"
- << "\t\t\t" << "buildActionMask = 2147483647;" << "\n"
- << "\t\t\t" << "files = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "generatedFileNames = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXShellScriptBuildPhase;" << "\n"
- << "\t\t\t" << "name = \"TQt Qmake\";" << "\n"
- << "\t\t\t" << "neededFileNames = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "shellPath = /bin/sh;" << "\n"
- << "\t\t\t" << "shellScript = \"make -C " << TQDir::currentDirPath() <<
- " -f " << mkfile << "\";" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
- //DUMP SOURCES
- TQMap groups;
- TQString srcs[] = { "HEADERS", "SOURCES", "SRCMOC", "UICIMPLS", "QMAKE_IMAGE_COLLECTION",
- "FORMS", "QMAKE_INTERNAL_INCLUDED_FILES", TQString::null };
- for(i = 0; !srcs[i].isNull(); i++) {
- tmp = project->variables()[srcs[i]];
- if(srcs[i] == "QMAKE_INTERNAL_INCLUDED_FILES") {
- TQString pfile = project->projectFile();
- if(pfile != "(stdin)")
- tmp.prepend(pfile);
- }
- TQStringList &src_list = project->variables()["QMAKE_PBX_" + srcs[i]];
- TQStringList &root_group_list = project->variables()["QMAKE_PBX_GROUPS"];
-
- //hard coded groups..
- TQString src_group;
- if(srcs[i] == "SOURCES")
- src_group = "Sources";
- else if(srcs[i] == "HEADERS")
- src_group = "Headers";
- else if(srcs[i] == "SRCMOC")
- src_group = "Sources [moc]";
- else if(srcs[i] == "UICIMPLS" || srcs[i] == "FORMS")
- src_group = "Sources [tquic]";
- else if(srcs[i] == "QMAKE_IMAGE_COLLECTION")
- src_group = "Sources [images]";
- else if(srcs[i] == "QMAKE_INTERNAL_INCLUDED_FILES")
- src_group = "Sources [qmake]";
-
- for(TQStringList::Iterator it = tmp.begin(); it != tmp.end(); ++it) {
- TQStringList files = (*it);
- bool buildable = TRUE;
- if(srcs[i] == "FORMS") {
- TQString form_dot_h = (*it) + Option::h_ext.first();
- if(TQFile::exists(form_dot_h))
- files += form_dot_h;
- buildable = FALSE;
- } else if(srcs[i] == "HEADERS" || srcs[i] == "QMAKE_INTERNAL_INCLUDED_FILES") {
- buildable = FALSE;
- }
-
- files = fileFixify(files);
- for(TQStringList::Iterator file_it = files.begin(); file_it != files.end(); ++file_it) {
- TQString file = (*file_it);
- if(file.length() >= 2 && (file[0] == '"' || file[0] == '\'') && file[(int) file.length()-1] == file[0])
- file = file.mid(1, file.length()-2);
- if(file.endsWith(Option::cpp_moc_ext) || file.endsWith(Option::prl_ext))
- continue;
- bool in_root = TRUE;
- TQString src_key = keyFor(file), name = file;
- if(project->isActiveConfig("flat")) {
- TQString flat_file = fileFixify(file, TQDir::currentDirPath(), Option::output_dir, TRUE);
- if(flat_file.find(Option::dir_sep) != -1) {
- TQStringList dirs = TQStringList::split(Option::dir_sep, flat_file);
- name = dirs.back();
- }
- } else {
- TQString flat_file = fileFixify(file, TQDir::currentDirPath(), Option::output_dir, TRUE);
- if(TQDir::isRelativePath(flat_file) && flat_file.find(Option::dir_sep) != -1) {
- TQString last_grp("QMAKE_PBX_" + src_group + "_HEIR_GROUP");
- TQStringList dirs = TQStringList::split(Option::dir_sep, flat_file);
- name = dirs.back();
- dirs.pop_back(); //remove the file portion as it will be added via src_key
- for(TQStringList::Iterator dir_it = dirs.begin(); dir_it != dirs.end(); ++dir_it) {
- TQString new_grp(last_grp + Option::dir_sep + (*dir_it)), new_grp_key(keyFor(new_grp));
- if(dir_it == dirs.begin()) {
- if(!src_list.contains(new_grp_key))
- src_list.append(new_grp_key);
- } else {
- if(!groups[last_grp].contains(new_grp_key))
- groups[last_grp] += new_grp_key;
- }
- last_grp = new_grp;
- }
- groups[last_grp] += src_key;
- in_root = FALSE;
- }
- }
- if(in_root)
- src_list.append(src_key);
- //source reference
- t << "\t\t" << src_key << " = {" << "\n"
- << "\t\t\t" << "isa = PBXFileReference;" << "\n"
- << "\t\t\t" << "name = \"" << name << "\";" << "\n"
- << "\t\t\t" << "path = \"" << file << "\";" << "\n"
- << "\t\t\t" << "refType = " << reftypeForFile(file) << ";" << "\n";
- if(pbVersion >= 38) {
- TQString filetype;
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit) {
- if(file.endsWith((*cppit))) {
- filetype = "sourcecode.cpp.cpp";
- break;
- }
- }
- if(!filetype.isNull())
- t << "\t\t\t" << "lastKnownFileType = " << filetype << ";" << "\n";
- }
- t << "\t\t" << "};" << "\n";
- if(buildable) { //build reference
- TQString obj_key = file + ".o";
- obj_key = keyFor(obj_key);
- t << "\t\t" << obj_key << " = {" << "\n"
- << "\t\t\t" << "fileRef = " << src_key << ";" << "\n"
- << "\t\t\t" << "isa = PBXBuildFile;" << "\n"
- << "\t\t\t" << "settings = {" << "\n"
- << "\t\t\t\t" << "ATTRIBUTES = (" << "\n"
- << "\t\t\t\t" << ");" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t" << "};" << "\n";
- project->variables()["QMAKE_PBX_OBJ"].append(obj_key);
- }
- }
- }
- if(!src_list.isEmpty()) {
- if(srcs[i] == "SOURCES") {
- if(project->first("TEMPLATE") == "app" && !project->isEmpty("RC_FILE")) { //Icon
- TQString icns_file = keyFor("ICNS_FILE");
- src_list.append(icns_file);
- t << "\t\t" << icns_file << " = {" << "\n"
- << "\t\t\t" << "isa = PBXFileReference;" << "\n"
- << "\t\t\t" << "path = \"" << project->first("RC_FILE") << "\";" << "\n"
- << "\t\t\t" << "refType = " << reftypeForFile(project->first("RC_FILE")) << ";" << "\n"
- << "\t\t" << "};" << "\n";
- t << "\t\t" << keyFor("ICNS_FILE_REFERENCE") << " = {" << "\n"
- << "\t\t\t" << "fileRef = " << icns_file << ";" << "\n"
- << "\t\t\t" << "isa = PBXBuildFile;" << "\n"
- << "\t\t\t" << "settings = {" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t" << "};" << "\n";
- }
- }
-
- TQString src_group_key = keyFor(src_group);
- if(root_group_list.findIndex(src_group_key) == -1)
- root_group_list += src_group_key;
-
- TQStringList &group = groups[src_group];
- for(TQStringList::Iterator src_it = src_list.begin(); src_it != src_list.end(); ++src_it) {
- if(group.findIndex((*src_it)) == -1)
- group += (*src_it);
- }
- }
- }
- for(TQMap::Iterator grp_it = groups.begin(); grp_it != groups.end(); ++grp_it) {
- t << "\t\t" << keyFor(grp_it.key()) << " = {" << "\n"
- << "\t\t\t" << "isa = PBXGroup;" << "\n"
- << "\t\t\t" << "children = (" << "\n"
- << valGlue(grp_it.data(), "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "name = \"" << grp_it.key().section(Option::dir_sep, -1) << "\";" << "\n"
- << "\t\t\t" << "refType = 4;" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
- //PREPROCESS BUILDPHASE (just a makefile)
- if(!project->isEmpty("UICIMPLS") || !project->isEmpty("SRCMOC") || !project->isEmpty("IMAGES") ||
- !project->isEmpty("YACCSOURCES") || !project->isEmpty("LEXSOURCES")) {
- TQString mkfile = pbx_dir + Option::dir_sep + "qt_preprocess.mak";
- TQFile mkf(mkfile);
- if(mkf.open(IO_WriteOnly | IO_Translate)) {
- did_preprocess = TRUE;
- debug_msg(1, "pbuilder: Creating file: %s", mkfile.latin1());
- TQTextStream mkt(&mkf);
- writeHeader(mkt);
- mkt << "MOC = " << Option::fixPathToTargetOS(var("QMAKE_MOC")) << endl;
- mkt << "TQUIC = " << Option::fixPathToTargetOS(var("QMAKE_UIC")) << endl;
- mkt << "LEX = " << var("QMAKE_LEX") << endl;
- mkt << "LEXFLAGS = " << var("QMAKE_LEXFLAGS") << endl;
- mkt << "YACC = " << var("QMAKE_YACC") << endl;
- mkt << "YACCFLAGS = " << var("QMAKE_YACCFLAGS") << endl;
- mkt << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl;
- mkt << "MOVE = " << var("QMAKE_MOVE") << endl << endl;
- mkt << "FORMS = " << varList("UICIMPLS") << endl;
- mkt << "IMAGES = " << varList("QMAKE_IMAGE_COLLECTION") << endl;
- mkt << "MOCS = " << varList("SRCMOC") << endl;
- mkt << "PARSERS =";
- if(!project->isEmpty("YACCSOURCES")) {
- TQStringList &yaccs = project->variables()["YACCSOURCES"];
- for(TQStringList::Iterator yit = yaccs.begin(); yit != yaccs.end(); ++yit) {
- TQFileInfo fi((*yit));
- mkt << " " << fi.dirPath() << Option::dir_sep << fi.baseName(TRUE)
- << Option::yacc_mod << Option::cpp_ext.first();
- }
- }
- if(!project->isEmpty("LEXSOURCES")) {
- TQStringList &lexs = project->variables()["LEXSOURCES"];
- for(TQStringList::Iterator lit = lexs.begin(); lit != lexs.end(); ++lit) {
- TQFileInfo fi((*lit));
- mkt << " " << fi.dirPath() << Option::dir_sep << fi.baseName(TRUE)
- << Option::lex_mod << Option::cpp_ext.first();
- }
- }
- mkt << "\n";
- mkt << "preprocess: $(FORMS) $(MOCS) $(PARSERS) $(IMAGES)" << endl;
- mkt << "clean preprocess_clean: mocclean uiclean parser_clean" << endl << endl;
- mkt << "mocclean:" << "\n";
- if(!project->isEmpty("SRCMOC"))
- mkt << "\t-rm -f $(MOCS)" << "\n";
- mkt << "uiclean:" << "\n";
- if(!project->isEmpty("UICIMPLS"))
- mkt << "\t-rm -f $(FORMS)" << "\n";
- if(!project->isEmpty("QMAKE_IMAGE_COLLECTION"))
- mkt << "\t-rm -f $(IMAGES)" << "\n";
- mkt << "parser_clean:" << "\n";
- if(!project->isEmpty("YACCSOURCES") || !project->isEmpty("LEXSOURCES"))
- mkt << "\t-rm -f $(PARSERS)" << "\n";
- writeUicSrc(mkt, "FORMS");
- writeMocSrc(mkt, "HEADERS");
- writeMocSrc(mkt, "SOURCES");
- writeMocSrc(mkt, "UICDECLS");
- writeYaccSrc(mkt, "YACCSOURCES");
- writeLexSrc(mkt, "LEXSOURCES");
- writeImageSrc(mkt, "QMAKE_IMAGE_COLLECTION");
- mkf.close();
- }
- mkfile = fileFixify(mkfile, TQDir::currentDirPath());
- TQString phase_key = keyFor("QMAKE_PBX_PREPROCESS_TARGET");
-// project->variables()["QMAKE_PBX_BUILDPHASES"].append(phase_key);
- project->variables()["QMAKE_PBX_PRESCRIPT_BUILDPHASES"].append(phase_key);
- t << "\t\t" << phase_key << " = {" << "\n"
- << "\t\t\t" << "buildActionMask = 2147483647;" << "\n"
- << "\t\t\t" << "files = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "generatedFileNames = (" << "\n"
- << varGlue("QMAKE_PBX_OBJ", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXShellScriptBuildPhase;" << "\n"
- << "\t\t\t" << "name = \"TQt Preprocessors\";" << "\n"
- << "\t\t\t" << "neededFileNames = (" << "\n"
- << varGlue("QMAKE_PBX_OBJ", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "shellPath = /bin/sh;" << "\n"
- << "\t\t\t" << "shellScript = \"make -C " << TQDir::currentDirPath() <<
- " -f " << mkfile << "\";" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
- //SOURCE BUILDPHASE
- if(!project->isEmpty("QMAKE_PBX_OBJ")) {
- TQString grp = "Build Sources", key = keyFor(grp);
- project->variables()["QMAKE_PBX_BUILDPHASES"].append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "buildActionMask = 2147483647;" << "\n"
- << "\t\t\t" << "files = (" << "\n"
- << varGlue("QMAKE_PBX_OBJ", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXSourcesBuildPhase;" << "\n"
- << "\t\t\t" << "name = \"" << grp << "\";" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
- if(!project->isActiveConfig("staticlib")) { //DUMP LIBRARIES
- TQStringList &libdirs = project->variables()["QMAKE_PBX_LIBPATHS"];
- TQString libs[] = { "QMAKE_LFLAGS", "QMAKE_LIBDIR_FLAGS", "QMAKE_LIBS", TQString::null };
- for(i = 0; !libs[i].isNull(); i++) {
- tmp = project->variables()[libs[i]];
- for(TQStringList::Iterator it = tmp.begin(); it != tmp.end();) {
- bool remove = FALSE;
- TQString library, name, opt = (*it).stripWhiteSpace();
- if(opt.length() >= 2 && (opt[0] == '"' || opt[0] == '\'') && opt[(int) opt.length()-1] == opt[0])
- opt = opt.mid(1, opt.length()-2);
- if(opt.startsWith("-L")) {
- TQString r = opt.right(opt.length() - 2);
- fixEnvVariables(r);
- libdirs.append(r);
- } else if(opt == "-prebind") {
- project->variables()["QMAKE_DO_PREBINDING"].append("TRUE");
- remove = TRUE;
- } else if(opt.startsWith("-l")) {
- name = opt.right(opt.length() - 2);
- TQString lib("lib" + name);
- for(TQStringList::Iterator lit = libdirs.begin(); lit != libdirs.end(); ++lit) {
- if(project->isActiveConfig("link_prl")) {
- /* This isn't real nice, but it is real usefull. This looks in a prl
- for what the library will ultimately be called so we can stick it
- in the ProjectFile. If the prl format ever changes (not likely) then
- this will not really work. However, more concerning is that it will
- encode the version number in the Project file which might be a bad
- things in days to come? --Sam
- */
- TQString lib_file = (*lit) + Option::dir_sep + lib;
- if(TQMakeMetaInfo::libExists(lib_file)) {
- TQMakeMetaInfo libinfo;
- if(libinfo.readLib(lib_file)) {
- if(!libinfo.isEmpty("QMAKE_PRL_TARGET")) {
- library = (*lit) + Option::dir_sep + libinfo.first("QMAKE_PRL_TARGET");
- debug_msg(1, "pbuilder: Found library (%s) via PRL %s (%s)",
- opt.latin1(), lib_file.latin1(), library.latin1());
- remove = TRUE;
- }
- }
- }
- }
- if(!remove) {
- TQString extns[] = { ".dylib", ".so", ".a", TQString::null };
- for(int n = 0; !remove && !extns[n].isNull(); n++) {
- TQString tmp = (*lit) + Option::dir_sep + lib + extns[n];
- if(TQFile::exists(tmp)) {
- library = tmp;
- debug_msg(1, "pbuilder: Found library (%s) via %s",
- opt.latin1(), library.latin1());
- remove = TRUE;
- }
- }
- }
- }
- } else if(opt == "-framework") {
- ++it;
- if(it == tmp.end())
- break;
- TQStringList &fdirs = project->variables()["QMAKE_FRAMEWORKDIR"];
- if(fdirs.isEmpty())
- fdirs.append("/System/Library/Frameworks/");
- for(TQStringList::Iterator fit = fdirs.begin(); fit != fdirs.end(); ++fit) {
- if(TQFile::exists((*fit) + TQDir::separator() + (*it) + ".framework")) {
- --it;
- it = tmp.remove(it);
- remove = TRUE;
- library = (*fit) + Option::dir_sep + (*it) + ".framework";
- break;
- }
- }
- } else if(opt.left(1) != "-") {
- if(TQFile::exists(opt)) {
- remove = TRUE;
- library = opt;
- }
- }
- if(!library.isEmpty()) {
- if(name.isEmpty()) {
- int slsh = library.findRev(Option::dir_sep);
- if(slsh != -1)
- name = library.right(library.length() - slsh - 1);
- }
- library = fileFixify(library);
- TQString key = keyFor(library);
- bool is_frmwrk = (library.endsWith(".framework"));
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "isa = " << (is_frmwrk ? "PBXFrameworkReference" : "PBXFileReference") << ";" << "\n"
- << "\t\t\t" << "name = \"" << name << "\";" << "\n"
- << "\t\t\t" << "path = \"" << library << "\";" << "\n"
- << "\t\t\t" << "refType = " << reftypeForFile(library) << ";" << "\n"
- << "\t\t" << "};" << "\n";
- project->variables()["QMAKE_PBX_LIBRARIES"].append(key);
- TQString obj_key = library + ".o";
- obj_key = keyFor(obj_key);
- t << "\t\t" << obj_key << " = {" << "\n"
- << "\t\t\t" << "fileRef = " << key << ";" << "\n"
- << "\t\t\t" << "isa = PBXBuildFile;" << "\n"
- << "\t\t\t" << "settings = {" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t" << "};" << "\n";
- project->variables()["QMAKE_PBX_BUILD_LIBRARIES"].append(obj_key);
- }
- if(remove)
- it = tmp.remove(it);
- else
- ++it;
- }
- project->variables()[libs[i]] = tmp;
- }
- }
- //SUBLIBS BUILDPHASE (just another makefile)
- if(!project->isEmpty("SUBLIBS")) {
- TQString mkfile = pbx_dir + Option::dir_sep + "qt_sublibs.mak";
- TQFile mkf(mkfile);
- if(mkf.open(IO_WriteOnly | IO_Translate)) {
- debug_msg(1, "pbuilder: Creating file: %s", mkfile.latin1());
- TQTextStream mkt(&mkf);
- writeHeader(mkt);
- mkt << "SUBLIBS= ";
- tmp = project->variables()["SUBLIBS"];
- TQStringList::Iterator it;
- for(it = tmp.begin(); it != tmp.end(); ++it)
- t << "tmp/lib" << (*it) << ".a ";
- t << endl << endl;
- mkt << "sublibs: $(SUBLIBS)" << endl << endl;
- tmp = project->variables()["SUBLIBS"];
- for(it = tmp.begin(); it != tmp.end(); ++it)
- t << "tmp/lib" << (*it) << ".a" << ":\n\t"
- << var(TQString("MAKELIB") + (*it)) << endl << endl;
- mkf.close();
- }
- TQString phase_key = keyFor("QMAKE_PBX_SUBLIBS_BUILDPHASE");
- mkfile = fileFixify(mkfile, TQDir::currentDirPath());
- project->variables()["QMAKE_PBX_PRESCRIPT_BUILDPHASES"].append(phase_key);
- t << "\t\t" << phase_key << " = {" << "\n"
- << "\t\t\t" << "buildActionMask = 2147483647;" << "\n"
- << "\t\t\t" << "files = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "generatedFileNames = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXShellScriptBuildPhase;" << "\n"
- << "\t\t\t" << "name = \"TQt Sublibs\";" << "\n"
- << "\t\t\t" << "neededFileNames = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "shellPath = /bin/sh;" << "\n"
- << "\t\t\t" << "shellScript = \"make -C " << TQDir::currentDirPath() <<
- " -f " << mkfile << "\";" << "\n"
- << "\t\t" << "};" << "\n";
- }
- //LIBRARY BUILDPHASE
- if(!project->isEmpty("QMAKE_PBX_LIBRARIES")) {
- tmp = project->variables()["QMAKE_PBX_LIBRARIES"];
- if(!tmp.isEmpty()) {
- TQString grp("External Frameworks and Libraries"), key = keyFor(grp);
- project->variables()["QMAKE_PBX_GROUPS"].append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "children = (" << "\n"
- << varGlue("QMAKE_PBX_LIBRARIES", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXGroup;" << "\n"
- << "\t\t\t" << "name = \"" << grp << "\"" << ";" << "\n"
- << "\t\t\t" << "path = \"\";" << "\n"
- << "\t\t\t" << "refType = 4;" << "\n"
- << "\t\t" << "};" << "\n";
- }
- }
- {
- TQString grp("Frameworks & Libraries"), key = keyFor(grp);
- project->variables()["QMAKE_PBX_BUILDPHASES"].append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "buildActionMask = 2147483647;" << "\n"
- << "\t\t\t" << "files = (" << "\n"
- << varGlue("QMAKE_PBX_BUILD_LIBRARIES", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXFrameworksBuildPhase;" << "\n"
- << "\t\t\t" << "name = \"" << grp << "\";" << "\n"
- << "\t\t" << "};" << "\n";
- }
- if(!project->isActiveConfig("console") && project->first("TEMPLATE") == "app") { //BUNDLE RESOURCES
- TQString grp("Bundle Resources"), key = keyFor(grp);
- project->variables()["QMAKE_PBX_BUILDPHASES"].append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "buildActionMask = 2147483647;" << "\n"
- << "\t\t\t" << "files = (" << "\n"
- << (!project->isEmpty("RC_FILE") ? keyFor("ICNS_FILE_REFERENCE") : TQString(""))
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXResourcesBuildPhase;" << "\n"
- << "\t\t\t" << "name = \"" << grp << "\";" << "\n"
- << "\t\t" << "};" << "\n";
- }
- { //INSTALL BUILDPHASE (sh script)
- TQString phase_key = keyFor("QMAKE_PBX_TARGET_COPY_PHASE");
- TQString destDir = Option::output_dir;
- if (!project->isEmpty("QMAKE_ORIG_DESTDIR"))
- destDir = project->first("QMAKE_ORIG_DESTDIR");
- fixEnvs(destDir);
- destDir = TQFileInfo(Option::fixPathToLocalOS(destDir)).absFilePath();
- project->variables()["QMAKE_PBX_PRESCRIPT_BUILDPHASES"].append(phase_key);
- t << "\t\t" << phase_key << " = {\n"
- << "\t\t\tbuildActionMask = 2147483647;\n"
- << "\t\t\tdstPath = " << destDir << ";\n"
- << "\t\t\tdstSubfolderSpec = 0;\n"
- << "\t\t\tfiles = (\n"
- << "\t\t\t" << keyFor("QMAKE_PBX_TARGET_COPY_FILE") << ",\n"
- << "\t\t\t);\n"
- << "\t\t\tisa = PBXCopyFilesBuildPhase;\n"
- << "\t\t\trunOnlyForDeploymentPostprocessing = 0;\n"
- << "\t\t};\n"
- << "\t\t" << keyFor("QMAKE_PBX_TARGET_COPY_FILE") << " = {\n"
- << "\t\t\tfileRef = " << keyFor(pbx_dir + "QMAKE_PBX_REFERENCE") << ";\n"
- << "\t\t\tisa = PBXBuildFile;\n"
- << "\t\t\tsettings = {\n"
- << "\t\t\t};\n"
- << "\t\t};\n";
- }
- if(/*ideType() == MAC_XCODE &&*/ !project->isEmpty("QMAKE_PBX_PRESCRIPT_BUILDPHASES") && 0) {
- // build reference
- t << "\t\t" << keyFor("QMAKE_PBX_PRESCRIPT_BUILDREFERENCE") << " = {" << "\n"
- << "\t\t\t" << "includeInIndex = 0;" << "\n"
- << "\t\t\t" << "isa = PBXFileReference;" << "\n"
- << "\t\t\t" << "path = preprocessor.out;" << "\n"
- << "\t\t\t" << "refType = 3;" << "\n"
- << "\t\t\t" << "sourceTree = BUILT_PRODUCTS_DIR;" << "\n"
- << "\t\t" << "};" << "\n";
- project->variables()["QMAKE_PBX_PRODUCTS"].append(keyFor("QMAKE_PBX_PRESCRIPTS_BUILDREFERENCE"));
- //build phase
- TQString prescript_key = keyFor("QMAKE_PBX_PRESCRIPTS_BUILDPHASE");
- project->variables()["QMAKE_PBX_TARGETS"].append(prescript_key);
- t << "\t\t" << prescript_key << " = {" << "\n"
- << "\t\t\t" << "buildPhases = (" << "\n"
- << varGlue("QMAKE_PBX_PRESCRIPT_BUILDPHASES", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "buildRules = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "dependencies = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXNativeTarget;" << "\n"
- << "\t\t\t" << "name = \"TQt Preprocessor Steps\";" << "\n"
- << "\t\t\t" << "productName = \"TQt Preprocessor Steps\";" << "\n"
- << "\t\t\t" << "productReference = " << keyFor("QMAKE_PBX_PRESCRIPTS_BUILDREFERENCE") << ";" << "\n"
- << "\t\t\t" << "productType = \"com.apple.product-type.tool\";" << "\n"
- << "\t\t" << "};" << "\n";
- //dependency
- t << "\t\t" << keyFor("QMAKE_PBX_PRESCRIPTS_DEPENDENCY") << " = {" << "\n"
- << "\t\t\t" << "isa = PBXTargetDependency;" << "\n"
- << "\t\t\t" << "target = " << keyFor("QMAKE_PBX_PRESCRIPTS_BUILDPHASE") << ";" << "\n"
- << "\t\t" << "};" << "\n";
- project->variables()["QMAKE_PBX_TARGET_DEPENDS"].append(keyFor("QMAKE_PBX_PRESCRIPTS_DEPENDENCY"));
- project->variables()["QMAKE_PBX_PRESCRIPT_BUILDPHASES"].clear(); //these are already consumed above
- }
-
- //DUMP EVERYTHING THAT TIES THE ABOVE TOGETHER
- //ROOT_GROUP
- t << "\t\t" << keyFor("QMAKE_PBX_ROOT_GROUP") << " = {" << "\n"
- << "\t\t\t" << "children = (" << "\n"
- << varGlue("QMAKE_PBX_GROUPS", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXGroup;" << "\n"
- << "\t\t\t" << "name = " << project->first("QMAKE_ORIG_TARGET") << ";" << "\n"
- << "\t\t\t" << "path = \"\";" << "\n"
- << "\t\t\t" << "refType = 4;" << "\n"
- << "\t\t" << "};" << "\n";
- //REFERENCE
- project->variables()["QMAKE_PBX_PRODUCTS"].append(keyFor(pbx_dir + "QMAKE_PBX_REFERENCE"));
- t << "\t\t" << keyFor(pbx_dir + "QMAKE_PBX_REFERENCE") << " = {" << "\n"
- << "\t\t\t" << "fallbackIsa = PBXFileReference;" << "\n";
- if(project->first("TEMPLATE") == "app") {
- TQString targ = project->first("QMAKE_ORIG_TARGET");
- if(project->isActiveConfig("resource_fork") && !project->isActiveConfig("console")) {
- targ += ".app";
- t << "\t\t\t" << "isa = PBXApplicationReference;" << "\n";
- } else {
- t << "\t\t\t" << "isa = PBXExecutableFileReference;" << "\n";
- }
- TQString app = (!project->isEmpty("DESTDIR") ? project->first("DESTDIR") + project->first("QMAKE_ORIG_TARGET") :
- TQDir::currentDirPath()) + Option::dir_sep + targ;
- t << "\t\t\t" << "name = " << targ << ";" << "\n"
- << "\t\t\t" << "path = \"" << targ << "\";" << "\n"
- << "\t\t\t" << "refType = " << reftypeForFile(app) << ";" << "\n";
- } else {
- TQString lib = project->first("QMAKE_ORIG_TARGET");
- if(project->isActiveConfig("staticlib")) {
- lib = project->first("TARGET");
- } else if(!project->isActiveConfig("frameworklib")) {
- if(project->isActiveConfig("plugin"))
- lib = project->first("TARGET");
- else
- lib = project->first("TARGET_");
- }
- int slsh = lib.findRev(Option::dir_sep);
- if(slsh != -1)
- lib = lib.right(lib.length() - slsh - 1);
- t << "\t\t\t" << "isa = PBXLibraryReference;" << "\n"
- << "\t\t\t" << "expectedFileType = \"compiled.mach-o.dylib\";" << "\n"
- << "\t\t\t" << "path = " << lib << ";\n"
- << "\t\t\t" << "refType = " << 3/*reftypeForFile(lib)*/ << ";" << "\n"
- << "\t\t\t" << "sourceTree = BUILT_PRODUCTS_DIR" << ";" << "\n";
- }
- t << "\t\t" << "};" << "\n";
- { //Products group
- TQString grp("Products"), key = keyFor(grp);
- project->variables()["QMAKE_PBX_GROUPS"].append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "children = (" << "\n"
- << varGlue("QMAKE_PBX_PRODUCTS", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "isa = PBXGroup;" << "\n"
- << "\t\t\t" << "name = Products;" << "\n"
- << "\t\t\t" << "refType = 4;" << "\n"
- << "\t\t" << "};" << "\n";
- }
- //TARGET
- TQString target_key = keyFor("QMAKE_PBX_TARGET");
- project->variables()["QMAKE_PBX_TARGETS"].append(target_key);
- t << "\t\t" << target_key << " = {" << "\n"
- << "\t\t\t" << "buildPhases = (" << "\n"
- << varGlue("QMAKE_PBX_PRESCRIPT_BUILDPHASES", "\t\t\t\t", ",\n\t\t\t\t", ",\n")
- << varGlue("QMAKE_PBX_BUILDPHASES", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n"
- << "\t\t\t\t" << "CC = \"" << fixEnvsList("QMAKE_CC") << "\";" << "\n"
- << "\t\t\t\t" << "CPLUSPLUS = \"" << fixEnvsList("QMAKE_CXX") << "\";" << "\n"
- << "\t\t\t\t" << "FRAMEWORK_SEARCH_PATHS = \"\";" << "\n"
- << "\t\t\t\t" << "HEADER_SEARCH_PATHS = \"" << fixEnvsList("INCLUDEPATH") << " " << fixEnvs(specdir()) << "\";" << "\n"
- << "\t\t\t\t" << "LIBRARY_SEARCH_PATHS = \"" << var("QMAKE_PBX_LIBPATHS") << "\";" << "\n"
- << "\t\t\t\t" << "OPTIMIZATION_CFLAGS = \"\";" << "\n"
- << "\t\t\t\t" << "GCC_GENERATE_DEBUGGING_SYMBOLS = " <<
- (project->isActiveConfig("debug") ? "YES" : "NO") << ";" << "\n"
- << "\t\t\t\t" << "OTHER_CFLAGS = \"" <<
- fixEnvsList("QMAKE_CFLAGS") << fixQuotes(varGlue("PRL_EXPORT_DEFINES"," -D"," -D","")) <<
- fixQuotes(varGlue("DEFINES"," -D"," -D","")) << "\";" << "\n"
- << "\t\t\t\t" << "LEXFLAGS = \"" << var("QMAKE_LEXFLAGS") << "\";" << "\n"
- << "\t\t\t\t" << "YACCFLAGS = \"" << var("QMAKE_YACCFLAGS") << "\";" << "\n"
- << "\t\t\t\t" << "OTHER_CPLUSPLUSFLAGS = \"" <<
- fixEnvsList("QMAKE_CXXFLAGS") << fixQuotes(varGlue("PRL_EXPORT_DEFINES"," -D"," -D","")) <<
- fixQuotes(varGlue("DEFINES"," -D"," -D","")) << "\";" << "\n"
- << "\t\t\t\t" << "OTHER_REZFLAGS = \"\";" << "\n"
- << "\t\t\t\t" << "SECTORDER_FLAGS = \"\";" << "\n"
- << "\t\t\t\t" << "WARNING_CFLAGS = \"\";" << "\n"
- << "\t\t\t\t" << "PREBINDING = " << (project->isEmpty("QMAKE_DO_PREBINDING") ? "NO" : "YES") << ";" << "\n";
- if(project->isActiveConfig("debug"))
- t << "\t\t\t\t" << "GCC_OPTIMIZATION_LEVEL = 0" << ";" << "\n";
- if(!project->isEmpty("PRECOMPILED_HEADER")) {
- if(pbVersion >= 38) {
- t << "\t\t\t\t" << "GCC_PRECOMPILE_PREFIX_HEADER = \"YES\";" << "\n"
- << "\t\t\t\t" << "GCC_PREFIX_HEADER = \"" << project->first("PRECOMPILED_HEADER") << "\";" << "\n";
- } else {
- t << "\t\t\t\t" << "PRECOMPILE_PREFIX_HEADER = \"YES\";" << "\n"
- << "\t\t\t\t" << "PREFIX_HEADER = \"" << project->first("PRECOMPILED_HEADER") << "\";" << "\n";
- }
- }
- if(project->first("TEMPLATE") == "app") {
- TQString plist = fileFixify(project->first("QMAKE_INFO_PLIST"));
- if(plist.isEmpty())
- plist = specdir() + TQDir::separator() + "Info.plist." + project->first("TEMPLATE");
- if(TQFile::exists(plist)) {
- TQFile plist_in_file(plist);
- if(plist_in_file.open(IO_ReadOnly)) {
- TQTextStream plist_in(&plist_in_file);
- TQString plist_in_text = plist_in.read();
- plist_in_text = plist_in_text.replace("@ICON@", (project->isEmpty("RC_FILE") ? TQString("") : project->first("RC_FILE").section(Option::dir_sep, -1)));
- plist_in_text = plist_in_text.replace("@EXECUTABLE@", project->first("QMAKE_ORIG_TARGET"));
- TQFile plist_out_file("Info.plist");
- if(plist_out_file.open(IO_WriteOnly | IO_Translate)) {
- TQTextStream plist_out(&plist_out_file);
- plist_out << plist_in_text;
- t << "\t\t\t\t" << "INFOPLIST_FILE = \"Info.plist\";" << "\n";
- }
- }
- }
- }
-#if 1
- t << "\t\t\t\t" << "BUILD_ROOT = \"" << TQDir::currentDirPath() << "\";" << "\n";
-#endif
- if(!project->isActiveConfig("staticlib"))
- t << "\t\t\t\t" << "OTHER_LDFLAGS = \"" << fixEnvsList("SUBLIBS") << " " <<
- fixEnvsList("QMAKE_LFLAGS") << " " << fixEnvsList("QMAKE_LIBDIR_FLAGS") <<
- " " << fixEnvsList("QMAKE_LIBS") << "\";" << "\n";
- if(!project->isEmpty("DESTDIR")) {
- TQString dir = project->first("DESTDIR");
- if (TQDir::isRelativePath(dir))
- dir.prepend(TQDir::currentDirPath() + Option::dir_sep);
- t << "\t\t\t\t" << "INSTALL_DIR = \"" << dir << "\";" << "\n";
- }
- if ( project->first("TEMPLATE") == "lib") {
- t << "\t\t\t\t" << "INSTALL_PATH = \"" << "\";" << "\n";
- }
- if(!project->isEmpty("VERSION") && project->first("VERSION") != "0.0.0") {
- t << "\t\t\t\t" << "DYLIB_CURRENT_VERSION = \"" << project->first("VER_MAJ") << "."
- << project->first("VER_MIN") << "." << project->first("VER_PAT") << "\";" << "\n";
- if(project->isEmpty("COMPAT_VERSION"))
- t << "\t\t\t\t" << "DYLIB_COMPATIBILITY_VERSION = \"" << project->first("VER_MAJ") << "."
- << project->first("VER_MIN") << "\";" << "\n";
- }
- if(!project->isEmpty("COMPAT_VERSION"))
- t << "\t\t\t\t" << "DYLIB_COMPATIBILITY_VERSION = \"" << project->first("COMPAT_VERSION") << "\";" << "\n";
- if(!project->isEmpty("QMAKE_MACOSX_DEPLOYMENT_TARGET"))
- t << "\t\t\t\t" << "MACOSX_DEPLOYMENT_TARGET = \""
- << project->first("QMAKE_MACOSX_DEPLOYMENT_TARGET") << "\";" << "\n";
- if(pbVersion >= 38) {
- if(!project->isEmpty("OBJECTS_DIR"))
- t << "\t\t\t\t" << "OBJROOT = \"" << project->first("OBJECTS_DIR") << "\";" << "\n";
- }
-#if 0
- if(!project->isEmpty("DESTDIR"))
- t << "\t\t\t\t" << "SYMROOT = \"" << project->first("DESTDIR") << "\";" << "\n";
- else
- t << "\t\t\t\t" << "SYMROOT = \"" << TQDir::currentDirPath() << "\";" << "\n";
-#endif
- if(project->first("TEMPLATE") == "app") {
- if(pbVersion < 38 && !project->isActiveConfig("console"))
- t << "\t\t\t\t" << "WRAPPER_SUFFIX = app;" << "\n";
- t << "\t\t\t\t" << "PRODUCT_NAME = " << project->first("QMAKE_ORIG_TARGET") << ";" << "\n";
- } else {
- if(!project->isActiveConfig("plugin") && project->isActiveConfig("staticlib")) {
- t << "\t\t\t\t" << "LIBRARY_STYLE = STATIC;" << "\n";
- } else {
- t << "\t\t\t\t" << "LIBRARY_STYLE = DYNAMIC;" << "\n";
- }
- TQString lib = project->first("QMAKE_ORIG_TARGET");
- if (!project->isActiveConfig("frameworklib") && !project->isActiveConfig("staticlib"))
- lib.prepend("lib");
- t << "\t\t\t\t" << "PRODUCT_NAME = " << lib << ";" << "\n";
- }
- tmp = project->variables()["QMAKE_PBX_VARS"];
- for(TQStringList::Iterator it = tmp.begin(); it != tmp.end(); ++it) {
- TQString var = (*it), val = getenv(var);
- if(!val && var == "TB")
- val = "/usr/bin/";
- t << "\t\t\t\t" << var << " = \"" << val << "\";" << "\n";
- }
- t << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "conditionalBuildSettings = {" << "\n"
- << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "dependencies = (" << "\n"
- << varGlue("QMAKE_PBX_TARGET_DEPENDS", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "productReference = " << keyFor(pbx_dir + "QMAKE_PBX_REFERENCE") << ";" << "\n"
- << "\t\t\t" << "shouldUseHeadermap = 1;" << "\n";
- if(pbVersion >= 38)
- t << "\t\t\t" << "isa = PBXNativeTarget;" << "\n";
- if(project->first("TEMPLATE") == "app") {
- if(project->isActiveConfig("console")) {
- if(pbVersion >= 38)
- t << "\t\t\t" << "productType = \"com.apple.product-type.tool\";" << "\n";
- else
- t << "\t\t\t" << "isa = PBXToolTarget;" << "\n";
- } else {
- if(pbVersion >= 38)
- t << "\t\t\t" << "productType = \"com.apple.product-type.application\";" << "\n";
- else
- t << "\t\t\t" << "isa = PBXApplicationTarget;" << "\n";
- t << "\t\t\t" << "productSettingsXML = \"";
- bool read_plist = false;
- if(TQFile::exists("Info.plist")) {
- TQFile plist("Info.plist");
- if(plist.open(IO_ReadOnly)) {
- read_plist = true;
- TQTextStream stream(&plist);
- while(!stream.eof())
- t << stream.readLine().replace('"', "\\\"") << endl;
- }
- }
- if(!read_plist) {
- t << "" << "\n"
- << "\t\t\t\t" << "" << "\n"
- << "\t\t\t\t" << "" << "\n"
- << "\t\t\t\t" << "" << "\n"
- << "\t\t\t\t\t" << "CFBundleDevelopmentRegion" << "\n"
- << "\t\t\t\t\t" << "English" << "\n"
- << "\t\t\t\t\t" << "CFBundleExecutable" << "\n"
- << "\t\t\t\t\t" << "" << project->first("QMAKE_ORIG_TARGET") << "" << "\n"
- << "\t\t\t\t\t" << "CFBundleIconFile" << "\n"
- << "\t\t\t\t\t" << "" << var("RC_FILE").section(Option::dir_sep, -1) << "" << "\n"
- << "\t\t\t\t\t" << "CFBundleInfoDictionaryVersion" << "\n"
- << "\t\t\t\t\t" << "6.0" << "\n"
- << "\t\t\t\t\t" << "CFBundlePackageType" << "\n"
- << "\t\t\t\t\t" << "APPL" << "\n"
- << "\t\t\t\t\t" << "CFBundleSignature" << "\n"
- //Although the output below looks strange it is to avoid the trigraph ??<
- << "\t\t\t\t\t" << "????" << "" << "\n"
- << "\t\t\t\t\t" << "CFBundleVersion" << "\n"
- << "\t\t\t\t\t" << "0.1" << "\n"
- << "\t\t\t\t\t" << "CSResourcesFileMapped" << "\n"
- << "\t\t\t\t\t" << "" << "\n"
- << "\t\t\t\t" << "" << "\n"
- << "\t\t\t\t" << "";
- }
- }
- t << "\";" << "\n";
- t << "\t\t\t" << "name = \"" << project->first("QMAKE_ORIG_TARGET") << "\";" << "\n"
- << "\t\t\t" << "productName = " << project->first("QMAKE_ORIG_TARGET") << ";" << "\n";
- } else {
- TQString lib = project->first("QMAKE_ORIG_TARGET");
- if(!project->isActiveConfig("frameworklib") && !project->isActiveConfig("staticlib"))
- lib.prepend("lib");
- t << "\t\t\t" << "name = \"" << lib << "\";" << "\n"
- << "\t\t\t" << "productName = " << lib << ";" << "\n";
- if(pbVersion >= 38) {
- if(project->isActiveConfig("staticlib"))
- t << "\t\t\t" << "productType = \"com.apple.product-type.library.static\";" << "\n";
- else
- t << "\t\t\t" << "productType = \"com.apple.product-type.library.dynamic\";" << "\n";
- } else {
- t << "\t\t\t" << "isa = PBXLibraryTarget;" << "\n";
- }
- }
- t << "\t\t\t" << "startupPath = \"<>\";" << "\n";
- if(!project->isEmpty("DESTDIR"))
- t << "\t\t\t" << "productInstallPath = \"" << project->first("DESTDIR") << "\";" << "\n";
- t << "\t\t" << "};" << "\n";
- //DEBUG/RELEASE
- TQString active_buildstyle;
-#if 0
- for(int as_release = 0; as_release < 2; as_release++)
-#else
- bool as_release = !project->isActiveConfig("debug");
-#endif
- {
- TQMap settings;
- settings.insert("COPY_PHASE_STRIP", (as_release ? "YES" : "NO"));
- if(as_release)
- settings.insert("GCC_GENERATE_DEBUGGING_SYMBOLS", "NO");
- TQString name;
- if(pbVersion >= 42)
- name = (as_release ? "Release" : "Debug");
- else
- name = (as_release ? "Deployment" : "Development");
-
- if(pbVersion >= 42) {
- TQString key = keyFor("QMAKE_PBX_BUILDCONFIG_" + name);
- project->variables()["QMAKE_PBX_BUILDCONFIGS"].append(key);
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "isa = XCBuildConfiguration;" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n";
- for(TQMap::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)
- t << "\t\t\t\t" << set_it.key() << " = \"" << set_it.data() << "\";\n";
- t << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "name = " << name << ";" << "\n"
- << "\t\t" << "};" << "\n";
- }
-
- TQString key = keyFor("QMAKE_PBX_BUILDSTYLE_" + name);
- if(project->isActiveConfig("debug") != (bool)as_release) {
- project->variables()["QMAKE_PBX_BUILDSTYLES"].append(key);
- active_buildstyle = name;
- } else if(pbVersion >= 42) {
- project->variables()["QMAKE_PBX_BUILDSTYLES"].append(key);
- }
- t << "\t\t" << key << " = {" << "\n"
- << "\t\t\t" << "buildRules = (" << "\n"
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "buildSettings = {" << "\n";
- for(TQMap::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)
- t << "\t\t\t\t" << set_it.key() << " = \"" << set_it.data() << "\";\n";
- t << "\t\t\t" << "};" << "\n"
- << "\t\t\t" << "isa = PBXBuildStyle;" << "\n"
- << "\t\t\t" << "name = " << name << ";" << "\n"
- << "\t\t" << "};" << "\n";
- }
- if(pbVersion >= 42) {
- t << "\t\t" << keyFor("QMAKE_PBX_BUILDCONFIG_LIST") << " = {" << "\n"
- << "\t\t\t" << "isa = XCConfigurationList;" << "\n"
- << "\t\t\t" << "buildConfigurations = (" << "\n"
- << varGlue("QMAKE_PBX_BUILDCONFIGS", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "defaultConfigurationIsVisible = 0;" << "\n"
- << "\t\t\t" << "defaultConfigurationIsName = " << active_buildstyle << ";" << "\n"
- << "\t\t" << "};" << "\n";
- }
- //ROOT
- t << "\t\t" << keyFor("QMAKE_PBX_ROOT") << " = {" << "\n"
- << "\t\t\t" << "buildStyles = (" << "\n"
- << varGlue("QMAKE_PBX_BUILDSTYLES", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t\t" << "hasScannedForEncodings = 1;" << "\n"
- << "\t\t\t" << "isa = PBXProject;" << "\n"
- << "\t\t\t" << "mainGroup = " << keyFor("QMAKE_PBX_ROOT_GROUP") << ";" << "\n"
- << "\t\t\t" << "projectDirPath = \"\";" << "\n"
- << "\t\t\t" << "targets = (" << "\n"
- << varGlue("QMAKE_PBX_TARGETS", "\t\t\t\t", ",\n\t\t\t\t", "\n")
- << "\t\t\t" << ");" << "\n"
- << "\t\t" << "};" << "\n";
-
- //FOOTER
- t << "\t" << "};" << "\n"
- << "\t" << "rootObject = " << keyFor("QMAKE_PBX_ROOT") << ";" << "\n"
- << "}" << endl;
-
- if(project->isActiveConfig("generate_pbxbuild_makefile")) {
- TQString mkwrap = fileFixify(pbx_dir + Option::dir_sep + ".." + Option::dir_sep + project->first("MAKEFILE"),
- TQDir::currentDirPath());
- TQFile mkwrapf(mkwrap);
- if(mkwrapf.open(IO_WriteOnly | IO_Translate)) {
- debug_msg(1, "pbuilder: Creating file: %s", mkwrap.latin1());
- TQTextStream mkwrapt(&mkwrapf);
- writeHeader(mkwrapt);
- const char *cleans = "uiclean mocclean preprocess_clean ";
- mkwrapt << "#This is a makefile wrapper for PROJECT BUILDER\n"
- << "all:" << "\n\t"
- << "cd " << project->first("QMAKE_ORIG_TARGET") << projectSuffix() << "/ && " << pbxbuild() << "\n"
- << "install: all" << "\n\t"
- << "cd " << project->first("QMAKE_ORIG_TARGET") << projectSuffix() << "/ && " << pbxbuild() << " install\n"
- << "distclean clean: preprocess_clean" << "\n\t"
- << "cd " << project->first("QMAKE_ORIG_TARGET") << projectSuffix() << "/ && " << pbxbuild() << " clean" << "\n"
- << (!did_preprocess ? cleans : "") << ":" << "\n";
- if(did_preprocess)
- mkwrapt << cleans << ":" << "\n\t"
- << "make -f "
- << pbx_dir << Option::dir_sep << "qt_preprocess.mak $@" << endl;
- }
- }
- return TRUE;
-}
-
-TQString
-ProjectBuilderMakefileGenerator::fixQuotes(const TQString &val)
-{
- TQString ret(val);
- ret = ret.replace(TQRegExp("('|\\\\|\")"), "\\\\1");
- return ret;
-}
-
-TQString
-ProjectBuilderMakefileGenerator::fixEnvs(const TQString &file)
-{
- TQRegExp reg_var("\\$\\((.*)\\)");
- for(int rep = 0; (rep = reg_var.search(file, rep)) != -1; ) {
- if(project->variables()["QMAKE_PBX_VARS"].findIndex(reg_var.cap(1)) == -1)
- project->variables()["QMAKE_PBX_VARS"].append(reg_var.cap(1));
- rep += reg_var.matchedLength();
- }
- return file;
-}
-
-TQString
-ProjectBuilderMakefileGenerator::fixEnvsList(const TQString &where)
-{
- TQString ret;
- const TQStringList &l = project->variables()[where];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- fixEnvs((*it));
- if(!ret.isEmpty())
- ret += " ";
- ret += fixQuotes((*it));
- }
- return ret;
-}
-
-TQString
-ProjectBuilderMakefileGenerator::keyFor(const TQString &block)
-{
-#if 1 //This make this code much easier to debug..
- if(project->isActiveConfig("no_pb_munge_key"))
- return block;
-#endif
- TQString ret;
- if(!keys.contains(block)) {
- ret = qtMD5(block.utf8()).left(24).upper();
- keys.insert(block, ret);
- } else {
- ret = keys[block];
- }
- return ret;
-}
-
-bool
-ProjectBuilderMakefileGenerator::openOutput(TQFile &file) const
-{
- if(TQDir::isRelativePath(file.name()))
- file.setName(Option::output_dir + file.name()); //pwd when qmake was run
- TQFileInfo fi(file);
- if(fi.extension() != "pbxproj" || file.name().isEmpty()) {
- TQString output = file.name();
- if(fi.isDir())
- output += TQDir::separator();
- if(!output.endsWith(projectSuffix())) {
- if(file.name().isEmpty() || fi.isDir())
- output += project->first("TARGET");
- output += projectSuffix() + TQDir::separator();
- } else if(output[(int)output.length() - 1] != TQDir::separator()) {
- output += TQDir::separator();
- }
- output += TQString("project.pbxproj");
- file.setName(output);
- }
- bool ret = UnixMakefileGenerator::openOutput(file);
- ((ProjectBuilderMakefileGenerator*)this)->pbx_dir = Option::output_dir.section(Option::dir_sep, 0, -1);
- Option::output_dir = pbx_dir.section(Option::dir_sep, 0, -2);
- return ret;
-}
-
-/* This function is such a hack it is almost pointless, but it
- eliminates the warning message from ProjectBuilder that the project
- file is for an older version. I guess this could be used someday if
- the format of the output is dependant upon the version of
- ProjectBuilder as well.
-*/
-int
-ProjectBuilderMakefileGenerator::pbuilderVersion() const
-{
- TQString ret;
- if(project->isEmpty("QMAKE_PBUILDER_VERSION")) {
- TQString version, version_plist = project->first("QMAKE_PBUILDER_VERSION_PLIST");
- if(version_plist.isEmpty()) {
- if(TQFile::exists("/Developer/Applications/Xcode.app/Contents/version.plist"))
- version_plist = "/Developer/Applications/Xcode.app/Contents/version.plist";
- else
- version_plist = "/Developer/Applications/Project Builder.app/Contents/version.plist";
- } else {
- version_plist = version_plist.replace(TQRegExp("\""), "");
- }
- TQFile version_file(version_plist);
- if (version_file.open(IO_ReadOnly)) {
- debug_msg(1, "pbuilder: version.plist: Reading file: %s", version_plist.latin1());
- TQTextStream plist(&version_file);
-
- bool in_dict = false;
- TQString current_key;
- TQRegExp keyreg("^(.*)$"), stringreg("^(.*)$");
- while(!plist.atEnd()) {
- TQString line = plist.readLine().stripWhiteSpace();
- if(line == "")
- in_dict = true;
- else if(line == "")
- in_dict = false;
- else if(in_dict) {
- if(keyreg.exactMatch(line))
- current_key = keyreg.cap(1);
- else if(current_key == "CFBundleShortVersionString" && stringreg.exactMatch(line))
- version = stringreg.cap(1);
- }
- }
- version_file.close();
- } else { debug_msg(1, "pbuilder: version.plist: Failure to open %s", version_plist.latin1()); }
- if(version.isEmpty() && version_plist.contains("Xcode")) {
- ret = "39";
- } else {
- if(version.startsWith("2."))
- ret = "42";
- else if(version == "1.5")
- ret = "39";
- else if(version == "1.1")
- ret = "34";
- }
- } else {
- ret = project->first("QMAKE_PBUILDER_VERSION");
- }
- if(!ret.isEmpty()) {
- bool ok;
- int int_ret = ret.toInt(&ok);
- if(ok) {
- debug_msg(1, "pbuilder: version.plist: Got version: %d", int_ret);
- return int_ret;
- }
- }
- debug_msg(1, "pbuilder: version.plist: Fallback to default version");
- return 34; //my fallback
-}
-
-int
-ProjectBuilderMakefileGenerator::reftypeForFile(const TQString &where)
-{
- int ret = 0; //absolute is the default..
- if(TQDir::isRelativePath(where))
- ret = 4; //relative
- return ret;
-}
-
-TQString
-ProjectBuilderMakefileGenerator::projectSuffix() const
-{
- const int pbVersion = pbuilderVersion();
- if(pbVersion >= 42)
- return ".xcodeproj";
- else if(pbVersion >= 38)
- return ".xcode";
- return ".pbproj";
-}
-
-TQString
-ProjectBuilderMakefileGenerator::pbxbuild()
-{
- if(TQFile::exists("/usr/bin/pbbuild"))
- return "pbbuild";
- if(TQFile::exists("/usr/bin/xcodebuild"))
- return "xcodebuild";
- return (pbuilderVersion() >= 38 ? "xcodebuild" : "pbxbuild");
-}
-
diff --git a/qmake/generators/mac/pbuilder_pbx.h b/qmake/generators/mac/pbuilder_pbx.h
deleted file mode 100644
index a3f43eb8e..000000000
--- a/qmake/generators/mac/pbuilder_pbx.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Definition of ProjectBuilderMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __PBUILDER_PBX_H__
-#define __PBUILDER_PBX_H__
-
-#include "unixmake.h"
-
-class ProjectBuilderMakefileGenerator : public UnixMakefileGenerator
-{
- TQString pbx_dir;
- int pbuilderVersion() const;
- bool writeSubdirs(TQTextStream &, bool);
- bool writeMakeParts(TQTextStream &);
- bool writeMakefile(TQTextStream &);
-
- TQString pbxbuild();
- TQMap keys;
- TQString keyFor(const TQString &file);
- TQString fixQuotes(const TQString &val);
- TQString fixEnvs(const TQString &file);
- TQString fixEnvsList(const TQString &where);
- int reftypeForFile(const TQString &where);
- TQString projectSuffix() const;
-
-public:
- ProjectBuilderMakefileGenerator(TQMakeProject *p);
- ~ProjectBuilderMakefileGenerator();
-
- virtual bool openOutput(TQFile &) const;
-protected:
- bool doPrecompiledHeaders() const { return FALSE; }
- virtual bool doDepends() const { return FALSE; } //never necesary
-};
-
-inline ProjectBuilderMakefileGenerator::~ProjectBuilderMakefileGenerator()
-{ }
-
-
-#endif /* __PBUILDER_PBX_H__ */
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
deleted file mode 100644
index 9bef5e05d..000000000
--- a/qmake/generators/makefile.cpp
+++ /dev/null
@@ -1,2488 +0,0 @@
-/****************************************************************************
-**
-** Implementation of MakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "makefile.h"
-#include "option.h"
-#include "meta.h"
-#include
-#include
-#include
-#include
-#include
-#if defined(Q_OS_UNIX)
-#include
-#else
-#include
-#endif
-#include
-#include
-#include
-#include
-#include
-#include
-
-// Well, Windows doesn't have this, so here's the macro
-#ifndef S_ISDIR
-#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-#endif
-#define QMAKE_EOL(x) (x == '\r' || x == '\n')
-
-TQString mkdir_p_asstring(const TQString &dir)
-{
- TQString ret = "@$(CHK_DIR_EXISTS) \"" + dir + "\" ";
- if(Option::target_mode == Option::TARG_WIN_MODE)
- ret += "$(MKDIR)";
- else
- ret += "|| $(MKDIR)";
- ret += " \"" + dir + "\"";
- return ret;
-}
-
-static bool createDir(const TQString& fullPath)
-{
- if(TQFile::exists(fullPath))
- return FALSE;
- TQDir dirTmp;
- bool ret = TRUE;
- TQString pathComponent, tmpPath;
- TQStringList hierarchy = TQStringList::split(TQString(Option::dir_sep), fullPath, TRUE);
- for(TQStringList::Iterator it = hierarchy.begin(); it != hierarchy.end(); ++it) {
- pathComponent = *it + TQDir::separator();
- tmpPath += pathComponent;
- if(!dirTmp.mkdir(tmpPath)) {
- ret = FALSE;
-// break;
- }
- }
- return ret;
-}
-
-
-MakefileGenerator::MakefileGenerator(TQMakeProject *p) : init_opath_already(FALSE),
- init_already(FALSE), tqmoc_aware(FALSE),
- no_io(FALSE), project(p)
-{
-}
-
-static char *gimme_buffer(off_t s)
-{
- static char *big_buffer = NULL;
- static int big_buffer_size = 0;
- if(!big_buffer || big_buffer_size < s)
- big_buffer = (char *)realloc(big_buffer, s);
- return big_buffer;
-}
-
-bool
-MakefileGenerator::generateMocList(const TQString &fn_target)
-{
- if(!findMocDestination(fn_target).isEmpty())
- return TRUE;
-
- TQString fn_local = Option::fixPathToLocalOS(fileFixify(fn_target, TQDir::currentDirPath(), Option::output_dir));
-
- int file = open(fn_local.latin1(), O_RDONLY);
- if(file == -1)
- return FALSE;
-
- struct stat fst;
- if(fstat(file, &fst) || S_ISDIR(fst.st_mode))
- return FALSE; //shouldn't happen
- char *big_buffer = gimme_buffer(fst.st_size);
-
- int total_size_read;
- for(int have_read = total_size_read = 0;
- (have_read = read(file, big_buffer + total_size_read,
- fst.st_size - total_size_read));
- total_size_read += have_read);
- close(file);
-
- bool ignore_tqobject = FALSE;
- int line_count = 1;
- /* qmake ignore TQ_OBJECT */
-#define COMP_LEN 9 //strlen("TQ_OBJECT")
-#define OBJ_LEN 9 //strlen("TQ_OBJECT")
-#define DIS_LEN 10 //strlen("Q_DISPATCH")
- int x;
- for(x = 0; x < (total_size_read-COMP_LEN); x++) {
- if(*(big_buffer + x) == '/') {
- x++;
- if(total_size_read >= x) {
- if(*(big_buffer + x) == '/') { //c++ style comment
- for( ;x < total_size_read && !QMAKE_EOL(*(big_buffer + x)); x++);
- line_count++;
- } else if(*(big_buffer + x) == '*') { //c style comment
- for( ;x < total_size_read; x++) {
- if(*(big_buffer + x) == 't' || *(big_buffer + x) == 'q') { //ignore
- if(total_size_read >= (x + 20)) {
- if(!strncmp(big_buffer + x + 1, "make ignore TQ_OBJECT", 20)) {
- debug_msg(2, "Mocgen: %s:%d Found \"qmake ignore TQ_OBJECT\"",
- fn_target.latin1(), line_count);
- x += 20;
- ignore_tqobject = TRUE;
- }
- }
- } else if(*(big_buffer + x) == '*') {
- if(total_size_read >= (x+1) && *(big_buffer + (x+1)) == '/') {
- x += 2;
- break;
- }
- } else if(QMAKE_EOL(*(big_buffer + x))) {
- line_count++;
- }
- }
- }
- }
- }
-#define SYMBOL_CHAR(x) ((x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z') || \
- (x <= '0' && x >= '9') || x == '_')
-
- bool interesting = ((*(big_buffer+x) == 'T') || (*(big_buffer+x) == 'Q')) && (!strncmp(big_buffer+x, "TQ_OBJECT", OBJ_LEN) ||
- !strncmp(big_buffer+x, "Q_DISPATCH", DIS_LEN));
- if(interesting) {
- int len = 0;
- if(!strncmp(big_buffer+x, "TQ_OBJECT", OBJ_LEN)) {
- if(ignore_tqobject) {
- debug_msg(2, "Mocgen: %s:%d Ignoring TQ_OBJECT", fn_target.latin1(), line_count);
- interesting = FALSE;
- }
- len=OBJ_LEN;
- } else if(!strncmp(big_buffer+x, "Q_DISPATCH", DIS_LEN)) {
- len=DIS_LEN;
- }
- if(SYMBOL_CHAR(*(big_buffer+x+len)))
- interesting = FALSE;
- if(interesting) {
- *(big_buffer+x+len) = '\0';
- debug_msg(2, "Mocgen: %s:%d Found MOC symbol %s", fn_target.latin1(),
- line_count, big_buffer+x);
-
- int ext_pos = fn_target.findRev('.');
- int ext_len = fn_target.length() - ext_pos;
- int dir_pos = fn_target.findRev(Option::dir_sep, ext_pos);
- TQString mocFile;
- if(!project->isEmpty("MOC_DIR"))
- mocFile = project->first("MOC_DIR");
- else if(dir_pos != -1)
- mocFile = fn_target.left(dir_pos+1);
-
- bool cpp_ext = FALSE;
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin();
- cppit != Option::cpp_ext.end(); ++cppit) {
- if((cpp_ext = (fn_target.right(ext_len) == (*cppit))))
- break;
- }
- if(cpp_ext) {
- mocFile += Option::cpp_moc_mod + fn_target.mid(dir_pos+1, ext_pos - dir_pos-1) + Option::cpp_moc_ext;
- project->variables()["_SRCMOC"].append(mocFile);
- } else if(project->variables()["HEADERS"].findIndex(fn_target) != -1) {
- for(TQStringList::Iterator hit = Option::h_ext.begin();
- hit != Option::h_ext.end(); ++hit) {
- if((fn_target.right(ext_len) == (*hit))) {
- mocFile += Option::h_moc_mod + fn_target.mid(dir_pos+1, ext_pos - dir_pos-1) +
- Option::h_moc_ext;
- logicWarn(mocFile, "SOURCES");
- project->variables()["_HDRMOC"].append(mocFile);
- break;
- }
- }
- }
-
- if(!mocFile.isEmpty()) {
- mocFile = Option::fixPathToTargetOS(mocFile);
- mocablesToMOC[cleanFilePath(fn_target)] = mocFile;
- mocablesFromMOC[cleanFilePath(mocFile)] = fn_target;
- }
- break;
- }
- }
-
- while(x < total_size_read && SYMBOL_CHAR(*(big_buffer+x)))
- x++;
- if(QMAKE_EOL(*(big_buffer+x)))
- line_count++;
- }
-#undef OBJ_LEN
-#undef DIS_LEN
- return TRUE;
-}
-
-bool
-MakefileGenerator::generateDependencies(TQPtrList &dirs, const TQString &f, bool recurse)
-{
- if(processedDependencies(f))
- return TRUE;
- setProcessedDependencies(f, TRUE);
-
- TQStringList &fndeps = findDependencies(f);
- TQString fn = fileFixify(f, TQDir::currentDirPath(), Option::output_dir);
- fn = Option::fixPathToLocalOS(fn, FALSE);
- TQString fix_env_fn = Option::fixPathToLocalOS(fn);
- int file = open(fix_env_fn.latin1(), O_RDONLY);
- if(file == -1)
- return FALSE;
- struct stat fst;
- if(fstat(file, &fst) || S_ISDIR(fst.st_mode))
- return FALSE; //shouldn't happen
-
- TQString fndir, fix_env_fndir;
- int dl = fn.findRev(Option::dir_sep);
- if(dl != -1)
- fndir = fn.left(dl+1);
- dl = fix_env_fn.findRev(Option::dir_sep);
- if(dl != -1)
- fix_env_fndir = fix_env_fn.left(dl + 1);
-
- int line_count = 1;
- char *big_buffer = gimme_buffer(fst.st_size);
-
- int total_size_read;
- for(int have_read = total_size_read = 0;
- (have_read = read(file, big_buffer + total_size_read,
- fst.st_size - total_size_read));
- total_size_read += have_read);
- close(file);
-
- bool ui_file = fn.endsWith(Option::ui_ext);
- for(int x = 0; x < total_size_read; x++) {
- TQStringList *outdeps=&fndeps;
- TQString inc;
- if(!ui_file) {
- if(*(big_buffer + x) == '/') {
- x++;
- if(total_size_read >= x) {
- if(*(big_buffer + x) == '/') { //c++ style comment
- for( ; x < total_size_read && !QMAKE_EOL(*(big_buffer + x)); x++);
- } else if(*(big_buffer + x) == '*') { //c style comment
- for( ; x < total_size_read; x++) {
- if(*(big_buffer + x) == '*') {
- if(total_size_read >= (x+1) && *(big_buffer + (x+1)) == '/') {
- x += 2;
- break;
- }
- } else if(QMAKE_EOL(*(big_buffer + x))) {
- line_count++;
- }
- }
- }
- }
- }
- while(x < total_size_read && //Skip spaces
- (*(big_buffer+x) == ' ' || *(big_buffer+x) == '\t'))
- x++;
- if(*(big_buffer + x) == '#') {
- x++;
- while(x < total_size_read && //Skip spaces after hash
- (*(big_buffer+x) == ' ' || *(big_buffer+x) == '\t'))
- x++;
- if(total_size_read >= x + 8 && !strncmp(big_buffer + x, "include", 7) &&
- (*(big_buffer + x + 7) == ' ' || *(big_buffer + x + 7) == '\t' ||
- *(big_buffer + x + 7) == '<' || *(big_buffer + x + 7) == '"')) {
- for(x+=7; //skip spaces after keyword
- x < total_size_read && (*(big_buffer+x) == ' ' || *(big_buffer+x) == '\t');
- x++);
- char term = *(big_buffer + x);
- if(term == '"');
- else if(term == '<')
- term = '>';
- else
- continue; //wtf?
- x++;
-
- int inc_len;
- for(inc_len = 0; *(big_buffer + x + inc_len) != term &&
- !QMAKE_EOL(*(big_buffer + x + inc_len)); inc_len++);
- *(big_buffer + x + inc_len) = '\0';
- inc = big_buffer + x;
- } else if(total_size_read >= x + 14 && !strncmp(big_buffer + x, "qmake_warning ", 14)) {
- for(x+=14; //skip spaces after keyword
- x < total_size_read && (*(big_buffer+x) == ' ' || *(big_buffer+x) == '\t');
- x++);
- char term = 0;
- if(*(big_buffer + x) == '"')
- term = '"';
- if(*(big_buffer + x) == '\'')
- term = '\'';
- if(term)
- x++;
-
- int msg_len;
- for(msg_len = 0; (term && *(big_buffer + x + msg_len) != term) &&
- !QMAKE_EOL(*(big_buffer + x + msg_len)); msg_len++);
- const char saved_term = *(big_buffer + x + msg_len);
- *(big_buffer + x + msg_len) = '\0';
- TQString msg = big_buffer + x;
- debug_msg(0, "%s:%d qmake_warning -- %s", fix_env_fn.latin1(),
- line_count, msg.latin1());
- *(big_buffer + x + msg_len) = saved_term; //put it back
- }
- }
- } else if(ui_file) {
- // skip whitespaces
- while(x < total_size_read &&
- (*(big_buffer+x) == ' ' || *(big_buffer+x) == '\t'))
- x++;
- if(*(big_buffer + x) == '<') {
- x++;
- if(total_size_read >= x + 13 && !strncmp(big_buffer + x, "customwidget", 12) &&
- (*(big_buffer + x + 12) == ' ' || *(big_buffer + x + 12) == '>')) {
- for(x += 13; *(big_buffer + x) != '>'; x++); //skip up to >
- while(x < total_size_read) {
- for(x++; *(big_buffer + x) != '<'; x++); //skip up to <
- x++;
- if(total_size_read >= x + 7 && !strncmp(big_buffer+x, "header", 6) &&
- (*(big_buffer + x + 6) == ' ' || *(big_buffer + x + 6) == '>')) {
- for(x += 7; *(big_buffer + x) != '>'; x++); //skip up to >
- int inc_len = 0;
- for(x += 1 ; *(big_buffer + x + inc_len) != '<'; inc_len++);
- *(big_buffer + x + inc_len) = '\0';
- inc = big_buffer + x;
- break;
- } else if(total_size_read >= x + 14 && !strncmp(big_buffer+x, "/customwidget", 13) &&
- (*(big_buffer + x + 13) == ' ' || *(big_buffer + x + 13) == '>')) {
- x += 14;
- break;
- }
- }
- } else if(total_size_read >= x + 8 && !strncmp(big_buffer + x, "include", 7) &&
- (*(big_buffer + x + 7) == ' ' || *(big_buffer + x + 7) == '>')) {
- for(x += 8; *(big_buffer + x) != '>'; x++) {
- if(total_size_read >= x + 9 && *(big_buffer + x) == 'i' &&
- !strncmp(big_buffer + x, "impldecl", 8)) {
- for(x += 8; *(big_buffer + x) != '='; x++);
- if(*(big_buffer + x) != '=')
- continue;
- for(x++; *(big_buffer+x) == '\t' || *(big_buffer+x) == ' '; x++);
- char quote = 0;
- if(*(big_buffer+x) == '\'' || *(big_buffer+x) == '"') {
- quote = *(big_buffer + x);
- x++;
- }
- int val_len;
- for(val_len = 0; TRUE; val_len++) {
- if(quote) {
- if(*(big_buffer+x+val_len) == quote)
- break;
- } else if(*(big_buffer + x + val_len) == '>' ||
- *(big_buffer + x + val_len) == ' ') {
- break;
- }
- }
- char saved = *(big_buffer + x + val_len);
- *(big_buffer + x + val_len) = '\0';
- TQString where = big_buffer + x;
- *(big_buffer + x + val_len) = saved;
- if(where == "in implementation") {
- TQString cpp = fn.left(fn.length() - Option::ui_ext.length()) +
- Option::cpp_ext.first();
- outdeps = &findDependencies(cpp);
- }
- }
- }
- int inc_len = 0;
- for(x += 1 ; *(big_buffer + x + inc_len) != '<'; inc_len++);
- *(big_buffer + x + inc_len) = '\0';
- inc = big_buffer + x;
- }
- }
- }
-
- if(!inc.isEmpty()) {
- bool from_source_dir = TRUE;
- debug_msg(5, "%s:%d Found dependency to %s", fix_env_fn.latin1(),
- line_count, inc.latin1());
- if(!project->isEmpty("SKIP_DEPENDS")) {
- bool found = FALSE;
- TQStringList &nodeplist = project->values("SKIP_DEPENDS");
- for(TQStringList::Iterator it = nodeplist.begin();
- it != nodeplist.end(); ++it) {
- TQRegExp regx((*it));
- if(regx.search(inc) != -1) {
- found = TRUE;
- break;
- }
- }
- if(found)
- continue;
- }
- TQString fqn;
- if(project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH") &&
- !stat(fix_env_fndir + inc, &fst) && !S_ISDIR(fst.st_mode)) {
- fqn = fndir + inc;
- goto handle_fqn;
- } else if(project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH") &&
- !stat(inc, &fst) && !S_ISDIR(fst.st_mode)) {
- fqn = inc;
- goto handle_fqn;
- } else {
- if((Option::target_mode == Option::TARG_MAC9_MODE && inc.find(':')) ||
- (Option::target_mode == Option::TARG_WIN_MODE && inc[1] != ':') ||
- ((Option::target_mode == Option::TARG_UNIX_MODE ||
- Option::target_mode == Option::TARG_QNX6_MODE ||
- Option::target_mode == Option::TARG_MACX_MODE) &&
- inc[0] != '/')) {
- for(MakefileDependDir *mdd = dirs.first(); mdd; mdd = dirs.next() ) {
- if(!stat(mdd->local_dir + TQDir::separator() + inc, &fst) &&
- !S_ISDIR(fst.st_mode)) {
- fqn = mdd->real_dir + TQDir::separator() + inc;
- goto handle_fqn;
- }
- }
- }
- }
- if(fqn.isEmpty() && Option::mkfile::do_dep_heuristics) {
- //these are some hacky heuristics it will try to do on an include
- //however these can be turned off at runtime, I'm not sure how
- //reliable these will be, most likely when problems arise turn it off
- //and see if they go away..
- if(depHeuristics.contains(inc)) {
- fqn = depHeuristics[inc];
- from_source_dir = FALSE;
- } else if(Option::mkfile::do_dep_heuristics) { //some heuristics..
- //is it a file from a .ui?
- TQString inc_file = inc.section(Option::dir_sep, -1);
- int extn = inc_file.findRev('.');
- if(extn != -1 &&
- (inc_file.right(inc_file.length()-extn) == Option::cpp_ext.first() ||
- inc_file.right(inc_file.length()-extn) == Option::h_ext.first())) {
- TQString uip = inc_file.left(extn) + Option::ui_ext;
- TQStringList uil = project->variables()["FORMS"];
- for(TQStringList::Iterator it = uil.begin(); it != uil.end(); ++it) {
- if((*it).section(Option::dir_sep, -1) == uip) {
- if(!project->isEmpty("UI_DIR"))
- fqn = project->first("UI_DIR");
- else if(!project->isEmpty("UI_HEADERS_DIR"))
- fqn = project->first("UI_HEADERS_DIR");
- else
- fqn = (*it).section(Option::dir_sep, 0, -2);
- if(!fqn.isEmpty() && !fqn.endsWith(Option::dir_sep))
- fqn += Option::dir_sep;
- fqn += inc_file;
- from_source_dir = FALSE; //uics go in the output_dir (so don't fix them)
- fqn = fileFixify(fqn, TQDir::currentDirPath(), Option::output_dir);
- goto cache_fqn;
- }
- }
- }
- if(project->isActiveConfig("lex_included")) { //is this the lex file?
- TQString rhs = Option::lex_mod + Option::cpp_ext.first();
- if(inc.endsWith(rhs)) {
- TQString lhs = inc.left(inc.length() - rhs.length()) + Option::lex_ext;
- TQStringList ll = project->variables()["LEXSOURCES"];
- for(TQStringList::Iterator it = ll.begin(); it != ll.end(); ++it) {
- TQString s = (*it), d;
- int slsh = s.findRev(Option::dir_sep);
- if(slsh != -1) {
- d = s.left(slsh + 1);
- s = s.right(s.length() - slsh - 1);
- }
- if(!project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH"))
- d = project->first("QMAKE_ABSOLUTE_SOURCE_PATH");
- if(s == lhs) {
- fqn = d + inc;
- from_source_dir = FALSE; //uics go in the output_dir (so don't fix them)
- fqn = fileFixify(fqn, TQDir::currentDirPath(), Option::output_dir);
- goto cache_fqn;
- }
- }
- }
- }
- { //is it from a .y?
- TQString rhs = Option::yacc_mod + Option::h_ext.first();
- if(inc.endsWith(rhs)) {
- TQString lhs = inc.left(inc.length() - rhs.length()) + Option::yacc_ext;
- TQStringList yl = project->variables()["YACCSOURCES"];
- for(TQStringList::Iterator it = yl.begin(); it != yl.end(); ++it) {
- TQString s = (*it), d;
- int slsh = s.findRev(Option::dir_sep);
- if(slsh != -1) {
- d = s.left(slsh + 1);
- s = s.right(s.length() - slsh - 1);
- }
- if(!project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH"))
- d = project->first("QMAKE_ABSOLUTE_SOURCE_PATH");
- if(s == lhs) {
- fqn = d + inc;
- from_source_dir = FALSE; //uics go in the output_dir (so don't fix them)
- fqn = fileFixify(fqn, TQDir::currentDirPath(), Option::output_dir);
- goto cache_fqn;
- }
- }
- }
- }
- if( tqmocAware() && //is it a moc file?
- ( inc.endsWith(Option::cpp_ext.first()) || inc.endsWith(Option::cpp_moc_ext) )
- || ( (Option::cpp_ext.first() != Option::h_moc_ext) && inc.endsWith(Option::h_moc_ext) )) {
- TQString mocs[] = { TQString("_HDRMOC"), TQString("_SRCMOC"), TQString::null };
- for(int moc = 0; !mocs[moc].isNull(); moc++) {
- TQStringList &l = project->variables()[mocs[moc]];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString file = Option::fixPathToTargetOS((*it));
- if(file.section(Option::dir_sep, -(inc.contains('/')+1)) == inc) {
- fqn = (*it);
- if(mocs[moc] == "_HDRMOC") {
- //Since it is include, no need to link it in as well
- project->variables()["_SRCMOC"].append((*it));
- l.remove(it);
- } else if(!findMocSource(fqn).endsWith(fileFixify(fn))) {
- /* Not really a very good test, but this will at least avoid
- confusion if it really does happen (since tmake/qmake
- previously didn't even allow this the test is mostly accurate) */
- warn_msg(WarnLogic,
- "Found potential multiple MOC include %s (%s) in '%s'",
- inc.latin1(), fqn.latin1(), fix_env_fn.latin1());
- }
- from_source_dir = FALSE; //mocs go in the output_dir (so don't fix them)
- goto cache_fqn;
- }
- }
- }
- }
- fqn = findDependency(inc); //all else fails..
- cache_fqn:
- if(from_source_dir) {
- fqn = fileFixify(fqn);
- from_source_dir = FALSE;
- }
- depHeuristics.insert(inc, fqn);
- }
- }
- handle_fqn:
- if(fqn.isEmpty()) //I give up
- continue;
- fqn = Option::fixPathToTargetOS(fqn, FALSE);
- if(from_source_dir)
- fqn = fileFixify(fqn);
- debug_msg(4, "Resolved dependency of %s to %s", inc.latin1(), fqn.latin1());
- if(outdeps && outdeps->findIndex(fqn) == -1)
- outdeps->append(fqn);
- }
- //read past new line now..
- for( ; x < total_size_read && !QMAKE_EOL(*(big_buffer + x)); x++);
- line_count++;
- }
-
- if(recurse) {
- for(TQStringList::Iterator fnit = fndeps.begin(); fnit != fndeps.end(); ++fnit) {
- generateDependencies(dirs, (*fnit), recurse);
- TQStringList &deplist = findDependencies((*fnit));
- for(TQStringList::Iterator it = deplist.begin(); it != deplist.end(); ++it)
- if(fndeps.findIndex((*it)) == -1 && (*it) != fn)
- fndeps.append((*it));
- }
- }
- debug_msg(2, "Dependencies: %s -> %s", fn.latin1(), fndeps.join(" :: ").latin1());
- return TRUE;
-}
-
-void
-MakefileGenerator::initOutPaths()
-{
- if(init_opath_already)
- return;
- init_opath_already = TRUE;
- TQMap &v = project->variables();
- if(!v.contains("QMAKE_ABSOLUTE_SOURCE_PATH")) {
- if(Option::mkfile::do_cache && !Option::mkfile::cachefile.isEmpty() &&
- v.contains("QMAKE_ABSOLUTE_SOURCE_ROOT")) {
- TQString root = v["QMAKE_ABSOLUTE_SOURCE_ROOT"].first();
- root = Option::fixPathToTargetOS( root );
- if(!root.isEmpty()) {
- TQFileInfo fi(Option::mkfile::cachefile);
- if(!fi.convertToAbs()) {
- TQString cache_r = fi.dirPath(), pwd = Option::output_dir;
- if ( pwd.startsWith(cache_r) && !pwd.startsWith(root) ) {
- pwd = Option::fixPathToTargetOS(root + pwd.mid(cache_r.length()));
- if(TQFile::exists(pwd))
- v.insert("QMAKE_ABSOLUTE_SOURCE_PATH", pwd);
- }
- }
- }
- }
- }
- if(!v["QMAKE_ABSOLUTE_SOURCE_PATH"].isEmpty()) {
- TQString &asp = v["QMAKE_ABSOLUTE_SOURCE_PATH"].first();
- asp = Option::fixPathToTargetOS( asp );
- if(asp.isEmpty() || asp == Option::output_dir) //if they're the same, why bother?
- v["QMAKE_ABSOLUTE_SOURCE_PATH"].clear();
- }
- TQString currentDir = TQDir::currentDirPath();
- TQString dirs[] = { TQString("OBJECTS_DIR"), TQString("MOC_DIR"), TQString("UI_HEADERS_DIR"),
- TQString("UI_SOURCES_DIR"), TQString("UI_DIR"), TQString("DESTDIR"),
- TQString("SUBLIBS_DIR"), TQString("DLLDESTDIR"), TQString::null };
- for(int x = 0; dirs[x] != TQString::null; x++) {
- if ( !v[dirs[x]].isEmpty() ) {
- TQString orig_path = v[dirs[x]].first();
-#ifdef TQ_WS_WIN
- // We don't want to add a separator for DLLDESTDIR on Windows
- if (!(dirs[x] == "DLLDESTDIR"))
-#endif
- {
- TQString &path = v[dirs[x]].first();
- path = fileFixify(path, Option::output_dir, Option::output_dir);
- if(path.right(Option::dir_sep.length()) != Option::dir_sep)
- path += Option::dir_sep;
- }
- if(noIO())
- continue;
-
- TQString path = project->first(dirs[x]); //not to be changed any further
- path = Option::fixPathToTargetOS(fileFixify(path, TQDir::currentDirPath(), Option::output_dir));
- debug_msg(3, "Fixed output_dir %s (%s) into %s (%s)", dirs[x].latin1(), orig_path.latin1(),
- v[dirs[x]].join("::").latin1(), path.latin1());
-
- TQDir d;
- if(path.startsWith(Option::dir_sep)) {
- d.cd(Option::dir_sep);
- path = path.right(path.length() - 1);
- }
-#ifdef TQ_WS_WIN
- bool driveExists = TRUE;
- if ( !TQDir::isRelativePath( path ) ) {
- if ( TQFile::exists( path.left( 3 ) ) ) {
- d.cd( path.left( 3 ) );
- path = path.right( path.length() - 3 );
- } else {
- warn_msg(WarnLogic, "%s: Cannot access drive '%s' (%s)", dirs[x].latin1(),
- path.left( 3 ).latin1(), path.latin1() );
- driveExists = FALSE;
- }
- }
- if ( driveExists ) {
-#endif
- TQStringList subs = TQStringList::split(Option::dir_sep, path);
- for(TQStringList::Iterator subit = subs.begin(); subit != subs.end(); ++subit) {
- if(!d.cd(*subit)) {
- d.mkdir((*subit));
- if ( d.exists( (*subit) ) )
- d.cd((*subit));
- else {
- warn_msg(WarnLogic, "%s: Cannot access directory '%s' (%s)", dirs[x].latin1(),
- (*subit).latin1(), path.latin1() );
- break;
- }
- }
- }
-#ifdef TQ_WS_WIN
- }
-#endif
- }
- }
- if ( !v["DESTDIR"].isEmpty() ) {
- TQDir d(v["DESTDIR"].first());
- if(Option::fixPathToLocalOS(d.absPath()) == Option::fixPathToLocalOS(Option::output_dir))
- v.remove("DESTDIR");
- }
- TQDir::current().cd( currentDir );
-}
-
-void
-MakefileGenerator::init()
-{
- initOutPaths();
- if(init_already)
- return;
- init_already = TRUE;
-
- TQMap &v = project->variables();
- TQString paths[] = { TQString("SOURCES"), TQString("FORMS"), TQString("YACCSOURCES"), TQString("INCLUDEPATH"),
- TQString("HEADERS"), TQString("HEADERS_ORIG"), TQString("LEXSOURCES"),
- TQString("QMAKE_INTERNAL_INCLUDED_FILES"),
- TQString("PRECOMPILED_HEADER"), TQString::null };
- for(int y = 0; paths[y] != TQString::null; y++) {
- TQStringList &l = v[paths[y]];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- if ((*it).isEmpty())
- continue;
- if(TQFile::exists((*it)))
- (*it) = fileFixify((*it));
- }
- }
-
- /* get deps and mocables */
- TQDict cache_found_files;
- TQString cache_file(".qmake.internal.cache");
- if(!project->isEmpty("QMAKE_INTERNAL_CACHE_FILE"))
- cache_file = Option::fixPathToLocalOS(project->first("QMAKE_INTERNAL_CACHE_FILE"));
- if(cache_file.find(TQDir::separator()) == -1) //guess they know what they are doing..
- cache_file.prepend(Option::output_dir + TQDir::separator());
- if((Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT ||
- Option::mkfile::do_deps || Option::mkfile::do_mocs) && !noIO()) {
- TQPtrList deplist;
- deplist.setAutoDelete(TRUE);
- if((Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT || Option::mkfile::do_deps) &&
- doDepends()) {
- TQStringList incDirs = v["DEPENDPATH"] + v["QMAKE_ABSOLUTE_SOURCE_PATH"];
- if(project->isActiveConfig("depend_includepath"))
- incDirs += v["INCLUDEPATH"];
- for(TQStringList::Iterator it = incDirs.begin(); it != incDirs.end(); ++it) {
- TQString r = (*it), l = Option::fixPathToLocalOS((*it));
- deplist.append(new MakefileDependDir(r.replace("\"",""),
- l.replace("\"","")));
- }
- debug_msg(1, "Dependency Directories: %s", incDirs.join(" :: ").latin1());
- if(Option::output.name() != "-" && project->isActiveConfig("qmake_cache")) {
- TQFile cachef(cache_file);
- if(cachef.open(IO_ReadOnly | IO_Translate)) {
- TQFileInfo cachefi(cache_file);
- debug_msg(2, "Trying internal cache information: %s", cache_file.latin1());
- TQTextStream cachet(&cachef);
- TQString line, file;
- enum { CacheInfo, CacheDepend, CacheMoc } state = CacheInfo;
- while (!cachet.eof()) {
- line = cachet.readLine().stripWhiteSpace();
- int sep = line.find('=');
- if(line == "[depend]") {
- state = CacheDepend;
- } else if(line == "[mocable]") {
- state = CacheMoc;
- } else if(line == "[check]") {
- state = CacheInfo;
- } else if(!line.isEmpty() && sep != -1) {
- file = line.left(sep).stripWhiteSpace();
- line = line.right(line.length() - sep - 1).stripWhiteSpace();
- if(state == CacheInfo) {
- if(file == "QMAKE_CACHE_VERSION") {
- if(line != qmake_version())
- break;
- } else {
- const TQStringList &l = project->variables()[file];
- if(!l.isEmpty() && !line.isEmpty() && l.join(" ") != line)
- break;
- }
- } else if(state == CacheDepend) {
- bool found = (bool)cache_found_files[file];
- TQStringList files = TQStringList::split(" ", line);
- if(!found) {
- TQFileInfo fi(fileFixify(file, TQDir::currentDirPath(), Option::output_dir));
- if(fi.exists() && fi.lastModified() < cachefi.lastModified()) {
- cache_found_files.insert(file, (void *)1);
- found = TRUE;
- }
- }
- if(found) {
- for(TQStringList::Iterator dep_it = files.begin();
- dep_it != files.end(); ++dep_it) {
- if(!cache_found_files[(*dep_it)]) {
- TQFileInfo fi(fileFixify((*dep_it), TQDir::currentDirPath(), Option::output_dir));
- if(fi.exists() &&
- fi.lastModified() < cachefi.lastModified()) {
- cache_found_files.insert((*dep_it), (void *)1);
- } else {
- found = FALSE;
- break;
- }
- }
- }
- if(found) {
- debug_msg(2, "Dependencies (cached): %s -> %s", file.latin1(),
- files.join(" :: ").latin1());
- findDependencies(file) = files;
- setProcessedDependencies(file, TRUE);
- }
- }
- } else {
- void *found = cache_found_files[file];
- if(found != (void *)2) {
- if(found) {
- cache_found_files.replace(file, (void *)2);
- } else {
- TQFileInfo fi(fileFixify(file, TQDir::currentDirPath(), Option::output_dir));
- if(fi.exists() && fi.lastModified() < cachefi.lastModified()) {
- cache_found_files.insert(file, (void *)2);
- found = (void*)1;
- }
- }
- }
- if(found && line != "*qmake_ignore*") {
- int ext_len = file.length() - file.findRev('.');
- bool cpp_ext = FALSE;
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin();
- cppit != Option::cpp_ext.end(); ++cppit) {
- if((cpp_ext = (file.right(ext_len) == (*cppit))))
- break;
- }
- if(cpp_ext) {
- project->variables()["_SRCMOC"].append(line);
- } else if(project->variables()["HEADERS"].findIndex(file) != -1) {
- for(TQStringList::Iterator hit = Option::h_ext.begin();
- hit != Option::h_ext.end(); ++hit) {
- if((file.right(ext_len) == (*hit))) {
- project->variables()["_HDRMOC"].append(line);
- break;
- }
- }
- }
- debug_msg(2, "Mocgen (cached): %s -> %s", file.latin1(),
- line.latin1());
- mocablesToMOC[file] = line;
- mocablesFromMOC[line] = file;
- }
- }
- }
- }
- cachef.close();
- }
- }
- }
- if(!noIO()) {
- TQString sources[] = { TQString("OBJECTS"), TQString("LEXSOURCES"), TQString("YACCSOURCES"),
- TQString("HEADERS"), TQString("SOURCES"), TQString("FORMS"),
- TQString("PRECOMPILED_HEADER"), TQString::null };
- depHeuristics.clear();
- bool write_cache = FALSE, read_cache = TQFile::exists(cache_file);
- int x;
- for(x = 0; sources[x] != TQString::null; x++) {
- TQStringList vpath, &l = v[sources[x]];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- if(!(*val_it).isEmpty()) {
- TQString file = fileFixify((*val_it), TQDir::currentDirPath(), Option::output_dir);
- if(!TQFile::exists(file)) {
- bool found = FALSE;
- if(TQDir::isRelativePath((*val_it))) {
- if(vpath.isEmpty())
- vpath = v["VPATH_" + sources[x]] + v["VPATH"] +
- v["QMAKE_ABSOLUTE_SOURCE_PATH"] + v["DEPENDPATH"];
-
- for(TQStringList::Iterator vpath_it = vpath.begin();
- vpath_it != vpath.end(); ++vpath_it) {
- TQString real_dir = Option::fixPathToLocalOS((*vpath_it));
- if(TQFile::exists(real_dir + TQDir::separator() + (*val_it))) {
- TQString dir = (*vpath_it);
- if(dir.right(Option::dir_sep.length()) != Option::dir_sep)
- dir += Option::dir_sep;
- (*val_it) = fileFixify(dir + (*val_it));
- found = TRUE;
- debug_msg(1, "Found file through vpath %s -> %s",
- file.latin1(), (*val_it).latin1());
- break;
- }
- }
- }
- if(!found) {
- TQString dir, regex = (*val_it), real_dir;
- if(regex.findRev(Option::dir_sep) != -1) {
- dir = regex.left(regex.findRev(Option::dir_sep) + 1);
- real_dir = fileFixify(Option::fixPathToLocalOS(dir),
- TQDir::currentDirPath(), Option::output_dir);
- regex = regex.right(regex.length() - dir.length());
- }
- if(real_dir.isEmpty() || TQFile::exists(real_dir)) {
- TQDir d(real_dir, regex);
- if(!d.count()) {
- debug_msg(1, "%s:%d Failure to find %s in vpath (%s)",
- __FILE__, __LINE__,
- (*val_it).latin1(), vpath.join("::").latin1());
- warn_msg(WarnLogic, "Failure to find: %s", (*val_it).latin1());
- continue;
- } else {
- for(int i = 0; i < (int)d.count(); i++) {
- TQString file = fileFixify(dir + d[i]);
- if(i == (int)d.count() - 1)
- (*val_it) = file;
- else
- l.insert(val_it, file);
- }
- }
- } else {
- debug_msg(1, "%s:%d Cannot match %s%c%s, as %s does not exist.",
- __FILE__, __LINE__,
- real_dir.latin1(), TQDir::separator(), regex.latin1(),
- real_dir.latin1());
- warn_msg(WarnLogic, "Failure to find: %s", (*val_it).latin1());
- }
- }
- }
- }
- }
- }
- for(x = 0; sources[x] != TQString::null; x++) {
- TQStringList &l = v[sources[x]];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- bool found_cache_moc = FALSE, found_cache_dep = FALSE;
- if(read_cache && Option::output.name() != "-" &&
- project->isActiveConfig("qmake_cache")) {
- if(processedDependencies((*val_it)))
- found_cache_dep = TRUE;
- if(cache_found_files[(*val_it)] == (void *)2)
- found_cache_moc = TRUE;
- if(!found_cache_moc || !found_cache_dep)
- write_cache = TRUE;
- }
- /* Do tqmoc before dependency checking since some includes can come from
- tqmoc_*.cpp files */
- if(found_cache_moc) {
- TQString fixed_file(fileFixify((*val_it), TQDir::currentDirPath(), Option::output_dir));
- TQString moc = findMocDestination(fixed_file);
- if(!moc.isEmpty()) {
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin();
- cppit != Option::cpp_ext.end(); ++cppit) {
- if(fixed_file.endsWith((*cppit))) {
- TQStringList &deps = findDependencies(fixed_file);
- if(!deps.contains(moc))
- deps.append(moc);
- break;
- }
- }
- }
- } else if(tqmocAware() && (sources[x] == "SOURCES" || sources[x] == "HEADERS") &&
- (Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT ||
- Option::mkfile::do_mocs)) {
- generateMocList((*val_it));
- }
- if(!found_cache_dep && sources[x] != "OBJECTS") {
- debug_msg(5, "Looking for dependencies for %s", (*val_it).latin1());
- generateDependencies(deplist, (*val_it), doDepends());
- }
- }
- }
- if(project->isActiveConfig("qmake_cache") && (write_cache || !read_cache)) {
- TQFile cachef(cache_file);
- if(cachef.open(IO_WriteOnly | IO_Translate)) {
- debug_msg(2, "Writing internal cache information: %s", cache_file.latin1());
- TQTextStream cachet(&cachef);
- cachet << "[check]" << "\n"
- << "QMAKE_CACHE_VERSION = " << qmake_version() << "\n"
- << "QMAKE_ABSOLUTE_SOURCE_PATH = " << var("QMAKE_ABSOLUTE_SOURCE_PATH") << "\n"
- << "MOC_DIR = " << var("MOC_DIR") << "\n"
- << "UI_DIR = " << var("UI_DIR") << "\n"
- << "UI_HEADERS_DIR = " << var("UI_HEADERS_DIR") << "\n"
- << "UI_SOURCES_DIR = " << var("UI_SOURCES_DIR") << "\n";
- cachet << "[depend]" << endl;
- for(TQMap::Iterator it = depends.begin();
- it != depends.end(); ++it)
- cachet << dependencyKey(it.key()) << " = " << it.data().join(" ") << endl;
- cachet << "[mocable]" << endl;
- TQString mc, moc_sources[] = { TQString("HEADERS"), TQString("SOURCES"), TQString::null };
- for(int x = 0; moc_sources[x] != TQString::null; x++) {
- TQStringList &l = v[moc_sources[x]];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- TQString f = fileFixify((*val_it));
- if(!f.isEmpty()) {
- mc = mocablesToMOC[f];
- if(mc.isEmpty())
- mc = "*qmake_ignore*";
- cachet << f << " = " << mc << endl;
- }
- }
- }
- cachef.close();
- }
- }
- }
- }
- v["OBJECTS"] = createObjectList("SOURCES") + v["OBJECTS"]; // init variables
-
- //lex files
- {
- TQStringList &impls = v["LEXIMPLS"];
- TQStringList &l = v["LEXSOURCES"];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString dir;
- TQFileInfo fi((*it));
- if(fi.dirPath() != ".")
- dir = fi.dirPath() + Option::dir_sep;
- dir = fileFixify(dir, TQDir::currentDirPath(), Option::output_dir);
- if(!dir.isEmpty() && dir.right(Option::dir_sep.length()) != Option::dir_sep)
- dir += Option::dir_sep;
- TQString impl = dir + fi.baseName(TRUE) + Option::lex_mod + Option::cpp_ext.first();
- logicWarn(impl, "SOURCES");
- logicWarn(impl, "SOURCES");
- impls.append(impl);
- if( ! project->isActiveConfig("lex_included")) {
- v["SOURCES"].append(impl);
- // attribute deps of lex file to impl file
- TQStringList &lexdeps = findDependencies((*it));
- TQStringList &impldeps = findDependencies(impl);
- for(TQStringList::ConstIterator d = lexdeps.begin(); d != lexdeps.end(); ++d) {
- if(!impldeps.contains(*d))
- impldeps.append(*d);
- }
- lexdeps.clear();
- }
- }
- if( ! project->isActiveConfig("lex_included"))
- v["OBJECTS"] += (v["LEXOBJECTS"] = createObjectList("LEXIMPLS"));
- }
- //yacc files
- {
- TQStringList &decls = v["YACCCDECLS"], &impls = v["YACCIMPLS"];
- TQStringList &l = v["YACCSOURCES"];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString dir;
- TQFileInfo fi((*it));
- if(fi.dirPath() != ".")
- dir = fi.dirPath() + Option::dir_sep;
- dir = fileFixify(dir, TQDir::currentDirPath(), Option::output_dir);
- if(!dir.isEmpty() && dir.right(Option::dir_sep.length()) != Option::dir_sep)
- dir += Option::dir_sep;
- TQString impl = dir + fi.baseName(TRUE) + Option::yacc_mod + Option::cpp_ext.first();
- logicWarn(impl, "SOURCES");
- TQString decl = dir + fi.baseName(TRUE) + Option::yacc_mod + Option::h_ext.first();
- logicWarn(decl, "HEADERS");
-
- decls.append(decl);
- impls.append(impl);
- v["SOURCES"].append(impl);
- TQStringList &impldeps = findDependencies(impl);
- impldeps.append(decl);
- // attribute deps of yacc file to impl file
- TQStringList &yaccdeps = findDependencies((*it));
- for(TQStringList::ConstIterator d = yaccdeps.begin(); d != yaccdeps.end(); ++d) {
- if(!impldeps.contains(*d))
- impldeps.append(*d);
- }
- if( project->isActiveConfig("lex_included")) {
- // is there a matching lex file ? Transfer its dependencies.
- TQString lexsrc = fi.baseName(TRUE) + Option::lex_ext;
- if(fi.dirPath() != ".")
- lexsrc.prepend(fi.dirPath() + Option::dir_sep);
- if(v["LEXSOURCES"].findIndex(lexsrc) != -1) {
- TQString trg = dir + fi.baseName(TRUE) + Option::lex_mod + Option::cpp_ext.first();
- impldeps.append(trg);
- impldeps += findDependencies(lexsrc);
- depends[lexsrc].clear();
- }
- }
- yaccdeps.clear();
- }
- v["OBJECTS"] += (v["YACCOBJECTS"] = createObjectList("YACCIMPLS"));
- }
-
- //UI files
- {
- TQStringList &includepath = project->variables()["INCLUDEPATH"];
- if(!project->isEmpty("UI_DIR"))
- includepath.append(project->first("UI_DIR"));
- else if(!project->isEmpty("UI_HEADERS_DIR"))
- includepath.append(project->first("UI_HEADERS_DIR"));
- TQStringList &decls = v["UICDECLS"], &impls = v["UICIMPLS"];
- TQStringList &l = v["FORMS"];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString impl, decl;
- TQFileInfo fi(Option::fixPathToLocalOS((*it)));
- if ( !project->isEmpty("UI_DIR") ) {
- impl = decl = project->first("UI_DIR");
- TQString d = fi.dirPath();
- if( d == ".")
- d = TQDir::currentDirPath();
- d = fileFixify(d, TQDir::currentDirPath(), Option::output_dir);
- if(!includepath.contains(d))
- includepath.append(d);
- } else {
- if(decl.isEmpty() && !project->isEmpty("UI_HEADERS_DIR"))
- decl = project->first("UI_HEADERS_DIR");
- if(!decl.isEmpty() || (project->isEmpty("UI_HEADERS_DIR") &&
- !project->isEmpty("UI_SOURCES_DIR")) ) {
- TQString d = fi.dirPath();
- if( d == ".")
- d = TQDir::currentDirPath();
- d = fileFixify(d, TQDir::currentDirPath(), Option::output_dir);
- if(!includepath.contains(d))
- includepath.append(d);
- }
- if(impl.isEmpty() && !project->isEmpty("UI_SOURCES_DIR"))
- impl = project->first("UI_SOURCES_DIR");
- if(fi.dirPath() != ".") {
- if(impl.isEmpty())
- impl = fi.dirPath() + Option::dir_sep;
- if(decl.isEmpty())
- decl = fi.dirPath() + Option::dir_sep;
- }
- }
- impl = fileFixify(impl, TQDir::currentDirPath(), Option::output_dir);
- if(!impl.isEmpty() && !impl.endsWith(Option::dir_sep))
- impl += Option::dir_sep;
- impl += fi.baseName(TRUE) + Option::cpp_ext.first();
- if(Option::output_dir != TQDir::currentDirPath() &&
- project->isEmpty("UI_DIR") && project->isEmpty("UI_HEADERS_DIR")) {
- TQString decl_fixed = fileFixify(decl, TQDir::currentDirPath(), Option::output_dir);
- if(!includepath.contains(decl_fixed))
- includepath.append(decl_fixed);
- if(!includepath.contains(decl))
- project->variables()["INCLUDEPATH"].append(decl);
- }
- decl = fileFixify(decl, TQDir::currentDirPath(), Option::output_dir);
- if(!decl.isEmpty() && !decl.endsWith(Option::dir_sep))
- decl += Option::dir_sep;
- decl += fi.baseName(TRUE) + Option::h_ext.first();
- logicWarn(impl, "SOURCES");
- logicWarn(decl, "HEADERS");
- decls.append(decl);
- impls.append(impl);
- findDependencies(impl).append(decl);
-
- TQString mocable = Option::h_moc_mod + fi.baseName(TRUE) + Option::h_moc_ext;
- if(!v["MOC_DIR"].isEmpty())
- mocable.prepend(v["MOC_DIR"].first());
- else if(fi.dirPath() != ".")
- mocable.prepend(fi.dirPath() + Option::dir_sep);
- logicWarn(mocable, "SOURCES");
- mocablesToMOC[cleanFilePath(decl)] = mocable;
- mocablesFromMOC[cleanFilePath(mocable)] = decl;
- v["_UIMOC"].append(mocable);
- }
- v["OBJECTS"] += (v["UICOBJECTS"] = createObjectList("UICDECLS"));
- }
-
- //Translation files
- if(!project->isEmpty("TRANSLATIONS")) {
- TQStringList &trf = project->variables()["TRANSLATIONS"];
- for(TQStringList::Iterator it = trf.begin(); it != trf.end(); ++it) {
- (*it) = Option::fixPathToLocalOS((*it));
- }
- }
-
- //Image files
- if(!project->isEmpty("IMAGES")) {
- if(project->isEmpty("QMAKE_IMAGE_COLLECTION"))
- v["QMAKE_IMAGE_COLLECTION"].append("qmake_image_collection" + Option::cpp_ext.first());
- TQString imgfile = project->first("QMAKE_IMAGE_COLLECTION");
- Option::fixPathToTargetOS(imgfile);
- if(!project->isEmpty("UI_DIR") || !project->isEmpty("UI_SOURCES_DIR")) {
- if(imgfile.find(Option::dir_sep) != -1)
- imgfile = imgfile.mid(imgfile.findRev(Option::dir_sep) + 1);
- imgfile.prepend( (project->isEmpty("UI_DIR") ? project->first("UI_SOURCES_DIR") :
- project->first("UI_DIR")) );
- v["QMAKE_IMAGE_COLLECTION"] = TQStringList(imgfile);
- }
- logicWarn(imgfile, "SOURCES");
- if(!noIO()) {
- TQStringList &l = v["IMAGES"];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- if(!TQFile::exists((*it))) {
- warn_msg(WarnLogic, "Failure to open: %s", (*it).latin1());
- continue;
- }
- findDependencies(imgfile).append(fileFixify((*it)));
- }
- }
- v["OBJECTS"] += (v["IMAGEOBJECTS"] = createObjectList("QMAKE_IMAGE_COLLECTION"));
- }
- if(Option::output_dir != TQDir::currentDirPath())
- project->variables()["INCLUDEPATH"].append(fileFixify(Option::output_dir, Option::output_dir,
- Option::output_dir));
-
- //moc files
- if ( tqmocAware() ) {
- if(!project->isEmpty("MOC_DIR"))
- project->variables()["INCLUDEPATH"].append(project->first("MOC_DIR"));
- if ( Option::h_moc_ext == Option::cpp_ext.first() )
- v["OBJMOC"] = createObjectList("_HDRMOC") + createObjectList("_UIMOC");
-
- TQStringList &l = v["SRCMOC"];
- l = v["_HDRMOC"] + v["_UIMOC"] + v["_SRCMOC"];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- if(!(*val_it).isEmpty())
- (*val_it) = Option::fixPathToTargetOS((*val_it), FALSE);
- }
- }
-
- TQString fixpaths[] = { TQString("PRE_TARGETDEPS"), TQString("POST_TARGETDEPS"), TQString::null };
- for(int path = 0; !fixpaths[path].isNull(); path++) {
- TQStringList &l = v[fixpaths[path]];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- if(!(*val_it).isEmpty())
- (*val_it) = Option::fixPathToTargetOS((*val_it), FALSE);
- }
- }
-
- // Make sure the INCLUDEPATH doesn't contain any empty(/null) entries
- TQStringList &ipl = project->variables()["INCLUDEPATH"];
- for(TQStringList::Iterator ipl_it = ipl.begin(); ipl_it != ipl.end();) {
- if ((*ipl_it).isEmpty())
- ipl_it = ipl.remove(ipl_it);
- else
- ++ipl_it;
- }
-}
-
-bool
-MakefileGenerator::processPrlFile(TQString &file)
-{
- bool ret = FALSE, try_replace_file=FALSE;
- TQString meta_file, orig_file = file;
- if(TQMakeMetaInfo::libExists(file)) {
- try_replace_file = TRUE;
- meta_file = file;
- file = "";
- } else {
- TQString tmp = file;
- int ext = tmp.findRev('.');
- if(ext != -1)
- tmp = tmp.left(ext);
- meta_file = tmp;
- }
- meta_file = fileFixify(meta_file);
- if(!TQMakeMetaInfo::libExists(fileFixify(meta_file, TQDir::currentDirPath(), Option::output_dir)) &&
- project->isActiveConfig("qt")) {
- TQString stem = meta_file, dir, extn;
- int slsh = stem.findRev('/'), hadlib = 0;
- if(slsh != -1) {
- dir = stem.left(slsh + 1);
- stem = stem.right(stem.length() - slsh - 1);
- }
- if(stem.startsWith("lib")) {
- hadlib = 1;
- stem = stem.right(stem.length() - 3);
- }
- int dot = stem.find('.');
- if(dot != -1) {
- extn = stem.right(stem.length() - dot);
- stem = stem.left(dot);
- }
- if(stem == "qt" || stem == "qte" || stem == "qte-mt" || stem == "tqt-mt") {
- if(stem.endsWith("-mt"))
- stem = stem.left(stem.length() - 3); //lose the -mt
- else
- stem += "-mt"; //try the thread case
- meta_file = dir;
- if(hadlib)
- meta_file += "lib";
- meta_file += stem + extn;
- try_replace_file = TRUE;
- }
- }
- TQString real_meta_file = Option::fixPathToLocalOS(meta_file);
- if(project->variables()["QMAKE_PRL_INTERNAL_FILES"].findIndex(TQMakeMetaInfo::findLib(meta_file)) != -1) {
- ret = TRUE;
- } else if(!meta_file.isEmpty()) {
- TQString f = fileFixify(real_meta_file, TQDir::currentDirPath(), Option::output_dir);
- if(TQMakeMetaInfo::libExists(f)) {
- TQMakeMetaInfo libinfo;
- debug_msg(1, "Processing PRL file: %s", real_meta_file.latin1());
- if(!libinfo.readLib(f)) {
- fprintf(stderr, "Error processing meta file: %s\n", real_meta_file.latin1());
- } else if(project->isActiveConfig("no_read_prl_" + libinfo.type().lower())) {
- debug_msg(2, "Ignored meta file %s [%s]", real_meta_file.latin1(), libinfo.type().latin1());
- } else {
- ret = TRUE;
- TQMap &vars = libinfo.variables();
- for( TQMap::Iterator it = vars.begin(); it != vars.end(); ++it)
- processPrlVariable(it.key(), it.data());
- if(try_replace_file && !libinfo.isEmpty("QMAKE_PRL_TARGET")) {
- TQString dir;
- int slsh = real_meta_file.findRev(Option::dir_sep);
- if(slsh != -1)
- dir = real_meta_file.left(slsh+1);
- file = libinfo.first("QMAKE_PRL_TARGET");
- if(TQDir::isRelativePath(file))
- file.prepend(dir);
- }
- }
- }
- if(ret) {
- TQString mf = TQMakeMetaInfo::findLib(meta_file);
- project->variables()["QMAKE_PRL_INTERNAL_FILES"].append(mf);
- project->variables()["QMAKE_INTERNAL_INCLUDED_FILES"].append(mf);
- }
- }
- if(try_replace_file && file.isEmpty()) {
-#if 0
- warn_msg(WarnLogic, "Found prl [%s] file with no target [%s]!", meta_file.latin1(),
- orig_file.latin1());
-#endif
- file = orig_file;
- }
- return ret;
-}
-
-void
-MakefileGenerator::processPrlVariable(const TQString &var, const TQStringList &l)
-{
- if(var == "QMAKE_PRL_LIBS") {
- TQString where = "QMAKE_LIBS";
- if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- where = project->first("QMAKE_INTERNAL_PRL_LIBS");
- TQStringList &out = project->variables()[where];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- if( out.findIndex((*it)) == -1)
- out.append((*it));
- }
- } else if(var == "QMAKE_PRL_DEFINES") {
- TQStringList &out = project->variables()["DEFINES"];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- if(out.findIndex((*it)) == -1 &&
- project->variables()["PRL_EXPORT_DEFINES"].findIndex((*it)) == -1)
- out.append((*it));
- }
- }
-}
-
-void
-MakefileGenerator::processPrlFiles()
-{
- TQDict processed;
- for(bool ret = FALSE; TRUE; ret = FALSE) {
- //read in any prl files included..
- TQStringList l_out;
- TQString where = "QMAKE_LIBS";
- if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- where = project->first("QMAKE_INTERNAL_PRL_LIBS");
- TQStringList &l = project->variables()[where];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString file = (*it);
- if(!processed[file] && processPrlFile(file)) {
- processed.insert(file, (void*)1);
- ret = TRUE;
- }
- if(!file.isEmpty())
- l_out.append(file);
- }
- if(ret)
- l = l_out;
- else
- break;
- }
-}
-
-void
-MakefileGenerator::writePrlFile(TQTextStream &t)
-{
- TQString target = project->first("TARGET");
- int slsh = target.findRev(Option::dir_sep);
- if(slsh != -1)
- target = target.right(target.length() - slsh - 1);
- TQString bdir = Option::output_dir;
- if(bdir.isEmpty())
- bdir = TQDir::currentDirPath();
- t << "QMAKE_PRL_BUILD_DIR = " << bdir << endl;
-
- if(!project->projectFile().isEmpty() && project->projectFile() != "-")
- t << "QMAKE_PRO_INPUT = " << project->projectFile().section('/', -1) << endl;
-
- if(!project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH"))
- t << "QMAKE_PRL_SOURCE_DIR = " << project->first("QMAKE_ABSOLUTE_SOURCE_PATH") << endl;
- t << "QMAKE_PRL_TARGET = " << target << endl;
- if(!project->isEmpty("PRL_EXPORT_DEFINES"))
- t << "QMAKE_PRL_DEFINES = " << project->variables()["PRL_EXPORT_DEFINES"].join(" ") << endl;
- if(!project->isEmpty("PRL_EXPORT_CFLAGS"))
- t << "QMAKE_PRL_CFLAGS = " << project->variables()["PRL_EXPORT_CFLAGS"].join(" ") << endl;
- if(!project->isEmpty("PRL_EXPORT_CXXFLAGS"))
- t << "QMAKE_PRL_CXXFLAGS = " << project->variables()["PRL_EXPORT_CXXFLAGS"].join(" ") << endl;
- if(!project->isEmpty("CONFIG"))
- t << "QMAKE_PRL_CONFIG = " << project->variables()["CONFIG"].join(" ") << endl;
- if(!project->isEmpty("VERSION"))
- t << "QMAKE_PRL_VERSION = " << project->first("VERSION") << endl;
- if(project->isActiveConfig("staticlib") || project->isActiveConfig("explicitlib")) {
- TQStringList libs;
- if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- libs = project->variables()["QMAKE_INTERNAL_PRL_LIBS"];
- else
- libs << "QMAKE_LIBS"; //obvious one
- t << "QMAKE_PRL_LIBS = ";
- for(TQStringList::Iterator it = libs.begin(); it != libs.end(); ++it)
- t << project->variables()[(*it)].join(" ") << " ";
- t << endl;
- }
-}
-
-bool
-MakefileGenerator::write()
-{
- usePlatformDir();
- init();
- findLibraries();
- if((Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE || //write prl
- Option::qmake_mode == Option::QMAKE_GENERATE_PRL) &&
- project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty() &&
- project->isActiveConfig("create_prl") && project->first("TEMPLATE") == "lib" &&
- !project->isActiveConfig("plugin")) {
- TQString prl = var("TARGET");
- int slsh = prl.findRev(Option::dir_sep);
- if(slsh != -1)
- prl = prl.right(prl.length() - slsh - 1);
- int dot = prl.find('.');
- if(dot != -1)
- prl = prl.left(dot);
- prl += Option::prl_ext;
- if(!project->isEmpty("DESTDIR"))
- prl.prepend(var("DESTDIR"));
- TQString local_prl = Option::fixPathToLocalOS(fileFixify(prl, TQDir::currentDirPath(), Option::output_dir));
- TQFile ft(local_prl);
- if(ft.open(IO_WriteOnly)) {
- project->variables()["ALL_DEPS"].append(prl);
- project->variables()["QMAKE_INTERNAL_PRL_FILE"].append(prl);
- TQTextStream t(&ft);
- writePrlFile(t);
- ft.close();
- }
- }
- if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE &&
- project->isActiveConfig("link_prl")) //load up prl's'
- processPrlFiles();
-
- if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE || //write prl file
- Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT) {
- TQTextStream t(&Option::output);
- writeMakefile(t);
- }
- return TRUE;
-}
-
-// Manipulate directories, so it's possible to build
-// several cross-platform targets concurrently
-void
-MakefileGenerator::usePlatformDir()
-{
- TQString pltDir(project->first("QMAKE_PLATFORM_DIR"));
- if(pltDir.isEmpty())
- return;
- char sep = TQDir::separator();
- TQString slashPltDir = sep + pltDir;
-
- TQString filePath = project->first("DESTDIR");
- project->variables()["DESTDIR"] = filePath
- + (filePath.isEmpty() ? pltDir : slashPltDir);
-
- filePath = project->first("DLLDESTDIR");
- project->variables()["DLLDESTDIR"] = filePath
- + (filePath.isEmpty() ? pltDir : slashPltDir);
-
- filePath = project->first("OBJECTS_DIR");
- project->variables()["OBJECTS_DIR"] = filePath
- + (filePath.isEmpty() ? pltDir : slashPltDir);
-
- filePath = project->first("QMAKE_LIBDIR_TQT");
- project->variables()["QMAKE_LIBDIR_TQT"] = filePath
- + (filePath.isEmpty() ? pltDir : slashPltDir);
-
- filePath = project->first("QMAKE_LIBS_QT");
- int fpi = filePath.findRev(sep);
- if (fpi == -1)
- project->variables()["QMAKE_LIBS_QT"].prepend(pltDir + sep);
- else
- project->variables()["QMAKE_LIBS_QT"] = filePath.left(fpi)
- + slashPltDir
- + filePath.mid(fpi);
-
- filePath = project->first("QMAKE_LIBS_QT_THREAD");
- fpi = filePath.findRev(sep);
- if (fpi == -1)
- project->variables()["QMAKE_LIBS_QT_THREAD"].prepend(pltDir + sep);
- else
- project->variables()["QMAKE_LIBS_QT_THREAD"] = filePath.left(fpi)
- + slashPltDir
- + filePath.mid(fpi);
-
- filePath = project->first("QMAKE_LIBS_QT_ENTRY");
- fpi = filePath.findRev(sep);
- if (fpi == -1)
- project->variables()["QMAKE_LIBS_QT_ENTRY"].prepend(pltDir + sep);
- else
- project->variables()["QMAKE_LIBS_QT_ENTRY"] = filePath.left(fpi)
- + slashPltDir
- + filePath.mid(fpi);
-}
-
-void
-MakefileGenerator::writeObj(TQTextStream &t, const TQString &obj, const TQString &src)
-{
- TQStringList &objl = project->variables()[obj];
- TQStringList &srcl = project->variables()[src];
-
- TQStringList::Iterator oit = objl.begin();
- TQStringList::Iterator sit = srcl.begin();
- TQString stringSrc("$src");
- TQString stringObj("$obj");
- for( ;sit != srcl.end() && oit != objl.end(); oit++, sit++) {
- if((*sit).isEmpty())
- continue;
-
- if(!doDepends()) {
- TQString sdep, odep = (*sit) + " ";
- TQStringList deps = findDependencies((*sit));
- for(TQStringList::Iterator dit = deps.begin(); dit != deps.end(); dit++) {
- if((*dit).endsWith(Option::cpp_moc_ext))
- odep += (*dit) + " ";
- else
- sdep += (*dit) + " ";
- }
- t << (*sit) << ": " << sdep << endl
- << (*oit) << ": " << odep ;
- } else {
- t << (*oit) << ": " << (*sit) << " " << findDependencies((*sit)).join(" \\\n\t\t");
- }
-
- TQString comp, cimp;
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit) {
- if((*sit).endsWith((*cppit))) {
- comp = "QMAKE_RUN_CXX";
- cimp = "QMAKE_RUN_CXX_IMP";
- break;
- }
- }
- if(comp.isEmpty()) {
- comp = "QMAKE_RUN_CC";
- cimp = "QMAKE_RUN_CC_IMP";
- }
- bool use_implicit_rule = !project->isEmpty(cimp);
- if(use_implicit_rule) {
- if(!project->isEmpty("OBJECTS_DIR")) {
- use_implicit_rule = FALSE;
- } else {
- int dot = (*sit).findRev('.');
- if(dot == -1 || ((*sit).left(dot) + Option::obj_ext != (*oit)))
- use_implicit_rule = FALSE;
- }
- }
- if (!use_implicit_rule && !project->isEmpty(comp)) {
- TQString p = var(comp), srcf(*sit);
- p.replace(stringSrc, srcf);
- p.replace(stringObj, (*oit));
- t << "\n\t" << p;
- }
- t << endl << endl;
- }
-}
-
-
-void
-MakefileGenerator::writeUicSrc(TQTextStream &t, const TQString &ui)
-{
- TQStringList &uil = project->variables()[ui];
- for(TQStringList::Iterator it = uil.begin(); it != uil.end(); it++) {
- TQString decl, impl;
- {
- TQString tmp = (*it), impl_dir, decl_dir;
- decl = tmp.replace(TQRegExp("\\" + Option::ui_ext + "$"), Option::h_ext.first());
- int dlen = decl.findRev(Option::dir_sep) + 1;
- tmp = (*it);
- impl = tmp.replace(TQRegExp("\\" + Option::ui_ext + "$"), Option::cpp_ext.first());
- int ilen = decl.findRev(Option::dir_sep) + 1;
- if(!project->isEmpty("UI_DIR")) {
- impl_dir = project->first("UI_DIR");
- decl = project->first("UI_DIR") + decl.right(decl.length() - dlen);
- impl = project->first("UI_DIR") + impl.right(impl.length() - ilen);
- } else {
- if(!project->isEmpty("UI_HEADERS_DIR")) {
- decl_dir = project->first("UI_HEADERS_DIR");
- decl = project->first("UI_HEADERS_DIR") + decl.right(decl.length() - dlen);
- }
- if(!project->isEmpty("UI_SOURCES_DIR")) {
- impl_dir = project->first("UI_SOURCES_DIR");
- impl = project->first("UI_SOURCES_DIR") + impl.right(impl.length() - ilen);
- }
- }
- impl = fileFixify(impl, TQDir::currentDirPath(), Option::output_dir);
- decl = fileFixify(decl, TQDir::currentDirPath(), Option::output_dir);
- if(decl_dir.isEmpty())
- decl_dir = decl.section(Option::dir_sep,0,-2);
- if(impl_dir.isEmpty())
- impl_dir = impl.section(Option::dir_sep,0,-2);
- if (TQDir::isRelativePath(impl_dir))
- impl_dir.prepend(Option::output_dir + Option::dir_sep);
- if (TQDir::isRelativePath(decl_dir))
- decl_dir.prepend(Option::output_dir + Option::dir_sep);
- createDir(impl_dir);
- createDir(decl_dir);
- }
- TQStringList deps = findDependencies((*it));
- deps.remove(decl); //avoid circular dependencies..
- t << decl << ": " << (*it) << " ";
- t << deps.join(" \\\n\t\t") << "\n\t"
- << "$(TQUIC) " << (*it) << " -o " << decl << endl << endl;
-
- TQString mildDecl = decl;
- int k = mildDecl.findRev(Option::dir_sep);
- if ( k != -1 )
- mildDecl = mildDecl.mid( k + 1 );
- t << impl << ": " << decl << " " << (*it) << " ";
- if(TQFile::exists((*it) + Option::h_ext.first()))
- t << (*it) << Option::h_ext.first() << " ";
- t << deps.join(" \\\n\t\t") << "\n\t"
- << "$(TQUIC) " << (*it) << " -i " << mildDecl << " -o " << impl << endl << endl;
- }
-}
-
-
-void
-MakefileGenerator::writeMocObj(TQTextStream &t, const TQString &obj, const TQString &src)
-{
- TQStringList &objl = project->variables()[obj],
- &srcl = project->variables()[src];
- TQStringList::Iterator oit = objl.begin(), sit = srcl.begin();
- TQString stringSrc("$src"), stringObj("$obj");
- for( ;sit != srcl.end() && oit != objl.end(); oit++, sit++) {
- TQString hdr = findMocSource((*sit));
- t << (*oit) << ": "
- << (*sit) << " " << findDependencies((*sit)).join(" \\\n\t\t") << " "
- << hdr << " " << findDependencies(hdr).join(" \\\n\t\t");
- bool use_implicit_rule = !project->isEmpty("QMAKE_RUN_CXX_IMP");
- if(use_implicit_rule) {
- if(!project->isEmpty("OBJECTS_DIR") || !project->isEmpty("MOC_DIR")) {
- use_implicit_rule = FALSE;
- } else {
- int dot = (*sit).findRev('.');
- if(dot == -1 || ((*sit).left(dot) + Option::obj_ext != (*oit)))
- use_implicit_rule = FALSE;
- }
- }
- if (!use_implicit_rule && !project->isEmpty("QMAKE_RUN_CXX")) {
- TQString p = var("QMAKE_RUN_CXX"), srcf(*sit);
- p.replace(stringSrc, srcf);
- p.replace(stringObj, (*oit));
- t << "\n\t" << p;
- }
- t << endl << endl;
- }
-}
-
-
-void
-MakefileGenerator::writeMocSrc(TQTextStream &t, const TQString &src)
-{
- TQStringList &l = project->variables()[src];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString m = Option::fixPathToTargetOS(findMocDestination(*it));
- if ( !m.isEmpty()) {
- TQString deps;
- if(!project->isActiveConfig("no_mocdepend"))
- deps += "$(MOC) ";
- deps += (*it);
- t << m << ": " << deps << "\n\t"
- << "$(MOC)";
- t << " " << (*it) << " -o " << m << endl << endl;
- }
- }
-}
-
-void
-MakefileGenerator::writeYaccSrc(TQTextStream &t, const TQString &src)
-{
- TQStringList &l = project->variables()[src];
- if(project->isActiveConfig("yacc_no_name_mangle") && l.count() > 1)
- warn_msg(WarnLogic, "yacc_no_name_mangle specified, but multiple parsers expected."
- "This can lead to link problems.\n");
- TQString default_out_h = "y.tab.h", default_out_c = "y.tab.c";
- if(!project->isEmpty("QMAKE_YACC_HEADER"))
- default_out_h = project->first("QMAKE_YACC_HEADER");
- if(!project->isEmpty("QMAKE_YACC_SOURCE"))
- default_out_c = project->first("QMAKE_YACC_SOURCE");
- TQString stringBase("$base");
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQFileInfo fi((*it));
- TQString dir;
- if(fi.dirPath() != ".")
- dir = fi.dirPath() + Option::dir_sep;
- dir = fileFixify(dir, TQDir::currentDirPath(), Option::output_dir);
- if(!dir.isEmpty() && dir.right(Option::dir_sep.length()) != Option::dir_sep)
- dir += Option::dir_sep;
-
- TQString impl = dir + fi.baseName(TRUE) + Option::yacc_mod + Option::cpp_ext.first();
- TQString decl = dir + fi.baseName(TRUE) + Option::yacc_mod + Option::h_ext.first();
-
- TQString yaccflags = "$(YACCFLAGS)", mangle = "y";
- if(!project->isActiveConfig("yacc_no_name_mangle")) {
- mangle = fi.baseName(TRUE);
- if(!project->isEmpty("QMAKE_YACCFLAGS_MANGLE"))
- yaccflags += " " + var("QMAKE_YACCFLAGS_MANGLE").replace(stringBase, mangle);
- else
- yaccflags += " -p " + mangle;
- }
- TQString out_h = default_out_h, out_c = default_out_c;
- if(!mangle.isEmpty()) {
- out_h.replace(stringBase, mangle);
- out_c.replace(stringBase, mangle);
- }
-
- t << impl << ": " << (*it) << "\n\t"
- << "$(YACC) " << yaccflags << " " << (*it) << "\n\t"
- << "-$(DEL_FILE) " << impl << " " << decl << "\n\t"
- << "-$(MOVE) " << out_h << " " << decl << "\n\t"
- << "-$(MOVE) " << out_c << " " << impl << endl << endl;
- t << decl << ": " << impl << endl << endl;
- }
-}
-
-void
-MakefileGenerator::writeLexSrc(TQTextStream &t, const TQString &src)
-{
- TQStringList &l = project->variables()[src];
- if(project->isActiveConfig("yacc_no_name_mangle") && l.count() > 1)
- warn_msg(WarnLogic, "yacc_no_name_mangle specified, but multiple parsers expected.\n"
- "This can lead to link problems.\n");
- TQString default_out_c = "lex.$base.c";
- if(!project->isEmpty("QMAKE_LEX_SOURCE"))
- default_out_c = project->first("QMAKE_LEX_SOURCE");
- TQString stringBase("$base");
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQFileInfo fi((*it));
- TQString dir;
- if(fi.dirPath() != ".")
- dir = fi.dirPath() + Option::dir_sep;
- dir = fileFixify(dir, TQDir::currentDirPath(), Option::output_dir);
- if(!dir.isEmpty() && dir.right(Option::dir_sep.length()) != Option::dir_sep)
- dir += Option::dir_sep;
- TQString impl = dir + fi.baseName(TRUE) + Option::lex_mod + Option::cpp_ext.first();
-
- TQString lexflags = "$(LEXFLAGS)", stub="yy";
- if(!project->isActiveConfig("yacc_no_name_mangle")) {
- stub = fi.baseName(TRUE);
- lexflags += " -P" + stub;
- }
- TQString out_c = default_out_c;
- if(!stub.isEmpty())
- out_c.replace(stringBase, stub);
-
- t << impl << ": " << (*it) << " " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t"
- << ( "$(LEX) " + lexflags + " " ) << (*it) << "\n\t"
- << "-$(DEL_FILE) " << impl << " " << "\n\t"
- << "-$(MOVE) " << out_c << " " << impl << endl << endl;
- }
-}
-
-void
-MakefileGenerator::writeImageObj(TQTextStream &t, const TQString &obj)
-{
- TQStringList &objl = project->variables()[obj];
- TQString stringSrc("$src");
- TQString stringObj("$obj");
-
- TQString uidir;
- for(TQStringList::Iterator oit = objl.begin(); oit != objl.end(); oit++) {
- TQString src(project->first("QMAKE_IMAGE_COLLECTION"));
- t << (*oit) << ": " << src;
- bool use_implicit_rule = !project->isEmpty("QMAKE_RUN_CXX_IMP");
- if(use_implicit_rule) {
- if(!project->isEmpty("OBJECTS_DIR") || !project->isEmpty("UI_DIR") || !project->isEmpty("UI_SOURCES_DIR")) {
- use_implicit_rule = FALSE;
- } else {
- int dot = src.findRev('.');
- if(dot == -1 || (src.left(dot) + Option::obj_ext != (*oit)))
- use_implicit_rule = FALSE;
- }
- }
- if(!use_implicit_rule && !project->isEmpty("QMAKE_RUN_CXX")) {
- TQString p = var("QMAKE_RUN_CXX"), srcf(src);
- p.replace(stringSrc, srcf);
- p.replace(stringObj, (*oit));
- t << "\n\t" << p;
- }
- t << endl << endl;
- }
-}
-
-
-void
-MakefileGenerator::writeImageSrc(TQTextStream &t, const TQString &src)
-{
- TQStringList &l = project->variables()[src];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString gen = project->first("MAKEFILE_GENERATOR");
- if ( gen == "MSVC" ) {
- t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t"
- << "$(TQUIC) -o " << (*it) << " -embed " << project->first("QMAKE_ORIG_TARGET")
- << " -f <<\n" << findDependencies((*it)).join(" ") << "\n<<" << endl << endl;
- } else {
- t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t"
- << "$(TQUIC) " << " -embed " << project->first("QMAKE_ORIG_TARGET")
- << " " << findDependencies((*it)).join(" ") << " -o " << (*it) << endl << endl;
- }
- }
-}
-
-
-void
-MakefileGenerator::writeInstalls(TQTextStream &t, const TQString &installs)
-{
- TQString all_installs, all_uninstalls;
- TQStringList &l = project->variables()[installs];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString pvar = (*it) + ".path";
- if(project->variables()[(*it) + ".CONFIG"].findIndex("no_path") == -1 &&
- project->variables()[pvar].isEmpty()) {
- warn_msg(WarnLogic, "%s is not defined: install target not created\n", pvar.latin1());
- continue;
- }
-
- bool do_default = TRUE;
- const TQString root = "$(INSTALL_ROOT)";
- TQString target, dst= fileFixify(project->variables()[pvar].first());
- if(dst.right(1) != Option::dir_sep)
- dst += Option::dir_sep;
- TQStringList tmp, uninst = project->variables()[(*it) + ".uninstall"];
- //other
- tmp = project->variables()[(*it) + ".extra"];
- if(tmp.isEmpty())
- tmp = project->variables()[(*it) + ".commands"]; //to allow compatible name
- if(!tmp.isEmpty()) {
- do_default = FALSE;
- if(!target.isEmpty())
- target += "\n\t";
- target += tmp.join(" ");
- }
- //masks
- tmp = project->variables()[(*it) + ".files"];
- if(!tmp.isEmpty()) {
- if(!target.isEmpty())
- target += "\n";
- do_default = FALSE;
- for(TQStringList::Iterator wild_it = tmp.begin(); wild_it != tmp.end(); ++wild_it) {
- TQString wild = Option::fixPathToLocalOS((*wild_it), FALSE), wild_var = fileFixify(wild);
- TQString dirstr = TQDir::currentDirPath(), filestr = wild;
- int slsh = filestr.findRev(Option::dir_sep);
- if(slsh != -1) {
- dirstr = filestr.left(slsh+1);
- filestr = filestr.right(filestr.length() - slsh - 1);
- }
- if(dirstr.right(Option::dir_sep.length()) != Option::dir_sep)
- dirstr += Option::dir_sep;
- if(TQFile::exists(wild)) { //real file
- TQString file = wild;
- TQFileInfo fi(wild);
- if(!target.isEmpty())
- target += "\t";
- TQString cmd = TQString(fi.isDir() ? "-$(INSTALL_DIR)" : "-$(INSTALL_FILE)") + " \"" +
- Option::fixPathToTargetOS(fileFixify(wild, TQString::null,
- TQString::null, FALSE, FALSE), FALSE) +
- "\" \"" + root + dst + "\"\n";
- target += cmd;
- if(!project->isActiveConfig("debug") &&
- !fi.isDir() && fi.isExecutable() && !project->isEmpty("QMAKE_STRIP"))
- target += TQString("\t-") + var("QMAKE_STRIP") + " \"" +
- root + fileFixify(dst + filestr, TQString::null, TQString::null, FALSE, FALSE) +
- "\"\n";
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- uninst.append(
-#ifdef TQ_WS_WIN
- TQString("-$(DEL_FILE)")
-#else
- TQString("-$(DEL_FILE) -r")
-#endif
- + " \"" + root + fileFixify(dst + filestr, TQString::null, TQString::null, FALSE, FALSE) + "\"");
- continue;
- }
- fixEnvVariables(dirstr);
- TQDir dir(dirstr, filestr); //wild
- for(uint x = 0; x < dir.count(); x++) {
- TQString file = dir[x];
- if(file == "." || file == "..") //blah
- continue;
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- uninst.append(
-#ifdef TQ_WS_WIN
- TQString("-$(DEL_FILE)")
-#else
- TQString("-$(DEL_FILE) -r")
-#endif
- + " \"" + root + fileFixify(dst + file, TQString::null, TQString::null, FALSE, FALSE) +
- "\"");
- TQFileInfo fi(Option::fixPathToTargetOS(fileFixify(dirstr + file), TRUE));
- if(!target.isEmpty())
- target += "\t";
- TQString cmd = TQString(fi.isDir() ? "-$(INSTALL_DIR)" : "-$(INSTALL_FILE)") + " \"" +
- Option::fixPathToTargetOS(fileFixify(dirstr + file, TQString::null,
- TQString::null, FALSE, FALSE), FALSE) +
- "\" \"" + root + dst + "\"\n";
- target += cmd;
- if(!project->isActiveConfig("debug") &&
- !fi.isDir() && fi.isExecutable() && !project->isEmpty("QMAKE_STRIP"))
- target += TQString("\t-") + var("QMAKE_STRIP") + " \"" +
- root + fileFixify(dst + file, TQString::null, TQString::null, FALSE, FALSE) +
- "\"\n";
- }
- }
- }
- //default?
- if(do_default) {
- target = defaultInstall((*it));
- uninst = project->variables()[(*it) + ".uninstall"];
- }
-
- if(!target.isEmpty()) {
- t << "install_" << (*it) << ": all ";
- const TQStringList &deps = project->variables()[(*it) + ".depends"];
- if(!deps.isEmpty()) {
- for(TQStringList::ConstIterator dep_it = deps.begin(); dep_it != deps.end(); ++dep_it) {
- TQString targ = var((*dep_it) + ".target");
- if(targ.isEmpty())
- targ = (*dep_it);
- t << targ;
- }
- }
- t << "\n\t";
- const TQStringList &dirs = project->variables()[pvar];
- for(TQStringList::ConstIterator pit = dirs.begin(); pit != dirs.end(); ++pit) {
- TQString tmp_dst = fileFixify((*pit));
-#ifndef TQ_WS_WIN
- if(tmp_dst.right(1) != Option::dir_sep)
- tmp_dst += Option::dir_sep;
-#endif
- t << mkdir_p_asstring(root+tmp_dst) << "\n\t";
- }
- t << target << endl << endl;
- if(!uninst.isEmpty()) {
- t << "uninstall_" << (*it) << ": " << "\n\t"
- << uninst.join("") << "\n\t"
- << "-$(DEL_DIR) \"" << ( root + dst ) << "\"" << endl << endl;
- }
- t << endl;
-
- if(project->variables()[(*it) + ".CONFIG"].findIndex("no_default_install") == -1) {
- all_installs += TQString("install_") + (*it) + " ";
- if(!uninst.isEmpty())
- all_uninstalls += "uninstall_" + (*it) + " ";
- }
- } else {
- debug_msg(1, "no definition for install %s: install target not created",(*it).latin1());
- }
- }
- t << "install: " << all_installs << " " << var("INSTALLDEPS") << "\n\n";
- t << "uninstall: " << all_uninstalls << " " << var("UNINSTALLDEPS") << "\n\n";
-}
-
-TQString
-MakefileGenerator::var(const TQString &var)
-{
- return val(project->variables()[var]);
-}
-
-TQString
-MakefileGenerator::val(const TQStringList &varList)
-{
- return valGlue(varList, "", " ", "");
-}
-
-TQString
-MakefileGenerator::varGlue(const TQString &var, const TQString &before, const TQString &glue, const TQString &after)
-{
- return valGlue(project->variables()[var], before, glue, after);
-}
-
-TQString
-MakefileGenerator::valGlue(const TQStringList &varList, const TQString &before, const TQString &glue, const TQString &after)
-{
- TQString ret;
- for(TQStringList::ConstIterator it = varList.begin(); it != varList.end(); ++it) {
- if(!(*it).isEmpty()) {
- if(!ret.isEmpty())
- ret += glue;
- ret += (*it);
- }
- }
- return ret.isEmpty() ? TQString("") : before + ret + after;
-}
-
-
-TQString
-MakefileGenerator::varList(const TQString &var)
-{
- return valList(project->variables()[var]);
-}
-
-TQString
-MakefileGenerator::valList(const TQStringList &varList)
-{
- return valGlue(varList, "", " \\\n\t\t", "");
-}
-
-
-TQStringList
-MakefileGenerator::createObjectList(const TQString &var)
-{
- TQStringList &l = project->variables()[var], ret;
- TQString objdir, dir;
- if(!project->variables()["OBJECTS_DIR"].isEmpty())
- objdir = project->first("OBJECTS_DIR");
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQFileInfo fi(Option::fixPathToLocalOS((*it)));
- if(objdir.isEmpty() && project->isActiveConfig("object_with_source")) {
- TQString fName = Option::fixPathToTargetOS((*it), FALSE);
- int dl = fName.findRev(Option::dir_sep);
- if(dl != -1)
- dir = fName.left(dl + 1);
- } else {
- dir = objdir;
- }
- ret.append(dir + fi.baseName(TRUE) + Option::obj_ext);
- }
- return ret;
-}
-
-bool
-MakefileGenerator::writeMakefile(TQTextStream &t)
-{
- t << "####### Compile" << endl << endl;
- writeObj(t, "OBJECTS", "SOURCES");
- writeUicSrc(t, "FORMS");
- writeObj(t, "UICOBJECTS", "UICIMPLS");
- writeMocObj(t, "OBJMOC", "SRCMOC" );
- writeMocSrc(t, "HEADERS");
- writeMocSrc(t, "SOURCES");
- writeMocSrc(t, "UICDECLS");
- writeYaccSrc(t, "YACCSOURCES");
- writeLexSrc(t, "LEXSOURCES");
- writeImageObj(t, "IMAGEOBJECTS");
- writeImageSrc(t, "QMAKE_IMAGE_COLLECTION");
-
- t << "####### Install" << endl << endl;
- writeInstalls(t, "INSTALLS");
- return TRUE;
-}
-
-TQString MakefileGenerator::buildArgs()
-{
- static TQString ret;
- if(ret.isEmpty()) {
- //special variables
- if(!project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH"))
- ret += " QMAKE_ABSOLUTE_SOURCE_PATH=\"" + project->first("QMAKE_ABSOLUTE_SOURCE_PATH") + "\"";
-
- //warnings
- else if(Option::warn_level == WarnNone)
- ret += " -Wnone";
- else if(Option::warn_level == WarnAll)
- ret += " -Wall";
- else if(Option::warn_level & WarnParser)
- ret += " -Wparser";
- //other options
- if(!Option::user_template.isEmpty())
- ret += " -t " + Option::user_template;
- if(!Option::mkfile::do_cache)
- ret += " -nocache";
- if(!Option::mkfile::do_deps)
- ret += " -nodepend";
- if(!Option::mkfile::do_mocs)
- ret += " -nomoc";
- if(!Option::mkfile::do_dep_heuristics)
- ret += " -nodependheuristics";
- if(!Option::mkfile::qmakespec_commandline.isEmpty())
- ret += " -spec " + Option::mkfile::qmakespec_commandline;
-
- //arguments
- for(TQStringList::Iterator it = Option::before_user_vars.begin();
- it != Option::before_user_vars.end(); ++it) {
- if((*it).left(tqstrlen("QMAKE_ABSOLUTE_SOURCE_PATH")) != "QMAKE_ABSOLUTE_SOURCE_PATH")
- ret += " \"" + (*it) + "\"";
- }
- if(Option::after_user_vars.count()) {
- ret += " -after ";
- for(TQStringList::Iterator it = Option::after_user_vars.begin();
- it != Option::after_user_vars.end(); ++it) {
- if((*it).left(tqstrlen("QMAKE_ABSOLUTE_SOURCE_PATH")) != "QMAKE_ABSOLUTE_SOURCE_PATH")
- ret += " \"" + (*it) + "\"";
- }
- }
- }
- return ret;
-}
-
-//could get stored argv, but then it would have more options than are
-//probably necesary this will try to guess the bare minimum..
-TQString MakefileGenerator::build_args()
-{
- static TQString ret;
- if(ret.isEmpty()) {
- ret = "$(QMAKE)";
-
- // general options and arguments
- ret += buildArgs();
-
- //output
- TQString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.name()));
- if (!ofile.isEmpty() && ofile != project->first("QMAKE_MAKEFILE"))
- ret += " -o " + ofile;
-
- //inputs
- TQStringList files = fileFixify(Option::mkfile::project_files);
- ret += " " + files.join(" ");
- }
- return ret;
-}
-
-bool
-MakefileGenerator::writeHeader(TQTextStream &t)
-{
- t << "#############################################################################" << endl;
- t << "# Makefile for building: " << var("TARGET") << endl;
- t << "# Generated by qmake (" << qmake_version() << ") (TQt " << TQT_VERSION_STR << ")" << endl;
- t << "# Project: " << fileFixify(project->projectFile()) << endl;
- t << "# Template: " << var("TEMPLATE") << endl;
- t << "# Command: " << build_args() << endl;
- t << "#############################################################################" << endl;
- t << endl;
- return TRUE;
-}
-
-
-//makes my life easier..
-bool
-MakefileGenerator::writeMakeQmake(TQTextStream &t)
-{
- TQString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.name()));
- if(project->isEmpty("QMAKE_FAILED_REQUIREMENTS") && !project->isActiveConfig("no_autoqmake") &&
- !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) {
- TQStringList files = fileFixify(Option::mkfile::project_files);
- t << project->first("QMAKE_INTERNAL_PRL_FILE") << ": " << "\n\t"
- << "@$(QMAKE) -prl " << buildArgs() << " " << files.join(" ") << endl;
- }
-
- TQString pfile = project->projectFile();
- if(pfile != "(stdin)") {
- TQString qmake = build_args();
- if(!ofile.isEmpty() && !project->isActiveConfig("no_autoqmake")) {
- t << ofile << ": " << fileFixify(pfile) << " ";
- if(Option::mkfile::do_cache)
- t << fileFixify(Option::mkfile::cachefile) << " ";
- if(!specdir().isEmpty()) {
- if (TQFile::exists(Option::fixPathToLocalOS(specdir()+TQDir::separator()+"qmake.conf")))
- t << specdir() << Option::dir_sep << "qmake.conf" << " ";
- else if (TQFile::exists(Option::fixPathToLocalOS(specdir()+TQDir::separator()+"tmake.conf")))
- t << specdir() << Option::dir_sep << "tmake.conf" << " ";
- }
- t << project->variables()["QMAKE_INTERNAL_INCLUDED_FILES"].join(" \\\n\t\t") << "\n\t"
- << qmake <first("QMAKE_ORIG_TARGET") != "tqmake") {
- t << "qmake: " <<
- project->variables()["QMAKE_INTERNAL_QMAKE_DEPS"].join(" \\\n\t\t") << "\n\t"
- << "@" << qmake << endl << endl;
- }
- }
- return TRUE;
-}
-
-TQStringList
-MakefileGenerator::fileFixify(const TQStringList& files, const TQString &out_dir, const TQString &in_dir,
- bool force_fix, bool canon) const
-{
- if(files.isEmpty())
- return files;
- TQStringList ret;
- for(TQStringList::ConstIterator it = files.begin(); it != files.end(); ++it) {
- if(!(*it).isEmpty())
- ret << fileFixify((*it), out_dir, in_dir, force_fix, canon);
- }
- return ret;
-}
-
-TQString
-MakefileGenerator::fileFixify(const TQString& file0, const TQString &out_d,
- const TQString &in_d, bool force_fix, bool canon) const
-{
- if(file0.isEmpty())
- return file0;
- TQString key = file0;
- if(TQDir::isRelativePath(file0))
- key.prepend(TQDir::currentDirPath() + "--");
- if(!in_d.isEmpty() || !out_d.isEmpty() || force_fix || !canon)
- key.prepend(in_d + "--" + out_d + "--" + TQString::number((int)force_fix) + "--" +
- TQString::number((int)canon) + "-");
- if(fileFixed.contains(key))
- return fileFixed[key];
-
- TQString file = file0;
- int depth = 4;
- if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
- Option::qmake_mode == Option::QMAKE_GENERATE_PRL) {
- if(project && !project->isEmpty("QMAKE_PROJECT_DEPTH"))
- depth = project->first("QMAKE_PROJECT_DEPTH").toInt();
- else if(Option::mkfile::cachefile_depth != -1)
- depth = Option::mkfile::cachefile_depth;
- }
-
- TQChar quote;
- if((file.startsWith("'") || file.startsWith("\"")) && file.startsWith(file.right(1))) {
- quote = file.at(0);
- file = file.mid(1, file.length() - 2);
- }
- TQString orig_file = file;
- if(!force_fix && project->isActiveConfig("no_fixpath")) {
- if(!project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH")) { //absoluteify it
- TQString tqfile = Option::fixPathToLocalOS(file, TRUE, canon);
- if(TQDir::isRelativePath(file)) { //already absolute
- TQFileInfo fi(tqfile);
- if(!fi.convertToAbs()) //strange
- file = fi.filePath();
- }
- }
- } else { //fix it..
- TQString tqfile(Option::fixPathToLocalOS(file, TRUE, canon)), in_dir(in_d), out_dir(out_d);
- {
- if(out_dir.isNull() || TQDir::isRelativePath(out_dir))
- out_dir.prepend(Option::output_dir + TQDir::separator());
- if(out_dir == ".")
- out_dir = TQDir::currentDirPath();
- if(in_dir.isEmpty() || TQDir::isRelativePath(in_dir))
- in_dir.prepend(TQDir::currentDirPath() + TQDir::separator());
- if(in_dir == ".")
- in_dir = TQDir::currentDirPath();
-
- if(!TQDir::isRelativePath(in_dir) || !TQDir::isRelativePath(out_dir)) {
- TQFileInfo in_fi(in_dir);
- if(!in_fi.convertToAbs())
- in_dir = in_fi.filePath();
- TQFileInfo out_fi(out_dir);
- if(!out_fi.convertToAbs())
- out_dir = out_fi.filePath();
- }
- TQString in_canonical_dir = TQDir(in_dir).canonicalPath(),
- out_canonical_dir = TQDir(out_dir).canonicalPath();
- if(!in_canonical_dir.isEmpty())
- in_dir = in_canonical_dir;
- if(!out_canonical_dir.isEmpty())
- out_dir = out_canonical_dir;
- }
- if(out_dir != in_dir || !TQDir::isRelativePath(tqfile)) {
- if(TQDir::isRelativePath(tqfile)) {
- if(file.left(Option::dir_sep.length()) != Option::dir_sep &&
- in_dir.right(Option::dir_sep.length()) != Option::dir_sep)
- file.prepend(Option::dir_sep);
- file.prepend(in_dir);
- }
- file = Option::fixPathToTargetOS(file, FALSE, canon);
- if(canon && TQFile::exists(file) && file == Option::fixPathToTargetOS(file, TRUE, canon)) {
- TQString real_file = TQDir(file).canonicalPath();
- if(!real_file.isEmpty())
- file = Option::fixPathToTargetOS(real_file, false, canon);
- }
- TQString match_dir = Option::fixPathToTargetOS(out_dir, FALSE, canon);
- if(file == match_dir) {
- file = "";
- } else if(file.startsWith(match_dir) &&
- file.mid(match_dir.length(), Option::dir_sep.length()) == Option::dir_sep) {
- file = file.right(file.length() - (match_dir.length() + 1));
- } else {
- for(int i = 1; i <= depth; i++) {
- int sl = match_dir.findRev(Option::dir_sep);
- if(sl == -1)
- break;
- match_dir = match_dir.left(sl);
- if(match_dir.isEmpty())
- break;
- if(file.startsWith(match_dir) &&
- file.mid(match_dir.length(), Option::dir_sep.length()) == Option::dir_sep) {
- //concat
- int remlen = file.length() - (match_dir.length() + 1);
- if (remlen < 0)
- remlen = 0;
- file = file.right(remlen);
- //prepend
- for(int o = 0; o < i; o++)
- file.prepend(".." + Option::dir_sep);
- }
- }
- }
- }
- }
- file = Option::fixPathToTargetOS(file, FALSE, canon);
- if(file.isEmpty())
- file = ".";
- if(!quote.isNull())
- file = quote + file + quote;
- debug_msg(3, "Fixed %s :: to :: %s (%d) [%s::%s]", orig_file.latin1(), file.latin1(), depth,
- in_d.latin1(), out_d.latin1());
- ((MakefileGenerator*)this)->fileFixed.insert(key, file);
- return file;
-}
-
-TQString
-MakefileGenerator::cleanFilePath(const TQString &file) const
-{
- return fileFixify(Option::fixPathToTargetOS(file));
-}
-
-void MakefileGenerator::logicWarn(const TQString &f, const TQString &w)
-{
- if(!(Option::warn_level & WarnLogic))
- return;
- TQString file = f;
- int slsh = f.findRev(Option::dir_sep);
- if(slsh != -1)
- file = file.right(file.length() - slsh - 1);
- TQStringList &l = project->variables()[w];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- TQString file2((*val_it));
- slsh = file2.findRev(Option::dir_sep);
- if(slsh != -1)
- file2 = file2.right(file2.length() - slsh - 1);
- if(file2 == file) {
- warn_msg(WarnLogic, "Found potential symbol conflict of %s (%s) in %s",
- file.latin1(), (*val_it).latin1(), w.latin1());
- break;
- }
- }
-}
-
-TQString
-MakefileGenerator::dependencyKey(const TQString &file) const
-{
- TQString key = file;
- Option::fixPathToTargetOS(key);
- if(key.find(Option::dir_sep))
- key = key.right(key.length() - key.findRev(Option::dir_sep) - 1);
- return key;
-}
-
-void
-MakefileGenerator::setProcessedDependencies(const TQString &file, bool b)
-{
- depProcessed[dependencyKey(file)] = b;
-}
-
-bool
-MakefileGenerator::processedDependencies(const TQString &file)
-{
- TQString key = dependencyKey(file);
- if(!depProcessed.contains(key))
- return FALSE;
- return depProcessed[key];
-}
-
-TQStringList
-&MakefileGenerator::findDependencies(const TQString &file)
-{
- return depends[dependencyKey(file)];
-}
-
-
-TQString
-MakefileGenerator::specdir()
-{
- if(!spec.isEmpty())
- return spec;
- spec = Option::mkfile::qmakespec;
-#if 0
- if(const char *d = getenv("TQTDIR")) {
- TQString tqdir = Option::fixPathToTargetOS(TQString(d));
- if(tqdir.endsWith(TQString(TQChar(TQDir::separator()))))
- tqdir.truncate(tqdir.length()-1);
- //fix path
- TQFileInfo fi(spec);
- TQString absSpec(fi.absFilePath());
- absSpec = Option::fixPathToTargetOS(absSpec);
- //replace what you can
- if(absSpec.startsWith(tqdir)) {
- absSpec.replace(0, tqdir.length(), "$(TQTDIR)");
- spec = absSpec;
- }
- }
-#else
- spec = Option::fixPathToTargetOS(spec);
-#endif
- return spec;
-}
-
-bool
-MakefileGenerator::openOutput(TQFile &file) const
-{
- {
- TQString outdir;
- if(!file.name().isEmpty()) {
- if(TQDir::isRelativePath(file.name()))
- file.setName(Option::output_dir + file.name()); //pwd when qmake was run
- TQFileInfo fi(file);
- if(fi.isDir())
- outdir = file.name() + TQDir::separator();
- }
- if(!outdir.isEmpty() || file.name().isEmpty()) {
- TQString fname = "Makefile";
- if(!project->isEmpty("MAKEFILE"))
- fname = project->first("MAKEFILE");
- file.setName(outdir + fname);
- }
- }
- if(TQDir::isRelativePath(file.name()))
- file.setName(Option::output_dir + file.name()); //pwd when qmake was run
- if(project->isEmpty("QMAKE_MAKEFILE"))
- project->variables()["QMAKE_MAKEFILE"].append(file.name());
- int slsh = file.name().findRev(Option::dir_sep);
- if(slsh != -1)
- createDir(file.name().left(slsh));
- if(file.open(IO_WriteOnly | IO_Translate)) {
- TQFileInfo fi(Option::output);
- TQString od = Option::fixPathToTargetOS((fi.isSymLink() ? fi.readLink() : fi.dirPath()) );
- if(TQDir::isRelativePath(od))
- od.prepend(Option::output_dir);
- Option::output_dir = od;
- return TRUE;
- }
- return FALSE;
-}
-
-
-
-//Factory thing
-#include "unixmake.h"
-#include "msvc_nmake.h"
-#include "mingw_make.h"
-#include "msvc_dsp.h"
-#include "msvc_vcproj.h"
-#include "metrowerks_xml.h"
-#include "pbuilder_pbx.h"
-#include "projectgenerator.h"
-
-MakefileGenerator *
-MakefileGenerator::create(TQMakeProject *proj)
-{
- if(Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT)
- return new ProjectGenerator(proj);
-
- MakefileGenerator *mkfile = NULL;
- TQString gen = proj->first("MAKEFILE_GENERATOR");
- if(gen.isEmpty()) {
- fprintf(stderr, "No generator specified in config file: %s\n",
- proj->projectFile().latin1());
- } else if(gen == "UNIX") {
- mkfile = new UnixMakefileGenerator(proj);
- } else if(gen == "MSVC") {
- // Visual Studio =< v6.0
- if(proj->first("TEMPLATE").find(TQRegExp("^vc.*")) != -1)
- mkfile = new DspMakefileGenerator(proj);
- else
- mkfile = new NmakeMakefileGenerator(proj);
- } else if(gen == "MSVC.NET") {
- // Visual Studio >= v7.0
- if(proj->first("TEMPLATE").find(TQRegExp("^vc.*")) != -1)
- mkfile = new VcprojGenerator(proj);
- else
- mkfile = new NmakeMakefileGenerator(proj);
- } else if(gen == "MINGW") {
- mkfile = new MingwMakefileGenerator(proj);
- } else if(gen == "METROWERKS") {
- mkfile = new MetrowerksMakefileGenerator(proj);
- } else if(gen == "PROJECTBUILDER") {
- mkfile = new ProjectBuilderMakefileGenerator(proj);
- } else {
- fprintf(stderr, "Unknown generator specified: %s\n", gen.latin1());
- }
- return mkfile;
-}
diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
deleted file mode 100644
index c91acf79a..000000000
--- a/qmake/generators/makefile.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/****************************************************************************
-**
-** Definition of MakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-#ifndef __MAKEFILE_H__
-#define __MAKEFILE_H__
-
-#include "option.h"
-#include "project.h"
-#include
-
-#ifdef Q_OS_WIN32
-#define QT_POPEN _popen
-#else
-#define QT_POPEN popen
-#endif
-
-class MakefileGenerator
-{
- TQString spec;
- bool init_opath_already, init_already, tqmoc_aware, no_io;
- TQStringList createObjectList(const TQString &var);
- TQString build_args();
- TQString dependencyKey(const TQString &file) const;
- TQMap depProcessed;
- TQMap depHeuristics, fileFixed;
- TQMap mocablesToMOC, mocablesFromMOC;
- TQMap depends;
-
-protected:
- void writeObj(TQTextStream &, const TQString &obj, const TQString &src);
- void writeUicSrc(TQTextStream &, const TQString &ui);
- void writeMocObj(TQTextStream &, const TQString &obj, const TQString &src);
- void writeMocSrc(TQTextStream &, const TQString &src);
- void writeLexSrc(TQTextStream &, const TQString &lex);
- void writeYaccSrc(TQTextStream &, const TQString &yac);
- void writeInstalls(TQTextStream &t, const TQString &installs);
- void writeImageObj(TQTextStream &t, const TQString &obj);
- void writeImageSrc(TQTextStream &t, const TQString &images);
-
-protected:
-
- TQMakeProject *project;
-
- class MakefileDependDir {
- public:
- MakefileDependDir(const TQString &r, const TQString &l) : real_dir(r), local_dir(l) { }
- TQString real_dir, local_dir;
- };
- bool generateDependencies(TQPtrList &dirs, const TQString &x, bool recurse);
-
- TQString buildArgs();
-
- TQString specdir();
- TQString cleanFilePath(const TQString &file) const;
- bool generateMocList(const TQString &fn);
-
- TQString findMocSource(const TQString &moc_file) const;
- TQString findMocDestination(const TQString &src_file) const;
- virtual TQStringList &findDependencies(const TQString &file);
-
- void setNoIO(bool o);
- bool noIO() const;
-
- void setTQMocAware(bool o);
- bool tqmocAware() const;
- void logicWarn(const TQString &, const TQString &);
-
- virtual bool doDepends() const { return Option::mkfile::do_deps; }
- bool writeHeader(TQTextStream &);
- virtual bool writeMakefile(TQTextStream &);
- virtual bool writeMakeQmake(TQTextStream &);
- void initOutPaths();
- virtual void init();
-
- //for cross-platform dependent directories
- virtual void usePlatformDir();
-
- //for installs
- virtual TQString defaultInstall(const TQString &);
-
- //for prl
- bool processPrlFile(TQString &);
- virtual void processPrlVariable(const TQString &, const TQStringList &);
- virtual void processPrlFiles();
- virtual void writePrlFile(TQTextStream &);
-
- //make sure libraries are found
- virtual bool findLibraries();
- virtual TQString findDependency(const TQString &);
-
- void setProcessedDependencies(const TQString &file, bool b);
- bool processedDependencies(const TQString &file);
-
- virtual TQString var(const TQString &var);
- TQString varGlue(const TQString &var, const TQString &before, const TQString &glue, const TQString &after);
- TQString varList(const TQString &var);
- TQString val(const TQStringList &varList);
- TQString valGlue(const TQStringList &varList, const TQString &before, const TQString &glue, const TQString &after);
- TQString valList(const TQStringList &varList);
-
-
- TQString fileFixify(const TQString& file, const TQString &out_dir=TQString::null,
- const TQString &in_dir=TQString::null, bool force_fix=FALSE, bool canon=TRUE) const;
- TQStringList fileFixify(const TQStringList& files, const TQString &out_dir=TQString::null,
- const TQString &in_dir=TQString::null, bool force_fix=FALSE, bool canon=TRUE) const;
-public:
- MakefileGenerator(TQMakeProject *p);
- virtual ~MakefileGenerator();
-
- static MakefileGenerator *create(TQMakeProject *);
- virtual bool write();
- virtual bool openOutput(TQFile &) const;
-};
-
-inline TQString MakefileGenerator::findMocSource(const TQString &moc_file) const
-{
- TQString tmp = cleanFilePath(moc_file);
- if (mocablesFromMOC.contains(tmp))
- return mocablesFromMOC[tmp];
- else
- return TQString("");
-}
-
-inline TQString MakefileGenerator::findMocDestination(const TQString &src_file) const
-{
- TQString tmp = cleanFilePath(src_file);
- if (mocablesToMOC.contains(tmp))
- return mocablesToMOC[tmp];
- else
- return TQString("");
-}
-
-inline void MakefileGenerator::setTQMocAware(bool o)
-{ tqmoc_aware = o; }
-
-inline bool MakefileGenerator::tqmocAware() const
-{ return tqmoc_aware; }
-
-inline void MakefileGenerator::setNoIO(bool o)
-{ no_io = o; }
-
-inline bool MakefileGenerator::noIO() const
-{ return no_io; }
-
-inline TQString MakefileGenerator::defaultInstall(const TQString &)
-{ return TQString(""); }
-
-inline bool MakefileGenerator::findLibraries()
-{ return TRUE; }
-
-inline TQString MakefileGenerator::findDependency(const TQString &)
-{ return TQString(""); }
-
-inline MakefileGenerator::~MakefileGenerator()
-{ }
-
-TQString mkdir_p_asstring(const TQString &dir);
-
-#endif /* __MAKEFILE_H__ */
diff --git a/qmake/generators/projectgenerator.cpp b/qmake/generators/projectgenerator.cpp
deleted file mode 100644
index 48a93b69f..000000000
--- a/qmake/generators/projectgenerator.cpp
+++ /dev/null
@@ -1,491 +0,0 @@
-/****************************************************************************
-**
-** Implementation of ProjectGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "projectgenerator.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-
-TQString project_builtin_regx() //calculate the builtin regular expression..
-{
- TQString ret;
- TQStringList builtin_exts(".c");
- builtin_exts << Option::ui_ext << Option::yacc_ext << Option::lex_ext << ".ts";
- builtin_exts += Option::h_ext + Option::cpp_ext;
- for(TQStringList::Iterator ext_it = builtin_exts.begin();
- ext_it != builtin_exts.end(); ++ext_it) {
- if(!ret.isEmpty())
- ret += "; ";
- ret += TQString("*") + (*ext_it);
- }
- return ret;
-}
-
-
-
-ProjectGenerator::ProjectGenerator(TQMakeProject *p) : MakefileGenerator(p), init_flag(FALSE)
-{
-}
-
-void
-ProjectGenerator::init()
-{
- if(init_flag)
- return;
- int file_count = 0;
- init_flag = TRUE;
-
- TQMap &v = project->variables();
- TQString templ = Option::user_template.isEmpty() ? TQString("app") : Option::user_template;
- if(!Option::user_template_prefix.isEmpty())
- templ.prepend(Option::user_template_prefix);
- v["TEMPLATE_ASSIGN"] += templ;
-
- //figure out target
- if(Option::output.name() == "-" || Option::output.name().isEmpty())
- v["TARGET"] = TQStringList("unknown");
-
- //the scary stuff
- if(project->first("TEMPLATE_ASSIGN") != "subdirs") {
- TQString builtin_regex = project_builtin_regx();
- TQStringList dirs = Option::projfile::project_dirs;
- if(Option::projfile::do_pwd) {
- if(!v["INCLUDEPATH"].contains("."))
- v["INCLUDEPATH"] += ".";
- dirs.prepend(TQDir::currentDirPath());
- }
-
- for(TQStringList::Iterator pd = dirs.begin(); pd != dirs.end(); pd++) {
- TQString dir, regex;
- bool add_depend = FALSE;
- if(TQFile::exists((*pd))) {
- TQFileInfo fi((*pd));
- if(fi.isDir()) {
- dir = (*pd);
- add_depend = TRUE;
- if(dir.right(1) != Option::dir_sep)
- dir += Option::dir_sep;
- if(Option::projfile::do_recursive) {
- TQDir d(dir);
- d.setFilter(TQDir::Dirs);
- for(int i = 0; i < (int)d.count(); i++) {
- if(d[i] != "." && d[i] != "..")
- dirs.append(dir + d[i] + TQDir::separator() + builtin_regex);
- }
- }
- regex = builtin_regex;
- } else {
- TQString file = (*pd);
- int s = file.findRev(Option::dir_sep);
- if(s != -1)
- dir = file.left(s+1);
- if(addFile(file)) {
- add_depend = TRUE;
- file_count++;
- }
- }
- } else { //regexp
- regex = (*pd);
- }
- if(!regex.isEmpty()) {
- int s = regex.findRev(Option::dir_sep);
- if(s != -1) {
- dir = regex.left(s+1);
- regex = regex.right(regex.length() - (s+1));
- }
- if(Option::projfile::do_recursive) {
- TQDir d(dir);
- d.setFilter(TQDir::Dirs);
- for(int i = 0; i < (int)d.count(); i++) {
- if(d[i] != "." && d[i] != "..")
- dirs.append(dir + d[i] + TQDir::separator() + regex);
- }
- }
- TQDir d(dir, regex);
- for(int i = 0; i < (int)d.count(); i++) {
- TQString file = dir + d[i];
- if (addFile(file)) {
- add_depend = TRUE;
- file_count++;
- }
- }
- }
- if(add_depend && !dir.isEmpty() && !v["DEPENDPATH"].contains(dir)) {
- TQFileInfo fi(dir);
- if(fi.absFilePath() != TQDir::currentDirPath())
- v["DEPENDPATH"] += fileFixify(dir);
- }
- }
- }
- if(!file_count) { //shall we try a subdir?
- TQStringList dirs = Option::projfile::project_dirs;
- if(Option::projfile::do_pwd)
- dirs.prepend(".");
- const TQString out_file = fileFixify(Option::output.name());
- for(TQStringList::Iterator pd = dirs.begin(); pd != dirs.end(); pd++) {
- if(TQFile::exists((*pd))) {
- TQString newdir = (*pd);
- TQFileInfo fi(newdir);
- if(fi.isDir()) {
- newdir = fileFixify(newdir);
- TQStringList &subdirs = v["SUBDIRS"];
- if(TQFile::exists(fi.filePath() + TQDir::separator() + fi.fileName() + ".pro") &&
- !subdirs.contains(newdir)) {
- subdirs.append(newdir);
- } else {
- TQDir d(newdir, "*.pro");
- d.setFilter(TQDir::Files);
- for(int i = 0; i < (int)d.count(); i++) {
- TQString nd = newdir;
- if(nd == ".")
- nd = "";
- else if(!nd.isEmpty() && !nd.endsWith(TQString(TQChar(TQDir::separator()))))
- nd += TQDir::separator();
- nd += d[i];
- fileFixify(nd);
- if(d[i] != "." && d[i] != ".." && !subdirs.contains(nd) && !out_file.endsWith(nd))
- subdirs.append(nd);
- }
- }
- if(Option::projfile::do_recursive) {
- TQDir d(newdir);
- d.setFilter(TQDir::Dirs);
- for(int i = 0; i < (int)d.count(); i++) {
- TQString nd = fileFixify(newdir + TQDir::separator() + d[i]);
- if(d[i] != "." && d[i] != ".." && !dirs.contains(nd))
- dirs.append(nd);
- }
- }
- }
- } else { //regexp
- TQString regx = (*pd), dir;
- int s = regx.findRev(Option::dir_sep);
- if(s != -1) {
- dir = regx.left(s+1);
- regx = regx.right(regx.length() - (s+1));
- }
- TQDir d(dir, regx);
- d.setFilter(TQDir::Dirs);
- TQStringList &subdirs = v["SUBDIRS"];
- for(int i = 0; i < (int)d.count(); i++) {
- TQString newdir(dir + d[i]);
- TQFileInfo fi(newdir);
- if(fi.fileName() != "." && fi.fileName() != "..") {
- newdir = fileFixify(newdir);
- if(TQFile::exists(fi.filePath() + TQDir::separator() + fi.fileName() + ".pro") &&
- !subdirs.contains(newdir)) {
- subdirs.append(newdir);
- } else {
- TQDir d(newdir, "*.pro");
- d.setFilter(TQDir::Files);
- for(int i = 0; i < (int)d.count(); i++) {
- TQString nd = newdir + TQDir::separator() + d[i];
- fileFixify(nd);
- if(d[i] != "." && d[i] != ".." && !subdirs.contains(nd)) {
- if(newdir + d[i] != Option::output_dir + Option::output.name())
- subdirs.append(nd);
- }
- }
- }
- if(Option::projfile::do_recursive && !dirs.contains(newdir))
- dirs.append(newdir);
- }
- }
- }
- }
- v["TEMPLATE_ASSIGN"] = "subdirs";
- return;
- }
-
- TQPtrList deplist;
- deplist.setAutoDelete(TRUE);
- {
- TQStringList &d = v["DEPENDPATH"];
- for(TQStringList::Iterator it = d.begin(); it != d.end(); ++it) {
- TQString r = (*it), l = Option::fixPathToLocalOS((*it));
- deplist.append(new MakefileDependDir(r, l));
- }
- }
- TQStringList &h = v["HEADERS"];
- bool no_qt_files = TRUE;
- TQString srcs[] = { "SOURCES", "YACCSOURCES", "LEXSOURCES", "INTERFACES", TQString::null };
- for(int i = 0; !srcs[i].isNull(); i++) {
- TQStringList &l = v[srcs[i]];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
- if(generateDependencies(deplist, (*val_it), TRUE)) {
- TQStringList &tmp = findDependencies((*val_it));
- if(!tmp.isEmpty()) {
- for(TQStringList::Iterator dep_it = tmp.begin(); dep_it != tmp.end(); ++dep_it) {
- TQString file_dir = (*dep_it).section(Option::dir_sep, 0, -2),
- file_no_path = (*dep_it).section(Option::dir_sep, -1);
- if(!file_dir.isEmpty()) {
- for(MakefileDependDir *mdd = deplist.first(); mdd; mdd = deplist.next()) {
- if(mdd->local_dir == file_dir && !v["INCLUDEPATH"].contains(mdd->real_dir))
- v["INCLUDEPATH"] += mdd->real_dir;
- }
- }
- if(no_qt_files && file_no_path.find(TQRegExp("^q[a-z_0-9].h$")) != -1)
- no_qt_files = FALSE;
- TQString h_ext;
- for(TQStringList::Iterator hit = Option::h_ext.begin();
- hit != Option::h_ext.end(); ++hit) {
- if((*dep_it).endsWith((*hit))) {
- h_ext = (*hit);
- break;
- }
- }
- if(!h_ext.isEmpty()) {
- if((*dep_it).left(1).lower() == "q") {
- TQString qhdr = (*dep_it).lower();
- if(file_no_path == "tqthread.h")
- addConfig("thread");
- }
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin();
- cppit != Option::cpp_ext.end(); ++cppit) {
- TQString src((*dep_it).left((*dep_it).length() - h_ext.length()) +
- (*cppit));
- if(TQFile::exists(src)) {
- bool exists = FALSE;
- TQStringList &srcl = v["SOURCES"];
- for(TQStringList::Iterator src_it = srcl.begin();
- src_it != srcl.end(); ++src_it) {
- if((*src_it).lower() == src.lower()) {
- exists = TRUE;
- break;
- }
- }
- if(!exists)
- srcl.append(src);
- }
- }
- } else if((*dep_it).endsWith(Option::lex_ext) &&
- file_no_path.startsWith(Option::lex_mod)) {
- addConfig("lex_included");
- }
- if(!h.contains((*dep_it))) {
- if(generateMocList((*dep_it)) && !findMocDestination((*dep_it)).isEmpty())
- h += (*dep_it);
- }
- }
- }
- }
- }
- }
- if(h.isEmpty())
- addConfig("moc", FALSE);
-
- //if we find a file that matches an forms it needn't be included in the project
- TQStringList &u = v["INTERFACES"];
- TQString no_ui[] = { "SOURCES", "HEADERS", TQString::null };
- {
- for(int i = 0; !no_ui[i].isNull(); i++) {
- TQStringList &l = v[no_ui[i]];
- for(TQStringList::Iterator val_it = l.begin(); val_it != l.end(); ) {
- bool found = FALSE;
- for(TQStringList::Iterator ui_it = u.begin(); ui_it != u.end(); ++ui_it) {
- TQString s1 = (*val_it).right((*val_it).length() - ((*val_it).findRev(Option::dir_sep) + 1));
- if(s1.findRev('.') != -1)
- s1 = s1.left(s1.findRev('.')) + Option::ui_ext;
- TQString u1 = (*ui_it).right((*ui_it).length() - ((*ui_it).findRev(Option::dir_sep) + 1));
- if(s1 == u1) {
- found = TRUE;
- break;
- }
- }
- if(!found && (*val_it).endsWith(Option::cpp_moc_ext))
- found = TRUE;
- if(found)
- val_it = l.remove(val_it);
- else
- ++val_it;
- }
- }
- }
-}
-
-
-bool
-ProjectGenerator::writeMakefile(TQTextStream &t)
-{
- t << "######################################################################" << endl;
- t << "# Automatically generated by qmake (" << qmake_version() << ") " << endl;
- t << "######################################################################" << endl << endl;
- TQStringList::Iterator it;
- for(it = Option::before_user_vars.begin(); it != Option::before_user_vars.end(); ++it)
- t << (*it) << endl;
- t << getWritableVar("TEMPLATE_ASSIGN", FALSE);
- if(project->first("TEMPLATE_ASSIGN") == "subdirs") {
- t << endl << "# Directories" << "\n"
- << getWritableVar("SUBDIRS");
- } else {
- t << getWritableVar("TARGET")
- << getWritableVar("CONFIG", FALSE)
- << getWritableVar("CONFIG_REMOVE", FALSE)
- << getWritableVar("DEPENDPATH")
- << getWritableVar("INCLUDEPATH") << endl;
-
- t << "# Input" << "\n";
- t << getWritableVar("HEADERS")
- << getWritableVar("INTERFACES")
- << getWritableVar("LEXSOURCES")
- << getWritableVar("YACCSOURCES")
- << getWritableVar("SOURCES")
- << getWritableVar("TRANSLATIONS");
- }
- for(it = Option::after_user_vars.begin(); it != Option::after_user_vars.end(); ++it)
- t << (*it) << endl;
- return TRUE;
-}
-
-bool
-ProjectGenerator::addConfig(const TQString &cfg, bool add)
-{
- TQString where = "CONFIG";
- if(!add)
- where = "CONFIG_REMOVE";
- if(!project->variables()[where].contains(cfg)) {
- project->variables()[where] += cfg;
- return TRUE;
- }
- return FALSE;
-}
-
-
-bool
-ProjectGenerator::addFile(TQString file)
-{
- file = fileFixify(file, TQDir::currentDirPath());
- TQString dir;
- int s = file.findRev(Option::dir_sep);
- if(s != -1)
- dir = file.left(s+1);
- if(file.mid(dir.length(), Option::h_moc_mod.length()) == Option::h_moc_mod)
- return FALSE;
-
- TQString where;
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit) {
- if(file.endsWith((*cppit))) {
- if(TQFile::exists(file.left(file.length() - (*cppit).length()) + Option::ui_ext))
- return FALSE;
- else
- where = "SOURCES";
- break;
- }
- }
- if(where.isEmpty()) {
- for(TQStringList::Iterator hit = Option::h_ext.begin(); hit != Option::h_ext.end(); ++hit) {
- if(file.endsWith((*hit))) {
- where = "HEADERS";
- break;
- }
- }
- }
- if(where.isEmpty()) {
- if(file.endsWith(Option::ui_ext))
- where = "INTERFACES";
- else if(file.endsWith(".c"))
- where = "SOURCES";
- else if(file.endsWith(Option::lex_ext))
- where = "LEXSOURCES";
- else if(file.endsWith(Option::yacc_ext))
- where = "YACCSOURCES";
- else if(file.endsWith(".ts"))
- where = "TRANSLATIONS";
- }
-
- TQString newfile = fileFixify(file);
- if(!where.isEmpty() && !project->variables()[where].contains(file)) {
- project->variables()[where] += newfile;
- return TRUE;
- }
- return FALSE;
-}
-
-
-TQString
-ProjectGenerator::getWritableVar(const TQString &v, bool fixPath)
-{
- TQStringList &vals = project->variables()[v];
- if(vals.isEmpty())
- return "";
-
- TQString ret;
- if(v.endsWith("_REMOVE"))
- ret = v.left(v.length() - 7) + " -= ";
- else if(v.endsWith("_ASSIGN"))
- ret = v.left(v.length() - 7) + " = ";
- else
- ret = v + " += ";
- TQString join = vals.join(" ");
- if(ret.length() + join.length() > 80) {
- TQString spaces;
- for(unsigned int i = 0; i < ret.length(); i++)
- spaces += " ";
- join = vals.join(" \\\n" + spaces);
- }
-#if 0
- // ### Commented out for now so that project generation works.
- // Sam: it had to do with trailing \'s (ie considered continuation lines)
- if(fixPath)
- join = join.replace("\\", "/");
-#else
- Q_UNUSED(fixPath);
-#endif
- return ret + join + "\n";
-}
-
-bool
-ProjectGenerator::openOutput(TQFile &file) const
-{
- TQString outdir;
- if(!file.name().isEmpty()) {
- TQFileInfo fi(file);
- if(fi.isDir())
- outdir = fi.dirPath() + TQDir::separator();
- }
- if(!outdir.isEmpty() || file.name().isEmpty()) {
- TQString dir = TQDir::currentDirPath();
- int s = dir.findRev('/');
- if(s != -1)
- dir = dir.right(dir.length() - (s + 1));
- file.setName(outdir + dir + ".pro");
- }
- return MakefileGenerator::openOutput(file);
-}
diff --git a/qmake/generators/projectgenerator.h b/qmake/generators/projectgenerator.h
deleted file mode 100644
index a35aa2647..000000000
--- a/qmake/generators/projectgenerator.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Definition of ProjectGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-#ifndef __PROJECTGENERATOR_H__
-#define __PROJECTGENERATOR_H__
-
-#include "makefile.h"
-
-class ProjectGenerator : public MakefileGenerator
-{
- bool init_flag;
- bool addFile(TQString);
- bool addConfig(const TQString &, bool add=TRUE);
- TQString getWritableVar(const TQString &, bool fixPath=TRUE);
-protected:
- virtual void init();
- virtual bool writeMakefile(TQTextStream &);
-public:
- ProjectGenerator(TQMakeProject *p);
- ~ProjectGenerator();
- virtual bool openOutput(TQFile &) const;
-};
-
-inline ProjectGenerator::~ProjectGenerator()
-{ }
-
-
-#endif /* __PROJECTGENERATOR_H__ */
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
deleted file mode 100644
index 4a3b22785..000000000
--- a/qmake/generators/unix/unixmake.cpp
+++ /dev/null
@@ -1,878 +0,0 @@
-/****************************************************************************
-**
-** Implementation of UnixMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "unixmake.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-#include
-
-
-void
-UnixMakefileGenerator::init()
-{
- if(init_flag)
- return;
- init_flag = TRUE;
-
- if(!project->isEmpty("QMAKE_FAILED_REQUIREMENTS")) /* no point */
- return;
-
- TQStringList &configs = project->variables()["CONFIG"];
- /* this should probably not be here, but I'm using it to wrap the .t files */
- if(project->first("TEMPLATE") == "app")
- project->variables()["QMAKE_APP_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "lib")
- project->variables()["QMAKE_LIB_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "subdirs") {
- MakefileGenerator::init();
- if(project->isEmpty("MAKEFILE"))
- project->variables()["MAKEFILE"].append("Makefile");
- if(project->isEmpty("QMAKE"))
- project->variables()["QMAKE"].append("tqmake");
- if(project->variables()["QMAKE_INTERNAL_QMAKE_DEPS"].findIndex("qmake_all") == -1)
- project->variables()["QMAKE_INTERNAL_QMAKE_DEPS"].append("qmake_all");
- return; /* subdirs is done */
- }
-
- if( project->isEmpty("QMAKE_EXTENSION_SHLIB") ) {
- if ( project->isEmpty("QMAKE_CYGWIN_SHLIB") ) {
- project->variables()["QMAKE_EXTENSION_SHLIB"].append( "so" );
- } else {
- project->variables()["QMAKE_EXTENSION_SHLIB"].append( "dll" );
- }
- }
- if( project->isEmpty("QMAKE_CFLAGS_PRECOMPILE"))
- project->variables()["QMAKE_CFLAGS_PRECOMPILE"].append("-x c-header -c");
- if( project->isEmpty("QMAKE_CXXFLAGS_PRECOMPILE"))
- project->variables()["QMAKE_CXXFLAGS_PRECOMPILE"].append("-x c++-header -c");
- if( project->isEmpty("QMAKE_CFLAGS_USE_PRECOMPILE"))
- project->variables()["QMAKE_CFLAGS_USE_PRECOMPILE"].append("-include");
- if( project->isEmpty("QMAKE_EXTENSION_PLUGIN") )
- project->variables()["QMAKE_EXTENSION_PLUGIN"].append(project->first("QMAKE_EXTENSION_SHLIB"));
- if( project->isEmpty("QMAKE_COPY_FILE") )
- project->variables()["QMAKE_COPY_FILE"].append( "$(COPY)" );
- if( project->isEmpty("QMAKE_COPY_DIR") )
- project->variables()["QMAKE_COPY_DIR"].append( "$(COPY) -R" );
- if( project->isEmpty("QMAKE_INSTALL_FILE") )
- project->variables()["QMAKE_INSTALL_FILE"].append( "$(COPY_FILE)" );
- if( project->isEmpty("QMAKE_INSTALL_DIR") )
- project->variables()["QMAKE_INSTALL_DIR"].append( "$(COPY_DIR)" );
- if( project->isEmpty("QMAKE_LIBTOOL") )
- project->variables()["QMAKE_LIBTOOL"].append( "libtool --silent" );
- //If the TARGET looks like a path split it into DESTDIR and the resulting TARGET
- if(!project->isEmpty("TARGET")) {
- TQString targ = project->first("TARGET");
- int slsh = TQMAX(targ.findRev('/'), targ.findRev(Option::dir_sep));
- if(slsh != -1) {
- if(project->isEmpty("DESTDIR"))
- project->values("DESTDIR").append("");
- else if(project->first("DESTDIR").right(1) != Option::dir_sep)
- project->variables()["DESTDIR"] = project->first("DESTDIR") + Option::dir_sep;
- project->variables()["DESTDIR"] = project->first("DESTDIR") + targ.left(slsh+1);
- project->variables()["TARGET"] = targ.mid(slsh+1);
- }
- }
-
- project->variables()["QMAKE_ORIG_TARGET"] = project->variables()["TARGET"];
- project->variables()["QMAKE_ORIG_DESTDIR"] = project->variables()["DESTDIR"];
-
- bool is_qt = (project->first("TARGET") == "qt" || project->first("TARGET") == "qte" ||
- project->first("TARGET") == "tqt-mt" || project->first("TARGET") == "qte-mt");
- bool extern_libs = !project->isEmpty("QMAKE_APP_FLAG") ||
- (!project->isEmpty("QMAKE_LIB_FLAG") &&
- project->isActiveConfig("dll")) || is_qt;
- project->variables()["QMAKE_LIBS"] += project->variables()["LIBS"];
- if ( (!project->isEmpty("QMAKE_LIB_FLAG") && !project->isActiveConfig("staticlib") ) ||
- (project->isActiveConfig("qt") && project->isActiveConfig( "plugin" ) )) {
- if(configs.findIndex("dll") == -1) configs.append("dll");
- } else if ( !project->isEmpty("QMAKE_APP_FLAG") || project->isActiveConfig("dll") ) {
- configs.remove("staticlib");
- }
- if ( project->isActiveConfig("warn_off") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_OFF"];
- } else if ( project->isActiveConfig("warn_on") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_ON"];
- }
- if ( project->isActiveConfig("debug") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_DEBUG"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_DEBUG"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_DEBUG"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RELEASE"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RELEASE"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_RELEASE"];
- }
- if(!project->isEmpty("QMAKE_INCREMENTAL"))
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_INCREMENTAL"];
- else if(!project->isEmpty("QMAKE_LFLAGS_PREBIND") &&
- !project->variables()["QMAKE_LIB_FLAG"].isEmpty() &&
- project->isActiveConfig("dll"))
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_PREBIND"];
- if(!project->isEmpty("QMAKE_INCDIR"))
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR"];
- if(!project->isEmpty("QMAKE_LIBDIR")) {
- if ( !project->isEmpty("QMAKE_RPATH") )
- project->variables()["QMAKE_LFLAGS"] += varGlue("QMAKE_LIBDIR", " " + var("QMAKE_RPATH"),
- " " + var("QMAKE_RPATH"), "");
- project->variables()["QMAKE_LIBDIR_FLAGS"] += varGlue( "QMAKE_LIBDIR", "-L", " -L", "" );
- }
- if ( project->isActiveConfig("qtopia") ) {
- if(configs.findIndex("qtopialib") == -1)
- configs.append("qtopialib");
- if(configs.findIndex("qtopiainc") == -1)
- configs.append("qtopiainc");
- }
- if ( project->isActiveConfig("qtopiainc") )
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQTOPIA"];
- if ( project->isActiveConfig("qtopialib") ) {
- if(!project->isEmpty("QMAKE_LIBDIR_TQTOPIA"))
- project->variables()["QMAKE_LIBDIR_FLAGS"] += varGlue("QMAKE_LIBDIR_TQTOPIA", "-L", " -L", "");
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QTOPIA"];
- }
- if ( project->isActiveConfig("qt") ) {
- if ( project->isActiveConfig("accessibility" ) )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_ACCESSIBILITY_SUPPORT");
- if ( project->isActiveConfig("tablet") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_TABLET_SUPPORT");
- if(configs.findIndex("moc")) configs.append("moc");
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQT"];
- if ( !project->isActiveConfig("debug") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_NO_DEBUG");
- if ( !is_qt ) {
- if ( !project->isEmpty("QMAKE_RPATH") ) {
- if ( !project->isEmpty("QMAKE_RTLDIR_QT") )
- project->variables()["QMAKE_LFLAGS"] += varGlue("QMAKE_RTLDIR_QT", " " + var("QMAKE_RPATH"),
- " " + var("QMAKE_RPATH"), "");
- else if ( !project->isEmpty("QMAKE_LIBDIR_TQT") )
- project->variables()["QMAKE_LFLAGS"] += varGlue("QMAKE_LIBDIR_TQT", " " + var("QMAKE_RPATH"),
- " " + var("QMAKE_RPATH"), "");
- }
- if ( !project->isEmpty("QMAKE_LIBDIR_TQT") )
- project->variables()["QMAKE_LIBDIR_FLAGS"] += varGlue("QMAKE_LIBDIR_TQT", "-L", " -L", "");
- if ( project->isActiveConfig("thread") && !project->isEmpty("QMAKE_LIBS_QT_THREAD") )
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_THREAD"];
- else
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];
- }
- }
- if ( project->isActiveConfig("opengl") && !project->isActiveConfig("dlopen_opengl")) {
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_OPENGL"];
- if(!project->isEmpty("QMAKE_LIBDIR_OPENGL"))
- project->variables()["QMAKE_LIBDIR_FLAGS"] += varGlue("QMAKE_LIBDIR_OPENGL", "-L", " -L", "");
- if ( is_qt )
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL_QT"];
- else
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];
- }
- if ( extern_libs && (project->isActiveConfig("qt") || project->isActiveConfig("opengl")) ) {
- if(configs.findIndex("x11lib") == -1)
- configs.append("x11lib");
- if ( project->isActiveConfig("opengl") && configs.findIndex("x11inc") == -1 )
- configs.append("x11inc");
- }
- if ( project->isActiveConfig("x11") ) {
- if(configs.findIndex("x11lib") == -1)
- configs.append("x11lib");
- if(configs.findIndex("x11inc") == -1)
- configs.append("x11inc");
- }
- if ( project->isActiveConfig("x11inc") )
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_X11"];
- if ( project->isActiveConfig("x11lib") ) {
- if(!project->isEmpty("QMAKE_LIBDIR_X11"))
- project->variables()["QMAKE_LIBDIR_FLAGS"] += varGlue("QMAKE_LIBDIR_X11", "-L", " -L", "");
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_X11"];
- }
- if ( project->isActiveConfig("x11sm") )
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_X11SM"];
- if ( project->isActiveConfig("dylib") )
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_DYNLOAD"];
- if ( project->isActiveConfig("thread") ) {
- if(project->isActiveConfig("qt"))
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_THREAD_SUPPORT");
- if ( !project->isEmpty("QMAKE_CFLAGS_THREAD")) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_THREAD"];
- project->variables()["PRL_EXPORT_CFLAGS"] += project->variables()["QMAKE_CFLAGS_THREAD"];
- }
- if( !project->isEmpty("QMAKE_CXXFLAGS_THREAD")) {
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_THREAD"];
- project->variables()["PRL_EXPORT_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_THREAD"];
- }
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_THREAD"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_THREAD"];
- if(!project->isEmpty("QMAKE_LFLAGS_THREAD"))
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_THREAD"];
- }
- if ( project->isActiveConfig("moc") )
- setTQMocAware(TRUE);
- TQString compile_flag = var("QMAKE_COMPILE_FLAG");
- if(compile_flag.isEmpty())
- compile_flag = "-c";
- if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) {
- TQString prefix_flags = project->first("QMAKE_CFLAGS_PREFIX_INCLUDE");
- if(prefix_flags.isEmpty())
- prefix_flags = "-include";
- compile_flag += " " + prefix_flags + " " + project->first("QMAKE_ORIG_TARGET");
- }
- if(!project->isEmpty("ALLMOC_HEADER")) {
- initOutPaths(); // Need to fix outdirs since we do this before init() (because we could add to SOURCES et al)
- TQString allmoc = fileFixify(project->first("MOC_DIR") + "/allmoc.cpp", TQDir::currentDirPath(), Option::output_dir);
- project->variables()["SOURCES"].prepend(allmoc);
- project->variables()["HEADERS_ORIG"] = project->variables()["HEADERS"];
- project->variables()["HEADERS"].clear();
- }
- if ( project->isEmpty("QMAKE_RUN_CC") )
- project->variables()["QMAKE_RUN_CC"].append("$(CC) " + compile_flag + " $(CFLAGS) $(INCPATH) -o $obj $src");
- if ( project->isEmpty("QMAKE_RUN_CC_IMP") )
- project->variables()["QMAKE_RUN_CC_IMP"].append("$(CC) " + compile_flag + " $(CFLAGS) $(INCPATH) -o $@ $<");
- if ( project->isEmpty("QMAKE_RUN_CXX") )
- project->variables()["QMAKE_RUN_CXX"].append("$(CXX) " + compile_flag + " $(CXXFLAGS) $(INCPATH) -o $obj $src");
- if ( project->isEmpty("QMAKE_RUN_CXX_IMP") )
- project->variables()["QMAKE_RUN_CXX_IMP"].append("$(CXX) " + compile_flag + " $(CXXFLAGS) $(INCPATH) -o $@ $<");
- project->variables()["QMAKE_FILETAGS"] += TQStringList::split("HEADERS SOURCES TARGET DESTDIR", " ");
- if( project->isActiveConfig("GNUmake") && !project->isEmpty("QMAKE_CFLAGS_DEPS"))
- include_deps = TRUE; //do not generate deps
- if(project->isActiveConfig("compile_libtool"))
- Option::obj_ext = ".lo"; //override the .o
-
- MakefileGenerator::init();
- if ( project->isActiveConfig("resource_fork") && !project->isActiveConfig("console")) {
- if(!project->isEmpty("QMAKE_APP_FLAG")) {
- if(project->isEmpty("DESTDIR"))
- project->values("DESTDIR").append("");
- project->variables()["DESTDIR"].first() += project->variables()["TARGET"].first() +
- ".app/Contents/MacOS/";
- project->variables()["QMAKE_PKGINFO"].append(project->first("DESTDIR") + "../PkgInfo");
- project->variables()["ALL_DEPS"] += project->first("QMAKE_PKGINFO");
-
- TQString plist = fileFixify(project->first("QMAKE_INFO_PLIST"));
- if(plist.isEmpty())
- plist = specdir() + TQDir::separator() + "Info.plist." + project->first("TEMPLATE");
- if(TQFile::exists(Option::fixPathToLocalOS(plist))) {
- if(project->isEmpty("QMAKE_INFO_PLIST"))
- project->variables()["QMAKE_INFO_PLIST"].append(plist);
- project->variables()["QMAKE_INFO_PLIST_OUT"].append(project->first("DESTDIR") +
- "../Info.plist");
- project->variables()["ALL_DEPS"] += project->first("QMAKE_INFO_PLIST_OUT");
- if(!project->isEmpty("RC_FILE"))
- project->variables()["ALL_DEPS"] += project->first("DESTDIR") +
- "../Resources/application.icns";
- }
- }
- }
-
- if(!project->isEmpty("QMAKE_INTERNAL_INCLUDED_FILES"))
- project->variables()["DISTFILES"] += project->variables()["QMAKE_INTERNAL_INCLUDED_FILES"];
- project->variables()["DISTFILES"] += Option::mkfile::project_files;
-
- init2();
- project->variables()["QMAKE_INTERNAL_PRL_LIBS"] << "QMAKE_LIBDIR_FLAGS" << "QMAKE_LIBS";
- if(!project->isEmpty("QMAKE_MAX_FILES_PER_AR")) {
- bool ok;
- int max_files = project->first("QMAKE_MAX_FILES_PER_AR").toInt(&ok);
- TQStringList ar_sublibs, objs = project->variables()["OBJECTS"] + project->variables()["OBJMOC"];
- if(ok && max_files > 5 && max_files < (int)objs.count()) {
- int obj_cnt = 0, lib_cnt = 0;
- TQString lib;
- for(TQStringList::Iterator objit = objs.begin(); objit != objs.end(); ++objit) {
- if((++obj_cnt) >= max_files) {
- if(lib_cnt) {
- lib.sprintf("lib%s-tmp%d.a", project->first("QMAKE_ORIG_TARGET").latin1(), lib_cnt);
- ar_sublibs << lib;
- obj_cnt = 0;
- }
- lib_cnt++;
- }
- }
- }
- if(!ar_sublibs.isEmpty()) {
- project->variables()["QMAKE_AR_SUBLIBS"] = ar_sublibs;
- project->variables()["QMAKE_INTERNAL_PRL_LIBS"] << "QMAKE_AR_SUBLIBS";
- }
- }
-
- if(project->isActiveConfig("compile_libtool")) {
- const TQString libtoolify[] = { "QMAKE_RUN_CC", "QMAKE_RUN_CC_IMP",
- "QMAKE_RUN_CXX", "QMAKE_RUN_CXX_IMP",
- "QMAKE_LINK_THREAD", "QMAKE_LINK", "QMAKE_AR_CMD", "QMAKE_LINK_SHLIB_CMD",
- TQString::null };
- for(int i = 0; !libtoolify[i].isNull(); i++) {
- TQStringList &l = project->variables()[libtoolify[i]];
- if(!l.isEmpty()) {
- TQString libtool_flags, comp_flags;
- if(libtoolify[i].startsWith("QMAKE_LINK") || libtoolify[i] == "QMAKE_AR_CMD") {
- libtool_flags += " --mode=link";
- if(project->isActiveConfig("staticlib")) {
- comp_flags += " -static";
- } else {
- if(!project->isEmpty("QMAKE_LIB_FLAG")) {
- int maj = project->first("VER_MAJ").toInt();
- int min = project->first("VER_MIN").toInt();
- int pat = project->first("VER_PAT").toInt();
- comp_flags += " -version-info " + TQString::number(10*maj + min) +
- ":" + TQString::number(pat) + ":0";
- if(libtoolify[i] != "QMAKE_AR_CMD") {
- TQString rpath = project->first("target.path");
- if(rpath.right(1) != Option::dir_sep) {
- rpath += Option::dir_sep;
- }
- comp_flags += " -rpath " + Option::fixPathToTargetOS(rpath, FALSE);
- }
- }
- }
- if(project->isActiveConfig("plugin"))
- comp_flags += " -module";
- } else {
- libtool_flags += " --mode=compile";
- }
- l.first().prepend("$(LIBTOOL)" + libtool_flags + " ");
- if(!comp_flags.isEmpty())
- l.first() += comp_flags;
- }
- }
- }
-}
-
-TQStringList
-UnixMakefileGenerator::combineSetLFlags(const TQStringList &list1, const TQStringList &list2)
-{
- if(project->isActiveConfig("no_smart_library_merge"))
- return list1 + list2;
-
- TQStringList ret;
- for(int i = 0; i < 2; i++) {
- const TQStringList *lst = i ? &list2 : &list1;
- for(TQStringList::ConstIterator it = lst->begin(); it != lst->end(); ++it) {
- if((*it).startsWith("-")) {
- if((*it).startsWith("-L")) {
- if(ret.findIndex((*it)) == -1)
- ret.append((*it));
- } else if((*it).startsWith("-l")) {
- while(1) {
- TQStringList::Iterator idx = ret.find((*it));
- if(idx == ret.end())
- break;
- ret.remove(idx);
- }
- ret.append((*it));
- } else if(project->isActiveConfig("macx") && (*it).startsWith("-framework")) {
- int as_one = TRUE;
- TQString framework_in;
- if((*it).length() > 11) {
- framework_in = (*it).mid(11);
- } else {
- if(it != lst->end()) {
- ++it;
- as_one = FALSE;
- framework_in = (*it);
- }
- }
- if(!framework_in.isEmpty()) {
- for(TQStringList::Iterator outit = ret.begin(); outit != ret.end(); ++outit) {
- if((*outit).startsWith("-framework")) {
- int found = 0;
- if((*outit).length() > 11) {
- if(framework_in == (*outit).mid(11))
- found = 1;
- } else {
- if(it != lst->end()) {
- ++outit;
- if(framework_in == (*outit)) {
- --outit;
- found = 2;
- }
- }
- }
- for(int i = 0; i < found; i++)
- outit = ret.remove(outit);
- }
- }
- if(as_one) {
- ret.append("-framework " + framework_in);
- } else {
- ret.append("-framework");
- ret.append(framework_in);
- }
- }
- } else {
-#if 1
- while(1) {
- TQStringList::Iterator idx = ret.find((*it));
- if(idx == ret.end())
- break;
- ret.remove(idx);
- }
-#endif
- ret.append((*it));
- }
- } else /*if(TQFile::exists((*it)))*/ {
- while(1) {
- TQStringList::Iterator idx = ret.find((*it));
- if(idx == ret.end())
- break;
- ret.remove(idx);
- }
- ret.append((*it));
- }
- }
- }
- return ret;
-}
-
-void
-UnixMakefileGenerator::processPrlVariable(const TQString &var, const TQStringList &l)
-{
- if(var == "QMAKE_PRL_LIBS")
- project->variables()["QMAKE_CURRENT_PRL_LIBS"] = combineSetLFlags(project->variables()["QMAKE_CURRENT_PRL_LIBS"] +
- project->variables()["QMAKE_LIBS"], l);
- else
- MakefileGenerator::processPrlVariable(var, l);
-}
-
-TQString
-UnixMakefileGenerator::findDependency(const TQString &dep)
-{
- TQStringList::Iterator it;
- {
- TQStringList &qut = project->variables()["QMAKE_EXTRA_UNIX_TARGETS"];
- for(it = qut.begin(); it != qut.end(); ++it) {
- TQString targ = var((*it) + ".target");
- if(targ.isEmpty())
- targ = (*it);
- if(targ.endsWith(dep))
- return targ;
- }
- }
- {
- TQStringList &quc = project->variables()["QMAKE_EXTRA_UNIX_COMPILERS"];
- for(it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- TQString tmp_cmd = project->variables()[(*it) + ".commands"].join(" ");
- if(tmp_out.isEmpty() || tmp_cmd.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQString out = tmp_out;
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(out.endsWith(dep))
- return out;
- }
- }
- }
- }
- return MakefileGenerator::findDependency(dep);
-}
-
-TQStringList
-&UnixMakefileGenerator::findDependencies(const TQString &file)
-{
- TQStringList &ret = MakefileGenerator::findDependencies(file);
- // Note: The QMAKE_IMAGE_COLLECTION file have all images
- // as dependency, so don't add precompiled header then
- if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")
- && file != project->first("QMAKE_IMAGE_COLLECTION")) {
- TQString header_prefix = project->first("QMAKE_ORIG_TARGET") + ".gch" + Option::dir_sep;
- header_prefix += project->first("QMAKE_PRECOMP_PREFIX");
- if(file.endsWith(".c")) {
- TQString precomp_h = header_prefix + "c";
- if(!ret.contains(precomp_h))
- ret += precomp_h;
- } else {
- for(TQStringList::Iterator it = Option::cpp_ext.begin(); it != Option::cpp_ext.end(); ++it) {
- if(file.endsWith(*it)) {
- TQString precomp_h = header_prefix + "c++";
- if(!ret.contains(precomp_h))
- ret += precomp_h;
- break;
- }
- }
- }
- }
- return ret;
-}
-
-bool
-UnixMakefileGenerator::findLibraries()
-{
- TQPtrList libdirs;
- libdirs.setAutoDelete(TRUE);
- const TQString lflags[] = { "QMAKE_LIBDIR_FLAGS", "QMAKE_LIBS", TQString::null };
- for(int i = 0; !lflags[i].isNull(); i++) {
- TQStringList &l = project->variables()[lflags[i]];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString stub, dir, extn, opt = (*it).stripWhiteSpace();
- if(opt.startsWith("-")) {
- if(opt.startsWith("-L")) {
- TQString r = opt.right(opt.length() - 2), l = r;
- fixEnvVariables(l);
- libdirs.append(new MakefileDependDir(r.replace("\"",""),
- l.replace("\"","")));
- } else if(opt.startsWith("-l")) {
- stub = opt.mid(2);
- } else if(project->isActiveConfig("macx") && opt.startsWith("-framework")) {
- if(opt.length() > 11) {
- opt = opt.mid(11);
- } else {
- ++it;
- opt = (*it);
- }
- extn = "";
- dir = "/System/Library/Frameworks/" + opt + ".framework/";
- stub = opt;
- }
- } else {
- extn = dir = "";
- stub = opt;
- int slsh = opt.findRev(Option::dir_sep);
- if(slsh != -1) {
- dir = opt.left(slsh);
- stub = opt.mid(slsh+1);
- }
- TQRegExp stub_reg("^.*lib(" + stub + "[^./=]*)\\.(.*)$");
- if(stub_reg.exactMatch(stub)) {
- stub = stub_reg.cap(1);
- extn = stub_reg.cap(2);
- }
- }
- if(!stub.isEmpty()) {
- const TQString modifs[] = { "", "-mt", TQString::null };
- for(int modif = 0; !modifs[modif].isNull(); modif++) {
- bool found = FALSE;
- TQStringList extens;
- if(!extn.isNull())
- extens << extn;
- else
- extens << project->variables()["QMAKE_EXTENSION_SHLIB"].first() << "a";
- for(TQStringList::Iterator extit = extens.begin(); extit != extens.end(); ++extit) {
- if(dir.isNull()) {
- TQString lib_stub;
- for(MakefileDependDir *mdd = libdirs.first(); mdd; mdd = libdirs.next() ) {
- if(TQFile::exists(mdd->local_dir + Option::dir_sep + "lib" + stub +
- modifs[modif] + "." + (*extit))) {
- lib_stub = stub + modifs[modif];
- break;
- }
- }
- if(!lib_stub.isNull()) {
- (*it) = "-l" + lib_stub;
- found = TRUE;
- break;
- }
- } else {
- if(TQFile::exists("lib" + stub + modifs[modif] + "." + (*extit))) {
- (*it) = "lib" + stub + modifs[modif] + "." + (*extit);
- found = TRUE;
- break;
- }
- }
- }
- if(!found && project->isActiveConfig("compile_libtool")) {
- for(MakefileDependDir *mdd = libdirs.first(); mdd; mdd = libdirs.next() ) {
- if(TQFile::exists(mdd->local_dir + Option::dir_sep + "lib" + stub + modifs[modif] + Option::libtool_ext)) {
- (*it) = mdd->real_dir + Option::dir_sep + "lib" + stub + modifs[modif] + Option::libtool_ext;
- found = TRUE;
- break;
- }
- }
- }
- if(found)
- break;
-
- }
- }
- }
- }
- return FALSE;
-}
-
-TQString linkLib(const TQString &file, const TQString &libName) {
- TQString ret;
- TQRegExp reg("^.*lib(" + libName + "[^./=]*).*$");
- if(reg.exactMatch(file))
- ret = "-l" + reg.cap(1);
- return ret;
-}
-
-void
-UnixMakefileGenerator::processPrlFiles()
-{
- TQDict processed;
- TQPtrList libdirs;
- libdirs.setAutoDelete(TRUE);
- const TQString lflags[] = { "QMAKE_LIBDIR_FLAGS", "QMAKE_LIBS", TQString::null };
- for(int i = 0; !lflags[i].isNull(); i++) {
- for(bool ret = FALSE; TRUE; ret = FALSE) {
- TQStringList l_out;
- TQStringList &l = project->variables()[lflags[i]];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- project->variables()["QMAKE_CURRENT_PRL_LIBS"].clear();
- TQString opt = (*it).stripWhiteSpace();
- if(opt.startsWith("-")) {
- if(opt.startsWith("-L")) {
- TQString r = opt.right(opt.length() - 2), l = r;
- fixEnvVariables(l);
- libdirs.append(new MakefileDependDir(r.replace("\"",""),
- l.replace("\"","")));
- } else if(opt.startsWith("-l") && !processed[opt]) {
- TQString lib = opt.right(opt.length() - 2);
- for(MakefileDependDir *mdd = libdirs.first(); mdd; mdd = libdirs.next() ) {
- if(!project->isActiveConfig("compile_libtool")) { //give them the .libs..
- TQString la = mdd->local_dir + Option::dir_sep + "lib" + lib + Option::libtool_ext;
- if(TQFile::exists(la) && TQFile::exists(mdd->local_dir + Option::dir_sep + ".libs")) {
- l_out.append("-L" + mdd->real_dir + Option::dir_sep + ".libs");
- libdirs.append(new MakefileDependDir(mdd->real_dir + Option::dir_sep + ".libs",
- mdd->local_dir + Option::dir_sep + ".libs"));
- }
- }
-
- TQString prl = mdd->local_dir + Option::dir_sep + "lib" + lib;
- if(processPrlFile(prl)) {
- if(prl.startsWith(mdd->local_dir))
- prl.replace(0, mdd->local_dir.length(), mdd->real_dir);
- opt = linkLib(prl, lib);
- processed.insert(opt, (void*)1);
- ret = TRUE;
- break;
- }
- }
- } else if(project->isActiveConfig("macx") && opt.startsWith("-framework")) {
- if(opt.length() > 11) {
- opt = opt.mid(11);
- } else {
- ++it;
- opt = (*it);
- }
- TQString prl = "/System/Library/Frameworks/" + opt +
- ".framework/" + opt;
- if(processPrlFile(prl))
- ret = TRUE;
- l_out.append("-framework");
- }
- if(!opt.isEmpty())
- l_out.append(opt);
- l_out = combineSetLFlags(l_out, project->variables()["QMAKE_CURRENT_PRL_LIBS"]);
- } else {
- TQString lib = opt;
- if(!processed[lib] && processPrlFile(lib)) {
- processed.insert(lib, (void*)1);
- ret = TRUE;
- }
-#if 0
- if(ret)
- opt = linkLib(lib, "");
-#endif
- if(!opt.isEmpty())
- l_out.append(opt);
- l_out = combineSetLFlags(l_out, project->variables()["QMAKE_CURRENT_PRL_LIBS"]);
- }
- }
- if(ret && l != l_out)
- l = l_out;
- else
- break;
- }
- }
-}
-
-TQString
-UnixMakefileGenerator::defaultInstall(const TQString &t)
-{
- if(t != "target" || project->first("TEMPLATE") == "subdirs")
- return TQString();
-
- bool resource = FALSE;
- const TQString root = "$(INSTALL_ROOT)";
- TQStringList &uninst = project->variables()[t + ".uninstall"];
- TQString ret, destdir=project->first("DESTDIR");
- TQString targetdir = Option::fixPathToTargetOS(project->first("target.path"), FALSE);
- if(!destdir.isEmpty() && destdir.right(1) != Option::dir_sep)
- destdir += Option::dir_sep;
- targetdir = fileFixify(targetdir);
- if(targetdir.right(1) != Option::dir_sep)
- targetdir += Option::dir_sep;
-
- TQStringList links;
- TQString target="$(TARGET)";
- if(project->first("TEMPLATE") == "app") {
- target = "$(QMAKE_TARGET)";
- if(project->isActiveConfig("resource_fork") && !project->isActiveConfig("console")) {
- destdir += "../../../";
- target += ".app";
- resource = TRUE;
- }
- } else if(project->first("TEMPLATE") == "lib") {
- if(project->isActiveConfig("create_prl") && !project->isActiveConfig("no_install_prl") &&
- !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) {
- TQString dst_prl = project->first("QMAKE_INTERNAL_PRL_FILE");
- int slsh = dst_prl.findRev('/');
- if(slsh != -1)
- dst_prl = dst_prl.right(dst_prl.length() - slsh - 1);
- dst_prl = root + targetdir + dst_prl;
- ret += "-$(INSTALL_FILE) \"" + project->first("QMAKE_INTERNAL_PRL_FILE") + "\" \"" + dst_prl + "\"";
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- uninst.append("-$(DEL_FILE) \"" + dst_prl + "\"");
- }
- if(project->isActiveConfig("create_libtool") && !project->isActiveConfig("compile_libtool")) {
- TQString src_lt = var("QMAKE_ORIG_TARGET");
- int slsh = src_lt.findRev(Option::dir_sep);
- if(slsh != -1)
- src_lt = src_lt.right(src_lt.length() - slsh - 1);
- int dot = src_lt.find('.');
- if(dot != -1)
- src_lt = src_lt.left(dot);
- src_lt += Option::libtool_ext;
- src_lt.prepend("lib");
- TQString dst_lt = root + targetdir + src_lt;
- if(!project->isEmpty("DESTDIR")) {
- src_lt.prepend(var("DESTDIR"));
- src_lt = Option::fixPathToLocalOS(fileFixify(src_lt,
- TQDir::currentDirPath(), Option::output_dir));
- }
- if(!ret.isEmpty())
- ret += "\n\t";
- ret += "-$(INSTALL_FILE) \"" + src_lt + "\" \"" + dst_lt + "\"";
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- uninst.append("-$(DEL_FILE) \"" + dst_lt + "\"");
- }
- if(project->isActiveConfig("create_pc")) {
- TQString src_pc = var("QMAKE_ORIG_TARGET");
- int slsh = src_pc.findRev(Option::dir_sep);
- if(slsh != -1)
- src_pc = src_pc.right(src_pc.length() - slsh - 1);
- int dot = src_pc.find('.');
- if(dot != -1)
- src_pc = src_pc.left(dot);
- src_pc += ".pc";
- TQString d = root + targetdir + "pkgconfig" + Option::dir_sep;
- TQString dst_pc = d + src_pc;
- if(!project->isEmpty("DESTDIR")) {
- src_pc.prepend(var("DESTDIR"));
- src_pc = Option::fixPathToLocalOS(fileFixify(src_pc,
- TQDir::currentDirPath(), Option::output_dir));
- }
- if(!ret.isEmpty())
- ret += "\n\t";
- ret += mkdir_p_asstring(d) + "\n\t";
- ret += "-$(INSTALL_FILE) \"" + src_pc + "\" \"" + dst_pc + "\"";
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- uninst.append("-$(DEL_FILE) \"" + dst_pc + "\"");
- }
- if ( project->isEmpty("QMAKE_CYGWIN_SHLIB") && project->isEmpty("QMAKE_OPENBSD_SHLIBS") ) {
- if ( !project->isActiveConfig("staticlib") && !project->isActiveConfig("plugin") ) {
- if ( project->isEmpty("QMAKE_HPUX_SHLIB") ) {
- links << "$(TARGET0)" << "$(TARGET1)" << "$(TARGET2)";
- } else {
- links << "$(TARGET0)";
- }
- }
- }
- }
-
- if(!resource && project->isActiveConfig("compile_libtool")) {
- TQString src_targ = target;
- if(src_targ == "$(TARGET)")
- src_targ = "$(TARGETL)";
- TQString dst_dir = fileFixify(targetdir);
- if(TQDir::isRelativePath(dst_dir))
- dst_dir = Option::fixPathToTargetOS(Option::output_dir + Option::dir_sep + dst_dir);
- ret = "-$(LIBTOOL) --mode=install cp \"" + src_targ + "\" \"" + root + dst_dir + "\"";
- uninst.append("-$(LIBTOOL) --mode=uninstall \"" + src_targ + "\"");
- } else {
- TQString src_targ = target;
- if(!destdir.isEmpty())
- src_targ = Option::fixPathToTargetOS(destdir + target, FALSE);
- TQString dst_targ = root + targetdir + target;
- if(!ret.isEmpty())
- ret += "\n\t";
- if(resource)
- ret += "$(DEL_FILE) -r \"" + dst_targ + "\"" + "\n\t";
- if(!ret.isEmpty())
- ret += "\n\t";
- ret += TQString(resource ? "-$(INSTALL_DIR)" : "-$(INSTALL_FILE)") + " \"" +
- src_targ + "\" \"" + dst_targ + "\"";
- if(!project->isActiveConfig("debug") && !project->isEmpty("QMAKE_STRIP") &&
- (project->first("TEMPLATE") != "lib" || !project->isActiveConfig("staticlib"))) {
- ret += "\n\t-" + var("QMAKE_STRIP");
- if(project->first("TEMPLATE") == "lib" && !project->isEmpty("QMAKE_STRIPFLAGS_LIB"))
- ret += " " + var("QMAKE_STRIPFLAGS_LIB");
- else if(project->first("TEMPLATE") == "app" && !project->isEmpty("QMAKE_STRIPFLAGS_APP"))
- ret += " " + var("QMAKE_STRIPFLAGS_APP");
- if(resource)
- ret = " \"" + dst_targ + "/Contents/MacOS/$(QMAKE_TARGET)\"";
- else
- ret += " \"" + dst_targ + "\"";
- }
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- if(resource)
- uninst.append("-$(DEL_FILE) -r \"" + dst_targ + "\"");
- else
- uninst.append("-$(DEL_FILE) \"" + dst_targ + "\"");
- if(!links.isEmpty()) {
- for(TQStringList::Iterator it = links.begin(); it != links.end(); it++) {
- if(Option::target_mode == Option::TARG_WIN_MODE ||
- Option::target_mode == Option::TARG_MAC9_MODE) {
- } else if(Option::target_mode == Option::TARG_UNIX_MODE ||
- Option::target_mode == Option::TARG_MACX_MODE) {
- TQString link = Option::fixPathToTargetOS(destdir + (*it), FALSE);
- int lslash = link.findRev(Option::dir_sep);
- if(lslash != -1)
- link = link.right(link.length() - (lslash + 1));
- TQString dst_link = root + targetdir + link;
- ret += "\n\t-$(SYMLINK) \"$(TARGET)\" \"" + dst_link + "\"";
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- uninst.append("-$(DEL_FILE) \"" + dst_link + "\"");
- }
- }
- }
- }
- return ret;
-}
diff --git a/qmake/generators/unix/unixmake.h b/qmake/generators/unix/unixmake.h
deleted file mode 100644
index e243e1a5f..000000000
--- a/qmake/generators/unix/unixmake.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Definition of UnixMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __UNIXMAKE_H__
-#define __UNIXMAKE_H__
-
-#include "makefile.h"
-
-class UnixMakefileGenerator : public MakefileGenerator
-{
- bool init_flag, include_deps;
- bool writeMakefile(TQTextStream &);
- void writeExtraVariables(TQTextStream &);
- TQString libtoolFileName();
- void writeLibtoolFile(); // for libtool
- TQString pkgConfigPrefix() const;
- TQString pkgConfigFileName();
- TQString pkgConfigFixPath(TQString) const;
- void writePkgConfigFile(); // for pkg-config
- TQStringList combineSetLFlags(const TQStringList &list1, const TQStringList &list2);
- void writePrlFile(TQTextStream &);
-
-public:
- UnixMakefileGenerator(TQMakeProject *p);
- ~UnixMakefileGenerator();
-
-protected:
- virtual bool doPrecompiledHeaders() const { return project->isActiveConfig("precompile_header"); }
- virtual bool doDepends() const { return !include_deps && MakefileGenerator::doDepends(); }
- virtual TQString defaultInstall(const TQString &);
- virtual void processPrlVariable(const TQString &, const TQStringList &);
- virtual void processPrlFiles();
-
- virtual bool findLibraries();
- virtual TQString findDependency(const TQString &);
- virtual TQStringList &findDependencies(const TQString &);
- virtual void init();
-
- void writeMakeParts(TQTextStream &);
- void writeSubdirs(TQTextStream &, bool=TRUE);
-
-private:
- void init2();
-};
-
-inline UnixMakefileGenerator::~UnixMakefileGenerator()
-{ }
-
-
-#endif /* __UNIXMAKE_H__ */
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
deleted file mode 100644
index e29ca16a3..000000000
--- a/qmake/generators/unix/unixmake2.cpp
+++ /dev/null
@@ -1,1624 +0,0 @@
-/****************************************************************************
-**
-** Implementation of UnixMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "unixmake.h"
-#include "option.h"
-#include "meta.h"
-#include
-#include
-#include
-#include
-
-TQString mkdir_p_asstring(const TQString &dir);
-
-UnixMakefileGenerator::UnixMakefileGenerator(TQMakeProject *p) : MakefileGenerator(p), init_flag(FALSE), include_deps(FALSE)
-{
-
-}
-
-void
-UnixMakefileGenerator::writePrlFile(TQTextStream &t)
-{
- MakefileGenerator::writePrlFile(t);
- // libtool support
- if(project->isActiveConfig("create_libtool") && project->first("TEMPLATE") == "lib") { //write .la
- if(project->isActiveConfig("compile_libtool"))
- warn_msg(WarnLogic, "create_libtool specified with compile_libtool can lead to conflicting .la\n"
- "formats, create_libtool has been disabled\n");
- else
- writeLibtoolFile();
- }
- // pkg-config support
- if(project->isActiveConfig("create_pc") && project->first("TEMPLATE") == "lib")
- writePkgConfigFile();
-}
-
-bool
-UnixMakefileGenerator::writeMakefile(TQTextStream &t)
-{
-
- writeHeader(t);
- if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
- t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("tqmake") : var("QMAKE_QMAKE")) << endl;
- { //write the extra unix targets..
- TQStringList &qut = project->variables()["QMAKE_EXTRA_UNIX_TARGETS"];
- for(TQStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
- t << *it << " ";
- }
- t << "all clean install distclean mocables uninstall uicables:" << "\n\t"
- << "@echo \"Some of the required modules ("
- << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t"
- << "@echo \"Skipped.\"" << endl << endl;
- writeMakeQmake(t);
- return TRUE;
- }
-
- if (project->variables()["TEMPLATE"].first() == "app" ||
- project->variables()["TEMPLATE"].first() == "lib") {
- writeMakeParts(t);
- return MakefileGenerator::writeMakefile(t);
- } else if(project->variables()["TEMPLATE"].first() == "subdirs") {
- writeSubdirs(t);
- return TRUE;
- }
- return FALSE;
-}
-
-void
-UnixMakefileGenerator::writeExtraVariables(TQTextStream &t)
-{
- bool first = TRUE;
- TQMap &vars = project->variables();
- TQStringList &exports = project->variables()["QMAKE_EXTRA_UNIX_VARIABLES"];
- for(TQMap::Iterator it = vars.begin(); it != vars.end(); ++it) {
- for(TQStringList::Iterator exp_it = exports.begin(); exp_it != exports.end(); ++exp_it) {
- TQRegExp rx((*exp_it), FALSE, TRUE);
- if(rx.exactMatch(it.key())) {
- if(first) {
- t << "\n####### Custom Variables" << endl;
- first = FALSE;
- }
- t << "EXPORT_" << it.key() << " = " << it.data().join(" ") << endl;
- }
- }
- }
- if(!first)
- t << endl;
-}
-
-void
-UnixMakefileGenerator::writeMakeParts(TQTextStream &t)
-{
- TQString deps = fileFixify(Option::output.name()), target_deps, prl;
- bool do_incremental = (project->isActiveConfig("incremental") &&
- !project->variables()["QMAKE_INCREMENTAL"].isEmpty() &&
- (!project->variables()["QMAKE_APP_FLAG"].isEmpty() ||
- !project->isActiveConfig("staticlib"))),
- src_incremental=FALSE, moc_incremental=FALSE;
-
- t << "####### Compiler, tools and options" << endl << endl;
- if (varGlue("INCLUDEPATH", " -I", " -I", "").find("$(LOCALBASE)") != -1)
- t << "LOCALBASE?= /usr/local" << endl;
- t << "CC = ";
- if (project->isActiveConfig("thread") &&
- ! project->variables()["QMAKE_CC_THREAD"].isEmpty())
- t << var("QMAKE_CC_THREAD") << endl;
- else
- t << var("QMAKE_CC") << endl;
-
- t << "CXX = ";
- if (project->isActiveConfig("thread") &&
- ! project->variables()["QMAKE_CXX_THREAD"].isEmpty())
- t << var("QMAKE_CXX_THREAD") << endl;
- else
- t << var("QMAKE_CXX") << endl;
-
- t << "LEX = " << var("QMAKE_LEX") << endl;
- t << "YACC = " << var("QMAKE_YACC") << endl;
- t << "CFLAGS = " << var("QMAKE_CFLAGS") << " "
- << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " "
- << varGlue("DEFINES","-D"," -D","") << endl;
- t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " "
- << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " "
- << varGlue("DEFINES","-D"," -D","") << endl;
- t << "LEXFLAGS = " << var("QMAKE_LEXFLAGS") << endl;
- t << "YACCFLAGS= " << var("QMAKE_YACCFLAGS") << endl;
- t << "INCPATH = " << "-I" << specdir();
- if(!project->isActiveConfig("no_include_pwd")) {
- TQString pwd = fileFixify(TQDir::currentDirPath());
- if(pwd.isEmpty())
- pwd = ".";
- t << " -I" << pwd;
- }
- t << varGlue("INCLUDEPATH"," -I", " -I", "") << endl;
-
- if(!project->isActiveConfig("staticlib")) {
- t << "LINK = ";
- if (project->isActiveConfig("thread") &&
- ! project->variables()["QMAKE_LINK_THREAD"].isEmpty())
- t << var("QMAKE_LINK_THREAD") << endl;
- else
- t << var("QMAKE_LINK") << endl;
-
- t << "LFLAGS = " << var("QMAKE_LFLAGS") << endl;
- t << "LIBS = " << "$(SUBLIBS) " << var("QMAKE_LIBDIR_FLAGS") << " " << var("QMAKE_LIBS") << endl;
- }
-
- t << "AR = " << var("QMAKE_AR") << endl;
- t << "RANLIB = " << var("QMAKE_RANLIB") << endl;
- t << "MOC = " << var("QMAKE_MOC") << endl;
- t << "TQUIC = " << var("QMAKE_UIC") << endl;
- t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("tqmake") : var("QMAKE_QMAKE")) << endl;
- t << "TAR = " << var("QMAKE_TAR") << endl;
- t << "GZIP = " << var("QMAKE_GZIP") << endl;
- if(project->isActiveConfig("compile_libtool"))
- t << "LIBTOOL = " << var("QMAKE_LIBTOOL") << endl;
- t << "COPY = " << var("QMAKE_COPY") << endl;
- t << "COPY_FILE= " << var("QMAKE_COPY_FILE") << endl;
- t << "COPY_DIR = " << var("QMAKE_COPY_DIR") << endl;
- t << "INSTALL_FILE= " << var("QMAKE_INSTALL_FILE") << endl;
- t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl;
-
- t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl;
- t << "SYMLINK = " << var("QMAKE_SYMBOLIC_LINK") << endl;
- t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl;
- t << "MOVE = " << var("QMAKE_MOVE") << endl;
- t << "CHK_DIR_EXISTS= " << var("QMAKE_CHK_DIR_EXISTS") << endl;
- t << "MKDIR = " << var("QMAKE_MKDIR") << endl;
- t << endl;
-
- t << "####### Output directory" << endl << endl;
- if (! project->variables()["OBJECTS_DIR"].isEmpty())
- t << "OBJECTS_DIR = " << var("OBJECTS_DIR") << endl;
- else
- t << "OBJECTS_DIR = ./" << endl;
- t << endl;
-
- /* files */
- t << "####### Files" << endl << endl;
- t << "HEADERS = " << varList("HEADERS") << endl;
- t << "SOURCES = " << varList("SOURCES") << endl;
- if(do_incremental) {
- TQStringList &objs = project->variables()["OBJECTS"], &incrs = project->variables()["QMAKE_INCREMENTAL"], incrs_out;
- t << "OBJECTS = ";
- for(TQStringList::Iterator objit = objs.begin(); objit != objs.end(); ++objit) {
- bool increment = FALSE;
- for(TQStringList::Iterator incrit = incrs.begin(); incrit != incrs.end(); ++incrit) {
- if((*objit).find(TQRegExp((*incrit), TRUE, TRUE)) != -1) {
- increment = TRUE;
- incrs_out.append((*objit));
- break;
- }
- }
- if(!increment)
- t << "\\\n\t\t" << (*objit);
- }
- if(incrs_out.count() == objs.count()) { //we just switched places, no real incrementals to be done!
- t << incrs_out.join(" \\\n\t\t") << endl;
- } else if(!incrs_out.count()) {
- t << endl;
- } else {
- src_incremental = TRUE;
- t << endl;
- t << "INCREMENTAL_OBJECTS = " << incrs_out.join(" \\\n\t\t") << endl;
- }
- } else {
- t << "OBJECTS = " << varList("OBJECTS") << endl;
- }
- t << "FORMS = " << varList("FORMS") << endl;
- t << "UICDECLS = " << varList("UICDECLS") << endl;
- t << "UICIMPLS = " << varList("UICIMPLS") << endl;
- TQString srcMoc = varList("SRCMOC"), objMoc = varList("OBJMOC");
- t << "SRCMOC = " << srcMoc << endl;
- if(do_incremental) {
- TQStringList &objs = project->variables()["OBJMOC"],
- &incrs = project->variables()["QMAKE_INCREMENTAL"], incrs_out;
- t << "OBJMOC = ";
- for(TQStringList::Iterator objit = objs.begin(); objit != objs.end(); ++objit) {
- bool increment = FALSE;
- for(TQStringList::Iterator incrit = incrs.begin(); incrit != incrs.end(); ++incrit) {
- if((*objit).find(TQRegExp((*incrit), TRUE, TRUE)) != -1) {
- increment = TRUE;
- incrs_out.append((*objit));
- break;
- }
- }
- if(!increment)
- t << "\\\n\t\t" << (*objit);
- }
- if(incrs_out.count() == objs.count()) { //we just switched places, no real incrementals to be done!
- t << incrs_out.join(" \\\n\t\t") << endl;
- } else if(!incrs_out.count()) {
- t << endl;
- } else {
- moc_incremental = TRUE;
- t << endl;
- t << "INCREMENTAL_OBJMOC = " << incrs_out.join(" \\\n\t\t") << endl;
- }
- } else {
- t << "OBJMOC = " << objMoc << endl;
- }
- if(do_incremental && !moc_incremental && !src_incremental)
- do_incremental = FALSE;
- if(!project->isEmpty("QMAKE_EXTRA_UNIX_COMPILERS")) {
- t << "OBJCOMP = " << varList("OBJCOMP") << endl;
- target_deps += " $(OBJCOMP)";
-
- TQStringList &comps = project->variables()["QMAKE_EXTRA_UNIX_COMPILERS"];
- for(TQStringList::Iterator compit = comps.begin(); compit != comps.end(); ++compit) {
- TQStringList &vars = project->variables()[(*compit) + ".variables"];
- for(TQStringList::Iterator varit = vars.begin(); varit != vars.end(); ++varit) {
- TQStringList vals = project->variables()[(*varit)];
- if(!vals.isEmpty())
- t << "QMAKE_COMP_" << (*varit) << " = " << valList(vals) << endl;
- }
- }
- }
- t << "DIST = " << valList(fileFixify(project->variables()["DISTFILES"])) << endl;
- t << "QMAKE_TARGET = " << var("QMAKE_ORIG_TARGET") << endl;
- t << "DESTDIR = " << var("DESTDIR") << endl;
- if(project->isActiveConfig("compile_libtool"))
- t << "TARGETL = " << var("TARGET_la") << endl;
- t << "TARGET = " << var("TARGET") << endl;
- if(project->isActiveConfig("plugin") ) {
- t << "TARGETD = " << var("TARGET") << endl;
- } else if (!project->isActiveConfig("staticlib") && project->variables()["QMAKE_APP_FLAG"].isEmpty()) {
- t << "TARGETA = " << var("TARGETA") << endl;
- if (project->isEmpty("QMAKE_HPUX_SHLIB")) {
- if (!project->isEmpty("QMAKE_OPENBSD_SHLIBS")) {
- t << "LIB"+var("OBSD_TARGET_NAME")+"_VERSION = " << var("OBSD_TARGET_VERSION") << endl;
- t << "TARGETD = " << var("TARGET_x.y") << endl;
- } else {
- t << "TARGETD = " << var("TARGET_x.y.z") << endl;
- t << "TARGET0 = " << var("TARGET_") << endl;
- t << "TARGET1 = " << var("TARGET_x") << endl;
- t << "TARGET2 = " << var("TARGET_x.y") << endl;
- }
- } else {
- t << "TARGETD = " << var("TARGET_x") << endl;
- t << "TARGET0 = " << var("TARGET_") << endl;
- }
- }
- writeExtraVariables(t);
- t << endl;
-
- // blasted includes
- TQStringList &qeui = project->variables()["QMAKE_EXTRA_UNIX_INCLUDES"];
- TQStringList::Iterator it;
- for( it = qeui.begin(); it != qeui.end(); ++it)
- t << "include " << (*it) << endl;
-
- /* rules */
- t << "first: all" << endl;
- t << "####### Implicit rules" << endl << endl;
- t << ".SUFFIXES: .c " << Option::obj_ext;
- TQStringList::Iterator cppit;
- for(cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit)
- t << " " << (*cppit);
- t << endl << endl;
- for(cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit)
- t << (*cppit) << Option::obj_ext << ":\n\t" << var("QMAKE_RUN_CXX_IMP") << endl << endl;
- t << ".c" << Option::obj_ext << ":\n\t" << var("QMAKE_RUN_CC_IMP") << endl << endl;
-
- if(include_deps) {
- TQString cmd=var("QMAKE_CFLAGS_DEPS") + " ";
- cmd += varGlue("DEFINES","-D"," -D","") + varGlue("PRL_EXPORT_DEFINES"," -D"," -D","");
- if(!project->isEmpty("QMAKE_ABSOLUTE_SOURCE_PATH"))
- cmd += " -I" + project->first("QMAKE_ABSOLUTE_SOURCE_PATH") + " ";
- cmd += " $(INCPATH) " + varGlue("DEPENDPATH", "-I", " -I", "");
- TQString odir;
- if(!project->variables()["OBJECTS_DIR"].isEmpty())
- odir = project->first("OBJECTS_DIR");
- t << "###### Dependencies" << endl << endl;
- t << odir << ".deps/%.d: %.cpp\n\t"
- << "@echo Creating depend for $<" << "\n\t"
- << "@test -d $(@D) || mkdir -p $(@D)" << "\n\t"
- << "@$(CXX) " << cmd << " $< | sed \"s,^\\($(*F).o\\):," << odir << "\\1:,g\" >$@" << endl << endl;
-
- t << odir << ".deps/%.d: %.c\n\t"
- << "@echo Creating depend for $<" << "\n\t"
- << "@test -d $(@D) || mkdir -p $(@D)" << "\n\t"
- << "@$(CC) " << cmd << " $< | sed \"s,^\\($(*F).o\\):," << odir << "\\1:,g\" >$@" << endl << endl;
-
- TQString src[] = { "SOURCES", "UICIMPLS", "SRCMOC", TQString::null };
- for(int x = 0; !src[x].isNull(); x++) {
- TQStringList &l = project->variables()[src[x]];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- if(!(*it).isEmpty()) {
- TQString d_file;
- if((*it).endsWith(".c")) {
- d_file = (*it).left((*it).length() - 2);
- } else {
- for(TQStringList::Iterator cppit = Option::cpp_ext.begin();
- cppit != Option::cpp_ext.end(); ++cppit) {
- if((*it).endsWith((*cppit))) {
- d_file = (*it).left((*it).length() - (*cppit).length());
- break;
- }
- }
- }
- if(!d_file.isEmpty()) {
- d_file = odir + ".deps/" + d_file + ".d";
- TQStringList deps = findDependencies((*it)).grep(TQRegExp(Option::cpp_moc_ext + "$"));
- if(!deps.isEmpty())
- t << d_file << ": " << deps.join(" ") << endl;
- t << var("QMAKE_CFLAGS_USE_PRECOMPILE") << " " << d_file << endl;
- }
- }
- }
- }
- }
-
- t << "####### Build rules" << endl << endl;
- t << "$(OBJECTS): $(UICDECLS)" << endl << endl;
- if(!project->variables()["SUBLIBS"].isEmpty()) {
- TQString libdir = "tmp/";
- if(!project->isEmpty("SUBLIBS_DIR"))
- libdir = project->first("SUBLIBS_DIR");
- t << "SUBLIBS= ";
- TQStringList &l = project->variables()["SUBLIBS"];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it)
- t << libdir << "lib" << (*it) << ".a ";
- t << endl << endl;
- }
- if(project->isActiveConfig("depend_prl") && !project->isEmpty("QMAKE_PRL_INTERNAL_FILES")) {
- TQStringList &l = project->variables()["QMAKE_PRL_INTERNAL_FILES"];
- TQStringList::Iterator it;
- for(it = l.begin(); it != l.end(); ++it) {
- TQMakeMetaInfo libinfo;
- if(libinfo.readLib((*it)) && !libinfo.isEmpty("QMAKE_PRL_BUILD_DIR")) {
- TQString dir;
- int slsh = (*it).findRev(Option::dir_sep);
- if(slsh != -1)
- dir = (*it).left(slsh + 1);
- TQString targ = dir + libinfo.first("QMAKE_PRL_TARGET");
- deps += " " + targ;
- t << targ << ":" << "\n\t"
- << "@echo \"Creating '" << targ << "'\"" << "\n\t"
- << "(cd " << libinfo.first("QMAKE_PRL_BUILD_DIR") << ";"
- << "$(MAKE) )" << endl;
- }
- }
- }
- if(!project->variables()["QMAKE_APP_FLAG"].isEmpty()) {
- TQString destdir = project->first("DESTDIR");
- if(do_incremental) {
- //incremental target
- TQString incr_target = var("TARGET") + "_incremental";
- if(incr_target.find(Option::dir_sep) != -1)
- incr_target = incr_target.right(incr_target.length() -
- (incr_target.findRev(Option::dir_sep) + 1));
- TQString incr_deps, incr_objs;
- if(project->first("QMAKE_INCREMENTAL_STYLE") == "ld") {
- TQString incr_target_dir = var("OBJECTS_DIR") + incr_target + Option::obj_ext;
- //actual target
- t << incr_target_dir << ": $(OBJECTS)" << "\n\t"
- << "ld -r -o "<< incr_target_dir << " $(OBJECTS)" << endl;
- //communicated below
- deps.prepend(incr_target_dir + " ");
- incr_deps = "$(UICDECLS) $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC) $(OBJMOC)";
- if(!incr_objs.isEmpty())
- incr_objs += " ";
- incr_objs += incr_target_dir;
- } else {
- //actual target
- TQString incr_target_dir = var("DESTDIR") + "lib" + incr_target + "." +
- project->variables()["QMAKE_EXTENSION_SHLIB"].first();
- TQString incr_lflags = var("QMAKE_LFLAGS_SHLIB") + " ";
- if(project->isActiveConfig("debug"))
- incr_lflags += var("QMAKE_LFLAGS_DEBUG");
- else
- incr_lflags += var("QMAKE_LFLAGS_RELEASE");
- t << incr_target_dir << ": $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)" << "\n\t";
- if(!destdir.isEmpty())
- t << "\n\t" << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- t << "$(LINK) " << incr_lflags << " -o "<< incr_target_dir <<
- " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)" << endl;
- //communicated below
- if(!destdir.isEmpty()) {
- if(!incr_objs.isEmpty())
- incr_objs += " ";
- incr_objs += "-L" + destdir;
- } else {
- if(!incr_objs.isEmpty())
- incr_objs += " ";
- incr_objs += "-L" + TQDir::currentDirPath();
- }
- if(!incr_objs.isEmpty())
- incr_objs += " ";
- incr_objs += " -l" + incr_target;
- deps.prepend(incr_target_dir + " ");
- incr_deps = "$(UICDECLS) $(OBJECTS) $(OBJMOC)";
- }
- t << "all: " << deps << " " << varGlue("ALL_DEPS",""," "," ") << "$(TARGET)"
- << endl << endl;
-
- //real target
- t << var("TARGET") << ": " << var("PRE_TARGETDEPS") << " " << incr_deps << " " << target_deps
- << " " << var("POST_TARGETDEPS") << "\n\t";
- if(!destdir.isEmpty())
- t << "\n\t" << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- if(!project->isEmpty("QMAKE_PRE_LINK"))
- t << var("QMAKE_PRE_LINK") << "\n\t";
- t << "$(LINK) $(LFLAGS) -o $(TARGET) " << incr_deps << " " << incr_objs << " $(OBJCOMP) $(LIBS)";
- if(!project->isEmpty("QMAKE_POST_LINK"))
- t << "\n\t" << var("QMAKE_POST_LINK");
- t << endl << endl;
- } else {
- t << "all: " << deps << " " << varGlue("ALL_DEPS",""," "," ") << "$(TARGET)"
- << endl << endl;
-
- t << "$(TARGET): " << var("PRE_TARGETDEPS") << " $(UICDECLS) $(OBJECTS) $(OBJMOC) "
- << target_deps << " " << var("POST_TARGETDEPS") << "\n\t";
- if(!destdir.isEmpty())
- t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- if(!project->isEmpty("QMAKE_PRE_LINK"))
- t << var("QMAKE_PRE_LINK") << "\n\t";
- t << "$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS)";
- if(!project->isEmpty("QMAKE_POST_LINK"))
- t << "\n\t" << var("QMAKE_POST_LINK");
- t << endl << endl;
- }
- } else if(!project->isActiveConfig("staticlib")) {
- TQString destdir = project->first("DESTDIR"), incr_deps;
- if(do_incremental) {
- TQString s_ext = project->variables()["QMAKE_EXTENSION_SHLIB"].first();
- TQString incr_target = var("QMAKE_ORIG_TARGET").replace(
- TQRegExp("\\." + s_ext), "").replace(TQRegExp("^lib"), "") + "_incremental";
- if(incr_target.find(Option::dir_sep) != -1)
- incr_target = incr_target.right(incr_target.length() -
- (incr_target.findRev(Option::dir_sep) + 1));
-
- if(project->first("QMAKE_INCREMENTAL_STYLE") == "ld") {
- TQString incr_target_dir = var("OBJECTS_DIR") + incr_target + Option::obj_ext;
- //actual target
- const TQString link_deps = "$(UICDECLS) $(OBJECTS) $(OBJMOC)";
- t << incr_target_dir << ": " << link_deps << "\n\t"
- << "ld -r -o " << incr_target_dir << " " << link_deps << endl;
- //communicated below
- TQStringList &cmd = project->variables()["QMAKE_LINK_SHLIB_CMD"];
- cmd.first().replace("$(OBJECTS) $(OBJMOC)",
- "$(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)"); //ick
- cmd.append(incr_target_dir);
- deps.prepend(incr_target_dir + " ");
- incr_deps = "$(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)";
- } else {
- //actual target
- TQString incr_target_dir = var("DESTDIR") + "lib" + incr_target + "." + s_ext;
- TQString incr_lflags = var("QMAKE_LFLAGS_SHLIB") + " ";
- if(!project->isEmpty("QMAKE_LFLAGS_INCREMENTAL"))
- incr_lflags += var("QMAKE_LFLAGS_INCREMENTAL") + " ";
- if(project->isActiveConfig("debug"))
- incr_lflags += var("QMAKE_LFLAGS_DEBUG");
- else
- incr_lflags += var("QMAKE_LFLAGS_RELEASE");
- t << incr_target_dir << ": $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)" << "\n\t";
- if(!destdir.isEmpty())
- t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- t << "$(LINK) " << incr_lflags << " -o "<< incr_target_dir <<
- " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)" << endl;
- //communicated below
- TQStringList &cmd = project->variables()["QMAKE_LINK_SHLIB_CMD"];
- if(!destdir.isEmpty())
- cmd.append(" -L" + destdir);
- cmd.append(" -l" + incr_target);
- deps.prepend(incr_target_dir + " ");
- incr_deps = "$(UICDECLS) $(OBJECTS) $(OBJMOC)";
- }
-
- t << "all: " << " " << deps << " " << varGlue("ALL_DEPS",""," ","")
- << " " << var("DESTDIR_TARGET") << endl << endl;
-
- //real target
- t << var("DESTDIR_TARGET") << ": " << var("PRE_TARGETDEPS") << " "
- << incr_deps << " $(SUBLIBS) " << target_deps << " " << var("POST_TARGETDEPS");
- } else {
- t << "all: " << deps << " " << varGlue("ALL_DEPS",""," ","") << " " <<
- var("DESTDIR_TARGET") << endl << endl;
- t << var("DESTDIR_TARGET") << ": " << var("PRE_TARGETDEPS")
- << " $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS) $(OBJCOMP) " << target_deps
- << " " << var("POST_TARGETDEPS");
- }
- if(!destdir.isEmpty())
- t << "\n\t" << "test -d " << destdir << " || mkdir -p " << destdir;
- if(!project->isEmpty("QMAKE_PRE_LINK"))
- t << "\n\t" << var("QMAKE_PRE_LINK");
-
- if(project->isActiveConfig("compile_libtool")) {
- t << "\n\t"
- << var("QMAKE_LINK_SHLIB_CMD");
- } else if(project->isActiveConfig("plugin")) {
- t << "\n\t"
- << "-$(DEL_FILE) $(TARGET)" << "\n\t"
- << var("QMAKE_LINK_SHLIB_CMD");
- if(!destdir.isEmpty())
- t << "\n\t"
- << "-$(MOVE) $(TARGET) " << var("DESTDIR");
- if(!project->isEmpty("QMAKE_POST_LINK"))
- t << "\n\t" << var("QMAKE_POST_LINK") << "\n\t";
- t << endl << endl;
- } else if(project->isEmpty("QMAKE_HPUX_SHLIB")) {
- t << "\n\t"
- << "-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)" << "\n\t"
- << var("QMAKE_LINK_SHLIB_CMD") << "\n\t";
- t << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET0)") << "\n\t"
- << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET1)") << "\n\t"
- << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET2)");
- if(!destdir.isEmpty())
- t << "\n\t"
- << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET)\n\t"
- << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET0)\n\t"
- << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET1)\n\t"
- << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET2)\n\t"
- << "-$(MOVE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) " << var("DESTDIR");
- if(!project->isEmpty("QMAKE_POST_LINK"))
- t << "\n\t" << var("QMAKE_POST_LINK");
- t << endl << endl;
- } else {
- t << "\n\t"
- << "-$(DEL_FILE) $(TARGET) $(TARGET0)" << "\n\t"
- << var("QMAKE_LINK_SHLIB_CMD") << "\n\t";
- t << varGlue("QMAKE_LN_SHLIB",""," "," $(TARGET) $(TARGET0)");
- if(!destdir.isEmpty())
- t << "\n\t"
- << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET)\n\t"
- << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET0)\n\t"
- << "-$(MOVE) $(TARGET) $(TARGET0) " << var("DESTDIR");
- if(!project->isEmpty("QMAKE_POST_LINK"))
- t << "\n\t" << var("QMAKE_POST_LINK");
- t << endl << endl;
- }
- t << endl << endl;
-
- if (! project->isActiveConfig("plugin")) {
- t << "staticlib: $(TARGETA)" << endl << endl;
- t << "$(TARGETA): " << var("PRE_TARGETDEPS") << " $(UICDECLS) $(OBJECTS) $(OBJMOC) $(OBJCOMP)";
- if(do_incremental)
- t << " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)";
- t << var("POST_TARGETDEPS") << "\n\t"
- << "-$(DEL_FILE) $(TARGETA) " << "\n\t"
- << var("QMAKE_AR_CMD");
- if(do_incremental)
- t << " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)";
- if(!project->isEmpty("QMAKE_RANLIB"))
- t << "\n\t" << "$(RANLIB) $(TARGETA)";
- t << endl << endl;
- }
- } else {
- t << "all: " << deps << " " << varGlue("ALL_DEPS",""," "," ") << var("DESTDIR") << "$(TARGET) "
- << varGlue("QMAKE_AR_SUBLIBS", var("DESTDIR"), " " + var("DESTDIR"), "") << "\n\n"
- << "staticlib: " << var("DESTDIR") << "$(TARGET)" << "\n\n";
- if(project->isEmpty("QMAKE_AR_SUBLIBS")) {
- t << var("DESTDIR") << "$(TARGET): " << var("PRE_TARGETDEPS")
- << " $(UICDECLS) $(OBJECTS) $(OBJMOC) $(OBJCOMP) " << var("POST_TARGETDEPS") << "\n\t";
- if(!project->isEmpty("DESTDIR")) {
- TQString destdir = project->first("DESTDIR");
- t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- }
- t << "-$(DEL_FILE) $(TARGET)" << "\n\t"
- << var("QMAKE_AR_CMD") << "\n";
- if(!project->isEmpty("QMAKE_POST_LINK"))
- t << "\t" << var("QMAKE_POST_LINK") << "\n";
- if(!project->isEmpty("QMAKE_RANLIB"))
- t << "\t" << "$(RANLIB) $(TARGET)" << "\n";
- if(!project->isEmpty("DESTDIR"))
- t << "\t" << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET)" << "\n"
- << "\t" << "-$(MOVE) $(TARGET) " << var("DESTDIR") << "\n";
- } else {
- int max_files = project->first("QMAKE_MAX_FILES_PER_AR").toInt();
- TQStringList objs = project->variables()["OBJECTS"] + project->variables()["OBJMOC"] +
- project->variables()["OBJCOMP"],
- libs = project->variables()["QMAKE_AR_SUBLIBS"];
- libs.prepend("$(TARGET)");
- for(TQStringList::Iterator libit = libs.begin(), objit = objs.begin();
- libit != libs.end(); ++libit) {
- TQStringList build;
- for(int cnt = 0; cnt < max_files && objit != objs.end(); ++objit, cnt++)
- build << (*objit);
- TQString ar;
- if((*libit) == "$(TARGET)") {
- t << var("DESTDIR") << "$(TARGET): " << var("PRE_TARGETDEPS")
- << " $(UICDECLS) " << var("POST_TARGETDEPS") << valList(build) << "\n\t";
- ar = project->variables()["QMAKE_AR_CMD"].first();
- ar = ar.replace("$(OBJMOC)", "").replace("$(OBJECTS)",
- build.join(" "));
- } else {
- t << (*libit) << ": " << valList(build) << "\n\t";
- ar = "$(AR) " + (*libit) + " " + build.join(" ");
- }
- if(!project->isEmpty("DESTDIR")) {
- TQString destdir = project->first("DESTDIR");
- t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- }
- t << "-$(DEL_FILE) " << (*libit) << "\n\t"
- << ar << "\n";
- if(!project->isEmpty("QMAKE_POST_LINK"))
- t << "\t" << var("QMAKE_POST_LINK") << "\n";
- if(!project->isEmpty("QMAKE_RANLIB"))
- t << "\t" << "$(RANLIB) " << (*libit) << "\n";
- if(!project->isEmpty("DESTDIR"))
- t << "\t" << "-$(DEL_FILE) " << var("DESTDIR") << (*libit) << "\n"
- << "\t" << "-$(MOVE) " << (*libit) << " " << var("DESTDIR") << "\n";
- }
- }
- t << endl << endl;
- }
-
- t << "mocables: $(SRCMOC)" << endl
- << "uicables: $(UICDECLS) $(UICIMPLS)" << endl << endl;
-
- if(!project->isActiveConfig("no_mocdepend")) {
- //this is an implicity depend on moc, so it will be built if necesary, however
- //moc itself shouldn't have this dependency - this is a little kludgy but it is
- //better than the alternative for now.
- TQString moc = project->first("QMAKE_MOC"), target = project->first("TARGET"),
- moc_dir = "$(TQTDIR)/src/tqmoc";
- if(!project->isEmpty("QMAKE_MOC_SRC"))
- moc_dir = project->first("QMAKE_MOC_SRC");
- fixEnvVariables(target);
- fixEnvVariables(moc);
- if(target != moc)
- t << "$(MOC): \n\t"
- << "( cd " << moc_dir << " && $(MAKE) )" << endl << endl;
- }
-
- writeMakeQmake(t);
- if(project->isEmpty("QMAKE_FAILED_REQUIREMENTS") && !project->isActiveConfig("no_autoqmake")) {
- TQString meta_files;
- if(project->isActiveConfig("create_libtool") && project->first("TEMPLATE") == "lib" &&
- !project->isActiveConfig("compile_libtool")) { //libtool
- if(!meta_files.isEmpty())
- meta_files += " ";
- meta_files += libtoolFileName();
- }
- if(project->isActiveConfig("create_pc") && project->first("TEMPLATE") == "lib") { //pkg-config
- if(!meta_files.isEmpty())
- meta_files += " ";
- meta_files += pkgConfigFileName();
- }
- if(!meta_files.isEmpty()) {
- TQStringList files = fileFixify(Option::mkfile::project_files);
- t << meta_files << ": " << "\n\t"
- << "@$(QMAKE) -prl " << buildArgs() << " " << files.join(" ") << endl;
- }
- }
-
- if(!project->first("QMAKE_PKGINFO").isEmpty()) {
- TQString pkginfo = project->first("QMAKE_PKGINFO");
- TQString destdir = project->first("DESTDIR");
- t << pkginfo << ": " << "\n\t";
- if(!destdir.isEmpty())
- t << "@test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- t << "@$(DEL_FILE) " << pkginfo << "\n\t"
- << "@echo \"APPL????\" >" << pkginfo << endl;
- }
- if(!project->first("QMAKE_INFO_PLIST").isEmpty()) {
- TQString info_plist = project->first("QMAKE_INFO_PLIST"),
- info_plist_out = project->first("QMAKE_INFO_PLIST_OUT");
- TQString destdir = project->first("DESTDIR");
- t << info_plist_out << ": " << "\n\t";
- if(!destdir.isEmpty())
- t << "@test -d " << destdir << " || mkdir -p " << destdir << "\n\t";
- t << "@$(DEL_FILE) " << info_plist_out << "\n\t"
- << "@sed -e \"s,@ICON@,application.icns,g\" -e \"s,@EXECUTABLE@," << var("QMAKE_ORIG_TARGET")
- << ",g\" \"" << info_plist << "\" >\"" << info_plist_out << "\"" << endl;
- if(!project->first("RC_FILE").isEmpty()) {
- TQString dir = destdir + "../Resources/";
- t << dir << "application.icns: " << fileFixify(var("RC_FILE")) << "\n\t"
- << "@test -d " << dir << " || mkdir -p " << dir << "\n\t"
- << "@$(DEL_FILE) " << dir << "application.icns" << "\n\t"
- << "@$(COPY_FILE) " << fileFixify(var("RC_FILE"))
- << " " << dir << "application.icns" << endl;
- }
- }
-
- TQString ddir = project->isEmpty("QMAKE_DISTDIR") ? project->first("QMAKE_ORIG_TARGET") :
- project->first("QMAKE_DISTDIR");
- TQString ddir_c = fileFixify((project->isEmpty("OBJECTS_DIR") ? TQString(".tmp/") :
- project->first("OBJECTS_DIR")) + ddir);
- t << "dist: " << "\n\t"
- << "@mkdir -p " << ddir_c << " && "
- << "$(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) " << ddir_c << Option::dir_sep << " && ";
- if(!project->isEmpty("TRANSLATIONS"))
- t << "$(COPY_FILE) --parents " << var("TRANSLATIONS") << " " << ddir_c << Option::dir_sep << " && ";
- if(!project->isEmpty("IMAGES"))
- t << "$(COPY_FILE) --parents " << var("IMAGES") << " " << ddir_c << Option::dir_sep << " && ";
- if(!project->isEmpty("FORMS")) {
- TQStringList &forms = project->variables()["FORMS"], ui_headers;
- for(TQStringList::Iterator formit = forms.begin(); formit != forms.end(); ++formit) {
- TQString ui_h = fileFixify((*formit) + Option::h_ext.first());
- if(TQFile::exists(ui_h) )
- ui_headers << ui_h;
- }
- if(!ui_headers.isEmpty())
- t << "$(COPY_FILE) --parents " << val(ui_headers) << " " << ddir_c << Option::dir_sep << " && ";
- }
- t << "( cd `dirname " << ddir_c << "` && "
- << "$(TAR) " << var("QMAKE_ORIG_TARGET") << ".tar " << ddir << " && "
- << "$(GZIP) " << var("QMAKE_ORIG_TARGET") << ".tar ) && "
- << "$(MOVE) `dirname " << ddir_c << "`" << Option::dir_sep << var("QMAKE_ORIG_TARGET") << ".tar.gz . && "
- << "$(DEL_FILE) -r " << ddir_c
- << endl << endl;
-
- TQString clean_targets;
- t << "mocclean:" << "\n";
- if(tqmocAware()) {
- if(!objMoc.isEmpty() || !srcMoc.isEmpty() || moc_incremental) {
- if(!objMoc.isEmpty())
- t << "\t-$(DEL_FILE) $(OBJMOC)" << '\n';
- if(!srcMoc.isEmpty())
- t << "\t-$(DEL_FILE) $(SRCMOC)" << '\n';
- if(moc_incremental)
- t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJMOC)" << '\n';
- clean_targets += " mocclean";
- }
- t << endl;
- }
- t << "uiclean:" << "\n";
- if (!var("UICIMPLS").isEmpty() || !var("UICDECLS").isEmpty()) {
- t << "\t-$(DEL_FILE) $(UICIMPLS) $(UICDECLS)" << "\n";
- clean_targets += " uiclean";
- }
- t << endl;
-
- t << "yaccclean:" << "\n";
- if(!var("YACCSOURCES").isEmpty()) {
- TQStringList clean, &l = project->variables()["YACCSOURCES"];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQFileInfo fi((*it));
- TQString dir;
- if(fi.dirPath() != ".")
- dir = fi.dirPath() + Option::dir_sep;
- dir = fileFixify(dir, TQDir::currentDirPath(), Option::output_dir);
- if(!dir.isEmpty() && dir.right(Option::dir_sep.length()) != Option::dir_sep)
- dir += Option::dir_sep;
- clean << ( dir + fi.baseName(TRUE) + Option::yacc_mod + Option::cpp_ext.first() );
- clean << ( dir + fi.baseName(TRUE) + Option::yacc_mod + Option::h_ext.first() );
- }
- if(!clean.isEmpty()) {
- t << "\t-$(DEL_FILE) " << clean.join(" ") << "\n";
- clean_targets += " yaccclean";
- }
- }
-
- t << "lexclean:" << "\n";
- if(!var("LEXSOURCES").isEmpty()) {
- TQStringList clean, &l = project->variables()["LEXSOURCES"];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQFileInfo fi((*it));
- TQString dir;
- if(fi.dirPath() != ".")
- dir = fi.dirPath() + Option::dir_sep;
- dir = fileFixify(dir, TQDir::currentDirPath(), Option::output_dir);
- if(!dir.isEmpty() && dir.right(Option::dir_sep.length()) != Option::dir_sep)
- dir += Option::dir_sep;
- clean << ( dir + fi.baseName(TRUE) + Option::lex_mod + Option::cpp_ext.first() );
- }
- if(!clean.isEmpty()) {
- t << "\t-$(DEL_FILE) " << clean.join(" ") << "\n";
- clean_targets += " lexclean";
- }
- }
-
- if(do_incremental) {
- t << "incrclean:" << "\n";
- if(src_incremental)
- t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJECTS)" << "\n";
- if(moc_incremental)
- t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJMOC)" << '\n';
- t << endl;
- }
-
- t << "clean:" << clean_targets << "\n\t";
- if(!project->isEmpty("OBJECTS")) {
- if(project->isActiveConfig("compile_libtool"))
- t << "-$(LIBTOOL) --mode=clean $(DEL_FILE) $(OBJECTS)" << "\n\t";
- else
- t << "-$(DEL_FILE) $(OBJECTS)" << "\n\t";
- }
- if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) {
- TQString header_prefix = project->first("QMAKE_PRECOMP_PREFIX");
- TQString precomph_out_dir = project->first("QMAKE_ORIG_TARGET") + ".gch" + Option::dir_sep;
- t << "-$(DEL_FILE) " << precomph_out_dir << (header_prefix + "c ")
- << precomph_out_dir << header_prefix << "c++" << "\n\t";
- }
- if(!project->isEmpty("IMAGES"))
- t << varGlue("QMAKE_IMAGE_COLLECTION", "\t-$(DEL_FILE) ", " ", "") << "\n\t";
- if(src_incremental)
- t << "-$(DEL_FILE) $(INCREMENTAL_OBJECTS)" << "\n\t";
- t << varGlue("QMAKE_CLEAN","-$(DEL_FILE) "," ","\n\t")
- << "-$(DEL_FILE) *~ core *.core" << "\n"
- << varGlue("CLEAN_FILES","\t-$(DEL_FILE) "," ","") << endl << endl;
- t << "####### Sub-libraries" << endl << endl;
- if ( !project->variables()["SUBLIBS"].isEmpty() ) {
- TQString libdir = "tmp/";
- if(!project->isEmpty("SUBLIBS_DIR"))
- libdir = project->first("SUBLIBS_DIR");
- TQStringList &l = project->variables()["SUBLIBS"];
- for(it = l.begin(); it != l.end(); ++it)
- t << libdir << "lib" << (*it) << ".a" << ":\n\t"
- << var(TQString("MAKELIB") + (*it)) << endl << endl;
- }
-
- TQString destdir = project->first("DESTDIR");
- if(!destdir.isEmpty() && destdir.right(1) != Option::dir_sep)
- destdir += Option::dir_sep;
- t << "distclean: " << "clean\n";
- if(project->first("TEMPLATE") == "app" &&
- project->isActiveConfig("resource_fork") && !project->isActiveConfig("console"))
- t << "\t-$(DEL_FILE) -r " << destdir.section(Option::dir_sep, 0, -4) << "\n";
- else if(project->isActiveConfig("compile_libtool"))
- t << "\t-$(LIBTOOL) --mode=clean $(DEL_FILE) " << "$(TARGET)" << "\n";
- else
- t << "\t-$(DEL_FILE) " << destdir << "$(TARGET)" << " " << "$(TARGET)" << "\n";
- if(!project->isActiveConfig("staticlib") && project->variables()["QMAKE_APP_FLAG"].isEmpty() &&
- !project->isActiveConfig("plugin") && !project->isActiveConfig("compile_libtool"))
- t << "\t-$(DEL_FILE) " << destdir << "$(TARGET0) " << destdir << "$(TARGET1) "
- << destdir << "$(TARGET2) $(TARGETA)" << "\n";
- t << endl << endl;
-
- if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER") ) {
- TQString precomph = fileFixify(project->first("PRECOMPILED_HEADER"));
- t << "###### Prefix headers" << endl;
- TQString comps[] = { "C", "CXX", TQString::null };
- for(int i = 0; !comps[i].isNull(); i++) {
- TQString flags = var("QMAKE_" + comps[i] + "FLAGS_PRECOMPILE");
- flags += " $(" + comps[i] + "FLAGS)";
-
- TQString header_prefix = project->first("QMAKE_PRECOMP_PREFIX");
- TQString outdir = project->first("QMAKE_ORIG_TARGET") + ".gch" + Option::dir_sep, outfile = outdir;
- TQString compiler;
- if(comps[i] == "C") {
- outfile += header_prefix + "c";
- compiler = "$(CC) ";
- } else {
- outfile += header_prefix + "c++";
- compiler = "$(CXX) ";
- }
- t << outfile << ": " << precomph << " " << findDependencies(precomph).join(" \\\n\t\t")
- << "\n\t" << "test -d " << outdir << " || mkdir -p " << outdir
- << "\n\t" << compiler << flags << " $(INCPATH) " << precomph << " -o " << outfile << endl << endl;
- }
- }
- if(!project->isEmpty("ALLMOC_HEADER")) {
- TQString outdir = project->first("MOC_DIR");
- TQString precomph = fileFixify(project->first("ALLMOC_HEADER"));
- t << "###### Combined headers" << endl << endl
- << outdir << "allmoc.cpp: " << precomph << " "
- << varList("HEADERS_ORIG") << "\n\t"
- << "echo '#include \"" << precomph << "\"' >" << outdir << "allmoc.cpp" << "\n\t"
- << "$(CXX) -E -DQT_MOC_CPP -DTQT_NO_STL $(CXXFLAGS) $(INCPATH) >" << outdir << "allmoc.h "
- << outdir << "allmoc.cpp" << "\n\t"
- << "$(MOC) -o " << outdir << "allmoc.cpp " << outdir << "allmoc.h" << "\n\t"
- << "perl -pi -e 's{#include \"allmoc.h\"}{#define QT_H_CPP\\n#include \""
- << precomph << "\"}' " << outdir << "allmoc.cpp" << "\n\t"
- << "$(DEL_FILE) " << outdir << "allmoc.h" << endl << endl;
- }
-
- // user defined targets
- TQStringList &qut = project->variables()["QMAKE_EXTRA_UNIX_TARGETS"];
- for(it = qut.begin(); it != qut.end(); ++it) {
- TQString targ = var((*it) + ".target"),
- cmd = var((*it) + ".commands"), deps;
- if(targ.isEmpty())
- targ = (*it);
- TQStringList &deplist = project->variables()[(*it) + ".depends"];
- for(TQStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
- TQString dep = var((*dep_it) + ".target");
- if(dep.isEmpty())
- dep = (*dep_it);
- deps += " " + dep;
- }
- if(project->variables()[(*it) + ".CONFIG"].findIndex("phony") != -1)
- deps += TQString(" ") + "FORCE";
- t << targ << ":" << deps << "\n\t"
- << cmd << endl << endl;
- }
- // user defined compilers
- TQStringList &quc = project->variables()["QMAKE_EXTRA_UNIX_COMPILERS"];
- for(it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- TQString tmp_cmd = project->variables()[(*it) + ".commands"].join(" ");
- TQString tmp_dep = project->variables()[(*it) + ".depends"].join(" ");
- TQStringList &vars = project->variables()[(*it) + ".variables"];
- if(tmp_out.isEmpty() || tmp_cmd.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- TQString in = Option::fixPathToTargetOS((*input), FALSE),
- out = tmp_out, cmd = tmp_cmd, deps;
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- cmd.replace("${QMAKE_FILE_BASE}", fi.baseName());
- cmd.replace("${QMAKE_FILE_OUT}", out);
- cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());
- for(TQStringList::Iterator it3 = vars.begin(); it3 != vars.end(); ++it3)
- cmd.replace("$(" + (*it3) + ")", "$(QMAKE_COMP_" + (*it3)+")");
- if(!tmp_dep.isEmpty()) {
- char buff[256];
- TQString dep_cmd = tmp_dep;
- dep_cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(FILE *proc = QT_POPEN(dep_cmd.latin1(), "r")) {
- while(!feof(proc)) {
- int read_in = int(fread(buff, 1, 255, proc));
- if(!read_in)
- break;
- int l = 0;
- for(int i = 0; i < read_in; i++) {
- if(buff[i] == '\n' || buff[i] == ' ') {
- deps += " " + TQCString(buff+l, (i - l) + 1);
- l = i;
- }
- }
- }
- fclose(proc);
- }
- }
- t << out << ": " << in << deps << "\n\t"
- << cmd << endl << endl;
- }
- }
- }
- t <<"FORCE:" << endl << endl;
-}
-
-struct SubDir
-{
- TQString directory, profile, target, makefile;
-};
-
-void
-UnixMakefileGenerator::writeSubdirs(TQTextStream &t, bool direct)
-{
- // blasted includes
- TQStringList &qeui = project->variables()["QMAKE_EXTRA_UNIX_INCLUDES"];
- for(TQStringList::Iterator qeui_it = qeui.begin(); qeui_it != qeui.end(); ++qeui_it)
- t << "include " << (*qeui_it) << endl;
- writeExtraVariables(t);
-
- TQPtrList subdirs;
- {
- TQStringList subdirs_in = project->variables()["SUBDIRS"];
- for(TQStringList::Iterator it = subdirs_in.begin(); it != subdirs_in.end(); ++it) {
- TQString file = (*it);
- fileFixify(file);
- SubDir *sd = new SubDir;
- subdirs.append(sd);
- sd->makefile = "$(MAKEFILE)";
- if((*it).right(4) == ".pro") {
- int slsh = file.findRev(Option::dir_sep);
- if(slsh != -1) {
- sd->directory = file.left(slsh+1);
- sd->profile = file.mid(slsh+1);
- } else {
- sd->profile = file;
- }
- } else {
- if(!file.isEmpty())
- sd->profile = file.section(Option::dir_sep, -1) + ".pro";
- sd->directory = file;
- }
- while(sd->directory.right(1) == Option::dir_sep)
- sd->directory = sd->directory.left(sd->directory.length() - 1);
- if(!sd->profile.isEmpty()) {
- TQString basename = sd->directory;
- int new_slsh = basename.findRev(Option::dir_sep);
- if(new_slsh != -1)
- basename = basename.mid(new_slsh+1);
- if(sd->profile != basename + ".pro")
- sd->makefile += "." + sd->profile.left(sd->profile.length() - 4); //no need for the .pro
- }
- sd->target = "sub-" + (*it);
- sd->target.replace('/', '-');
- sd->target.replace('.', '_');
- }
- }
- TQPtrListIterator it(subdirs);
-
- TQString ofile = Option::output.name();
- if(ofile.findRev(Option::dir_sep) != -1)
- ofile = ofile.right(ofile.length() - ofile.findRev(Option::dir_sep) -1);
- t << "MAKEFILE = " << var("MAKEFILE") << endl;
- t << "QMAKE = " << var("QMAKE") << endl;
- t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl;
- t << "CHK_DIR_EXISTS= " << var("QMAKE_CHK_DIR_EXISTS") << endl;
- t << "MKDIR = " << var("QMAKE_MKDIR") << endl;
- t << "INSTALL_FILE= " << var("QMAKE_INSTALL_FILE") << endl;
- t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl;
- t << "SUBTARGETS = "; // subdirectory targets are sub-directory
- for( it.toFirst(); it.current(); ++it)
- t << " \\\n\t\t" << it.current()->target;
- t << endl << endl;
- t << "first: all\n\nall: " << ofile << " $(SUBTARGETS)" << endl << endl;
-
- // generate target rules
- for( it.toFirst(); it.current(); ++it) {
- bool have_dir = !(*it)->directory.isEmpty();
- TQString mkfile = (*it)->makefile, out;
- if(have_dir)
- mkfile.prepend((*it)->directory + Option::dir_sep);
- if(direct || (*it)->makefile != "$(MAKEFILE)")
- out = " -o " + (*it)->makefile;
- //qmake it
- t << mkfile << ": " << "\n\t";
- if(have_dir)
- t << mkdir_p_asstring((*it)->directory) << "\n\t"
- << "cd " << (*it)->directory << " && ";
- TQString profile = fileFixify((*it)->profile, (*it)->directory, (*it)->directory);
- t << "$(QMAKE) " << profile << buildArgs() << out << endl;
- //actually compile
- t << (*it)->target << ": " << mkfile << " FORCE" << "\n\t";
- if(have_dir)
- t << "cd " << (*it)->directory << " && ";
- t << "$(MAKE) -f " << (*it)->makefile << endl << endl;
- }
-
- if (project->isActiveConfig("ordered")) { // generate dependencies
- for( it.toFirst(); it.current(); ) {
- TQString tar = it.current()->target;
- ++it;
- if (it.current())
- t << it.current()->target << ": " << tar << endl;
- }
- t << endl;
- }
-
- writeMakeQmake(t);
-
- if(project->isEmpty("SUBDIRS")) {
- t << "all qmake_all distclean uicables mocables install_subdirs uninstall_subdirs"
- << " uiclean mocclean lexclean yaccclean clean " << var("SUBDIR_TARGETS") << ": FORCE" << endl;
- } else {
- t << "all: $(SUBTARGETS)" << endl;
- t << "qmake_all:";
- for( it.toFirst(); it.current(); ++it) {
- t << " ";
- if(!(*it)->directory.isEmpty())
- t << (*it)->directory << Option::dir_sep;
- t << (*it)->makefile;
- }
- for( it.toFirst(); it.current(); ++it) {
- t << "\n\t ( ";
- if(!(*it)->directory.isEmpty())
- t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; ";
- t << "grep \"^qmake_all:\" " << (*it)->makefile
- << " && $(MAKE) -f " << (*it)->makefile << " qmake_all" << "; ) || true";
- }
- t << endl;
- t << "clean uicables mocables uiclean mocclean lexclean yaccclean "
- << var("SUBDIR_TARGETS") << ": qmake_all FORCE";
- for( it.toFirst(); it.current(); ++it) {
- t << "\n\t ( ";
- if(!(*it)->directory.isEmpty())
- t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; ";
- t << "$(MAKE) -f " << (*it)->makefile << " $@" << "; ) || true";
- }
- t << endl;
- t << "uninstall_subdirs: qmake_all FORCE";
- for( it.toFirst(); it.current(); ++it) {
- t << "\n\t ( ";
- if(!(*it)->directory.isEmpty())
- t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; ";
- t << "$(MAKE) -f " << (*it)->makefile << " uninstall" << "; ) || true";
- }
- t << endl;
- t << "install_subdirs: qmake_all FORCE";
- for( it.toFirst(); it.current(); ++it) {
- t << "\n\t ( ";
- if(!(*it)->directory.isEmpty())
- t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; ";
- t << "$(MAKE) -f " << (*it)->makefile << " install" << "; ) || true";
- }
- t << endl;
- t << "distclean: qmake_all FORCE";
- for( it.toFirst(); it.current(); ++it) {
- t << "\n\t ( ";
- if(!(*it)->directory.isEmpty())
- t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; ";
- t << "$(MAKE) -f " << (*it)->makefile << " $@; $(DEL_FILE) " << (*it)->makefile << "; ) || true";
- }
- t << endl << endl;
- }
-
- //installations
- project->variables()["INSTALLDEPS"] += "install_subdirs";
- project->variables()["UNINSTALLDEPS"] += "uninstall_subdirs";
- writeInstalls(t, "INSTALLS");
-
- // user defined targets
- TQStringList &qut = project->variables()["QMAKE_EXTRA_UNIX_TARGETS"];
- for(TQStringList::Iterator qut_it = qut.begin(); qut_it != qut.end(); ++qut_it) {
- TQString targ = var((*qut_it) + ".target"),
- cmd = var((*qut_it) + ".commands"), deps;
- if(targ.isEmpty())
- targ = (*qut_it);
- TQStringList &deplist = project->variables()[(*qut_it) + ".depends"];
- for(TQStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
- TQString dep = var((*dep_it) + ".target");
- if(dep.isEmpty())
- dep = (*dep_it);
- deps += " " + dep;
- }
- if(project->variables()[(*qut_it) + ".CONFIG"].findIndex("phony") != -1)
- deps += TQString(" ") + "FORCE";
- t << targ << ":" << deps << "\n";
- if(!cmd.isEmpty())
- t << "\t" << cmd << endl;
- t << endl;
- }
- t <<"FORCE:" << endl << endl;
-}
-
-void UnixMakefileGenerator::init2()
-{
- //version handling
- if(project->variables()["VERSION"].isEmpty())
- project->variables()["VERSION"].append("1.0." +
- (project->isEmpty("VER_PAT") ? TQString("0") :
- project->first("VER_PAT")) );
- TQStringList l = TQStringList::split('.', project->first("VERSION"));
- l << "0" << "0"; //make sure there are three
- project->variables()["VER_MAJ"].append(l[0]);
- project->variables()["VER_MIN"].append(l[1]);
- project->variables()["VER_PAT"].append(l[2]);
-
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
-#if 0
- if ( project->isActiveConfig("dll") ) {
- project->variables()["TARGET"] += project->variables()["TARGET.so"];
- if(project->variables()["QMAKE_LFLAGS_SHAPP"].isEmpty())
- project->variables()["QMAKE_LFLAGS_SHAPP"] += project->variables()["QMAKE_LFLAGS_SHLIB"];
- if(!project->variables()["QMAKE_LFLAGS_SONAME"].isEmpty())
- project->variables()["QMAKE_LFLAGS_SONAME"].first() += project->first("TARGET");
- }
-#endif
- project->variables()["TARGET"].first().prepend(project->first("DESTDIR"));
- if ( !project->variables()["QMAKE_CYGWIN_EXE"].isEmpty() )
- project->variables()["TARGET_EXT"].append(".exe");
- } else if ( project->isActiveConfig("staticlib") ) {
- project->variables()["TARGET"].first().prepend("lib");
- project->variables()["TARGET"].first() += ".a";
- if(project->variables()["QMAKE_AR_CMD"].isEmpty())
- project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGET) $(OBJECTS) $(OBJMOC)");
- } else {
- project->variables()["TARGETA"].append(project->first("DESTDIR") + "lib" + project->first("TARGET") + ".a");
- if( project->isActiveConfig("compile_libtool") )
- project->variables()["TARGET_la"] = project->first("DESTDIR") + "lib" + project->first("TARGET") + Option::libtool_ext;
-
- if ( !project->variables()["QMAKE_AR_CMD"].isEmpty() )
- project->variables()["QMAKE_AR_CMD"].first().replace("(TARGET)","(TARGETA)");
- else
- project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGETA) $(OBJECTS) $(OBJMOC)");
- if( project->isActiveConfig("compile_libtool") ) {
- project->variables()["TARGET"] = project->variables()["TARGET_la"];
- } else if( project->isActiveConfig("plugin") ) {
- project->variables()["TARGET_x.y.z"].append("lib" +
- project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_PLUGIN"));
- if(project->isActiveConfig("lib_version_first"))
- project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ") + "." +
- project->first("QMAKE_EXTENSION_PLUGIN"));
- else
- project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_PLUGIN") +
- "." + project->first("VER_MAJ"));
-
- project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];
- if(project->isActiveConfig("qt"))
- project->variables()["DEFINES"].append("QT_PLUGIN");
- } else if ( !project->isEmpty("QMAKE_HPUX_SHLIB") ) {
- project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".sl");
- if(project->isActiveConfig("lib_version_first"))
- project->variables()["TARGET_x"].append("lib" + project->first("VER_MAJ") + "." +
- project->first("TARGET"));
- else
- project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ"));
- project->variables()["TARGET"] = project->variables()["TARGET_x"];
- } else if ( !project->isEmpty("QMAKE_AIX_SHLIB") ) {
- project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".a");
- if(project->isActiveConfig("lib_version_first")) {
- project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ") + "." +
- project->first("QMAKE_EXTENSION_SHLIB"));
- project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ") +
- "." + project->first("VER_MIN") + "." +
- project->first("QMAKE_EXTENSION_SHLIB"));
- project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ") + "." +
- project->first("VER_MIN") + "." +
- project->first("VER_PAT") + "." +
- project->first("QMAKE_EXTENSION_SHLIB"));
- } else {
- project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB") +
- "." + project->first("VER_MAJ"));
- project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB") +
- "." + project->first("VER_MAJ") +
- "." + project->first("VER_MIN"));
- project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB") + "." +
- project->first("VER_MAJ") + "." +
- project->first("VER_MIN") + "." +
- project->first("VER_PAT"));
- }
- project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];
- } else {
- project->variables()["TARGET_"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB"));
- if(project->isActiveConfig("lib_version_first")) {
- project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ") + "." +
- project->first("QMAKE_EXTENSION_SHLIB"));
- project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ") +
- "." + project->first("VER_MIN") + "." +
- project->first("QMAKE_EXTENSION_SHLIB"));
- project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +
- project->first("VER_MAJ") + "." +
- project->first("VER_MIN") + "." +
- project->first("VER_PAT") + "." +
- project->variables()["QMAKE_EXTENSION_SHLIB"].first());
- } else {
- project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB") +
- "." + project->first("VER_MAJ"));
- if ( !project->variables()["QMAKE_OPENBSD_SHLIBS"].isEmpty() ) {
- TQString s;
- s.setNum(project->first("VER_MIN").toInt()*10+ project->first("VER_PAT").toInt());
- project->variables()["OBSD_TARGET_VERSION"].append(project->first("VER_MAJ") + "." + s);
- project->variables()["OBSD_TARGET_NAME"].append(project->first("TARGET"));
- project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB")
- + ".$(LIB"+ project->first("TARGET") + "_VERSION)");
- } else {
- project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
- project->first("QMAKE_EXTENSION_SHLIB")
- + "." + project->first("VER_MAJ") +
- "." + project->first("VER_MIN"));
- }
- project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") +
- "." +
- project->variables()[
- "QMAKE_EXTENSION_SHLIB"].first() + "." +
- project->first("VER_MAJ") + "." +
- project->first("VER_MIN") + "." +
- project->first("VER_PAT"));
- }
- if ( !project->variables()["QMAKE_OPENBSD_SHLIBS"].isEmpty() )
- project->variables()["TARGET"] = project->variables()["TARGET_x.y"];
- else
- project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];
- }
- if(project->isEmpty("QMAKE_LN_SHLIB"))
- project->variables()["QMAKE_LN_SHLIB"].append("ln -s");
- project->variables()["DESTDIR_TARGET"].append("$(TARGET)");
- if ( !project->variables()["DESTDIR"].isEmpty() )
- project->variables()["DESTDIR_TARGET"].first().prepend(project->first("DESTDIR"));
- if ( !project->variables()["QMAKE_LFLAGS_SONAME"].isEmpty()) {
- if(project->isActiveConfig("plugin")) {
- if(!project->variables()["TARGET"].isEmpty() )
- project->variables()["QMAKE_LFLAGS_SONAME"].first() += project->first("TARGET");
- } else {
- if(!project->variables()["TARGET_x"].isEmpty() )
- project->variables()["QMAKE_LFLAGS_SONAME"].first() += project->first("TARGET_x");
- }
- }
- if ( project->variables()["QMAKE_LINK_SHLIB_CMD"].isEmpty() )
- project->variables()["QMAKE_LINK_SHLIB_CMD"].append(
- "$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) $(OBJCOMP)");
- }
- if(project->isEmpty("QMAKE_SYMBOLIC_LINK"))
- project->variables()["QMAKE_SYMBOLIC_LINK"].append("ln -sf");
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_APP"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_APP"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_APP"];
- } else if ( project->isActiveConfig("dll") ) {
- if( !project->isActiveConfig("plugin") || !project->isActiveConfig("plugin_no_share_shlib_cflags")) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_SHLIB"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_SHLIB"];
- }
- if ( project->isActiveConfig("plugin") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_PLUGIN"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_PLUGIN"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_PLUGIN"];
- if( project->isActiveConfig("plugin_with_soname") && !project->isActiveConfig("compile_libtool"))
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_SONAME"];
- } else {
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_SHLIB"];
- if(!project->isEmpty("QMAKE_LFLAGS_COMPAT_VERSION")) {
- if(project->isEmpty("COMPAT_VERSION"))
- project->variables()["QMAKE_LFLAGS"] += TQString(project->first("QMAKE_LFLAGS_COMPAT_VERSION") +
- project->first("VER_MAJ") + "." +
- project->first("VER_MIN"));
- else
- project->variables()["QMAKE_LFLAGS"] += TQString(project->first("QMAKE_LFLAGS_COMPAT_VERSION") +
- project->first("COMPATIBILITY_VERSION"));
- }
- if(!project->isEmpty("QMAKE_LFLAGS_VERSION")) {
- project->variables()["QMAKE_LFLAGS"] += TQString(project->first("QMAKE_LFLAGS_VERSION") +
- project->first("VER_MAJ") + "." +
- project->first("VER_MIN") + "." +
- project->first("VER_PAT"));
- }
- if(!project->isActiveConfig("compile_libtool"))
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_SONAME"];
- }
- }
- TQStringList &quc = project->variables()["QMAKE_EXTRA_UNIX_COMPILERS"];
- for(TQStringList::Iterator it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- if(tmp_out.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- TQString in = Option::fixPathToTargetOS((*input), FALSE),
- out = tmp_out;
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(project->variables()[(*it) + ".CONFIG"].findIndex("no_link") == -1)
- project->variables()["OBJCOMP"] += out;
- }
- }
- }
-}
-
-TQString
-UnixMakefileGenerator::libtoolFileName()
-{
- TQString ret = var("TARGET");
- int slsh = ret.findRev(Option::dir_sep);
- if(slsh != -1)
- ret = ret.right(ret.length() - slsh - 1);
- int dot = ret.find('.');
- if(dot != -1)
- ret = ret.left(dot);
- ret += Option::libtool_ext;
- if(!project->isEmpty("DESTDIR"))
- ret.prepend(var("DESTDIR"));
- return ret;
-}
-
-void
-UnixMakefileGenerator::writeLibtoolFile()
-{
- TQString fname = libtoolFileName(), lname = fname;
- int slsh = lname.findRev(Option::dir_sep);
- if(slsh != -1)
- lname = lname.right(lname.length() - slsh - 1);
- TQFile ft(fname);
- if(!ft.open(IO_WriteOnly))
- return;
- project->variables()["ALL_DEPS"].append(fname);
-
- TQTextStream t(&ft);
- t << "# " << lname << " - a libtool library file\n";
- t << "# Generated by qmake/libtool (" << qmake_version() << ") (TQt "
- << TQT_VERSION_STR << ")\n";
-
- t << "# The name that we can dlopen(3).\n"
- << "dlname='" << var(project->isActiveConfig("plugin") ? "TARGET" : "TARGET_x")
- << "'\n\n";
-
- t << "# Names of this library.\n";
- t << "library_names='";
- if(project->isActiveConfig("plugin")) {
- t << var("TARGET");
- } else {
- if (project->isEmpty("QMAKE_HPUX_SHLIB"))
- t << var("TARGET_x.y.z") << " " << var("TARGET_x.y") << " ";
- t << var("TARGET_x") << " " << var("TARGET_");
- }
- t << "'\n\n";
-
- t << "# The name of the static archive.\n"
- << "old_library='";
- if(project->isActiveConfig("staticlib")) {
- t << lname.left(lname.length()-Option::libtool_ext.length()) << ".a";
- }
- t << "'\n\n";
-
- t << "# Libraries that this one depends upon.\n";
- TQStringList libs;
- if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- libs = project->variables()["QMAKE_INTERNAL_PRL_LIBS"];
- else
- libs << "QMAKE_LIBS"; //obvious one
- t << "dependency_libs='";
- for(TQStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it)
- t << project->variables()[(*it)].join(" ") << " ";
- t << "'\n\n";
-
- t << "# Version information for " << lname << "\n";
- int maj = project->first("VER_MAJ").toInt();
- int min = project->first("VER_MIN").toInt();
- int pat = project->first("VER_PAT").toInt();
- t << "current=" << (10*maj + min) << "\n" // best I can think of
- << "age=0\n"
- << "revision=" << pat << "\n\n";
-
- t << "# Is this an already installed library.\n"
- "installed=yes\n\n"; // ###
-
- t << "# Files to dlopen/dlpreopen.\n"
- "dlopen=''\n"
- "dlpreopen=''\n\n";
-
- TQString install_dir = project->first("target.path");
- if(install_dir.isEmpty())
- install_dir = project->first("DESTDIR");
- t << "# Directory that this library needs to be installed in:\n"
- "libdir='" << Option::fixPathToTargetOS(install_dir, FALSE) << "'\n";
-}
-
-TQString
-UnixMakefileGenerator::pkgConfigFileName()
-{
- TQString ret = var("TARGET");
- int slsh = ret.findRev(Option::dir_sep);
- if(slsh != -1)
- ret = ret.right(ret.length() - slsh - 1);
- if(ret.startsWith("lib"))
- ret = ret.mid(3);
- int dot = ret.find('.');
- if(dot != -1)
- ret = ret.left(dot);
- ret += Option::pkgcfg_ext;
- if(!project->isEmpty("DESTDIR")) {
- ret.prepend(var("DESTDIR"));
- ret = Option::fixPathToLocalOS(fileFixify(ret,TQDir::currentDirPath(), Option::output_dir));
- }
- return ret;
-}
-
-TQString
-UnixMakefileGenerator::pkgConfigPrefix() const
-{
- if(!project->isEmpty("QMAKE_PKGCONFIG_PREFIX"))
- return project->first("QMAKE_PKGCONFIG_PREFIX");
- return tqInstallPath();
-}
-
-TQString
-UnixMakefileGenerator::pkgConfigFixPath(TQString path) const
-{
- TQString prefix = pkgConfigPrefix();
- if(path.startsWith(prefix))
- path = path.replace(prefix, "${prefix}");
- return path;
-}
-
-void
-UnixMakefileGenerator::writePkgConfigFile() // ### does make sense only for libtqt so far
-{
- TQString fname = pkgConfigFileName(), lname = fname;
- int slsh = lname.findRev(Option::dir_sep);
- if(slsh != -1)
- lname = lname.right(lname.length() - slsh - 1);
- TQFile ft(fname);
- if(!ft.open(IO_WriteOnly))
- return;
- project->variables()["ALL_DEPS"].append(fname);
- TQTextStream t(&ft);
-
- TQString prefix = pkgConfigPrefix();
- TQString libDir = tqInstallPathLibs();
- if (libDir.isEmpty())
- {
- libDir = prefix + "/lib";
- }
- TQString includeDir = tqInstallPathHeaders();
- if (includeDir.isEmpty())
- {
- includeDir = prefix + "/include";
- }
- TQString pluginsDir = tqInstallPathPlugins();
- if (pluginsDir.isEmpty())
- {
- pluginsDir = prefix + "/plugins";
- }
- TQString translationsDir = tqInstallPathTranslations();
- if (translationsDir.isEmpty())
- {
- translationsDir = prefix + "/translations";
- }
-
- t << "prefix=" << prefix << endl
- << "exec_prefix=${prefix}" << endl
- << "libdir=" << pkgConfigFixPath(libDir) << endl
- << "includedir=" << pkgConfigFixPath(includeDir) << endl
- // non-standard entry. Provides path for plugins
- << "pluginsdir=" << pkgConfigFixPath(pluginsDir) << endl
- // non-standard entry. Provides path for translations
- << "translationsdir=" << pkgConfigFixPath(translationsDir) << endl
- << endl;
-
- // non-standard entry. Provides useful info normally only
- // contained in the internal .qmake.cache file
- t << varGlue("CONFIG", "qt_config=", " ", "") << endl << endl;
-
- t << "Name: TQt" << endl;
- TQString desc = project->first("QMAKE_PKGCONFIG_DESCRIPTION");
- if(desc.isEmpty()) {
- desc = project->first("TARGET").lower();
- desc.replace(0, 1, desc[0].upper());
- if(project->first("TEMPLATE") == "lib") {
- if(project->isActiveConfig("plugin"))
- desc += " Plugin";
- else
- desc += " Library";
- } else if(project->first("TEMPLATE") == "app") {
- desc += " Application";
- }
- }
- t << "Description: " << desc << endl;
- t << "Version: " << project->first("VERSION") << endl;
-
- // libs
- TQStringList libs;
- if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- libs = project->variables()["QMAKE_INTERNAL_PRL_LIBS"];
- else
- libs << "QMAKE_LIBS"; //obvious one
- if(project->isActiveConfig("thread"))
- libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what about things like -pthread?
- t << "Libs: -L${libdir} -l" << lname.left(lname.length()-Option::libtool_ext.length());
- // for(TQStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it)
- // t << project->variables()[(*it)].join(" ") << " ";
- t << endl;
-
- // flags
- // ### too many
- t << "Cflags: "
- // << var("QMAKE_CXXFLAGS") << " "
- // << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
- // << project->variables()["PRL_EXPORT_CXXFLAGS"].join(" ")
- // << varGlue("DEFINES","-D"," -D"," ")
- << "-DTQT_NO_ASCII_CAST -DTQT_NO_STL -DTQT_NO_COMPAT -DTQT_NO_TRANSLATION -DTQT_THREAD_SUPPORT -D_REENTRANT -I${includedir}";
- t << endl;
-}
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
deleted file mode 100644
index a63d6454d..000000000
--- a/qmake/generators/win32/mingw_make.cpp
+++ /dev/null
@@ -1,689 +0,0 @@
-/****************************************************************************
-**
-** Implementation of MingwMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "mingw_make.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-
-
-MingwMakefileGenerator::MingwMakefileGenerator(TQMakeProject *p) : Win32MakefileGenerator(p), init_flag(FALSE)
-{
- Option::obj_ext = ".o";
-}
-
-bool
-MingwMakefileGenerator::findLibraries() // todo - pascal
-{
- return TRUE;
-}
-
-bool
-MingwMakefileGenerator::writeMakefile(TQTextStream &t)
-{
- writeHeader(t);
- if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
- t << "all clean:" << "\n\t"
- << "@echo \"Some of the required modules ("
- << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t"
- << "@echo \"Skipped.\"" << endl << endl;
- writeMakeQmake(t);
- return TRUE;
- }
-
- if(project->first("TEMPLATE") == "app" ||
- project->first("TEMPLATE") == "lib") {
- writeMingwParts(t);
- return MakefileGenerator::writeMakefile(t);
- }
- else if(project->first("TEMPLATE") == "subdirs") {
- writeSubDirs(t);
- return TRUE;
- }
- return FALSE;
- }
-
-void createLdObjectScriptFile(const TQString & fileName, TQStringList & objList)
-{
- TQString filePath = Option::output_dir + TQDir::separator() + fileName;
- TQFile file(filePath);
- if (file.open(IO_WriteOnly | IO_Translate )) {
- TQTextStream t(&file);
- t << "INPUT(" << endl;
- for (TQStringList::Iterator it = objList.begin(); it != objList.end(); ++it ) {
- if (TQDir::isRelativePath(*it))
- t << "./" << *it << endl;
- else
- t << *it << endl;
- }
- t << ");" << endl;
- file.close();
- }
-}
-
-void
-MingwMakefileGenerator::writeMingwParts(TQTextStream &t)
-{
- t << "####### Compiler, tools and options" << endl << endl;
- t << "CC = " << var("QMAKE_CC") << endl;
- t << "CXX = " << var("QMAKE_CXX") << endl;
- t << "LEX = " << var("QMAKE_LEX") << endl;
- t << "YACC = " << var("QMAKE_YACC") << endl;
- t << "CFLAGS = " << var("QMAKE_CFLAGS") << " "
- << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " "
- << varGlue("DEFINES","-D"," -D","") << endl;
- t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " "
- << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " "
- << varGlue("DEFINES","-D"," -D","") << endl;
- t << "LEXFLAGS =" << var("QMAKE_LEXFLAGS") << endl;
- t << "YACCFLAGS =" << var("QMAKE_YACCFLAGS") << endl;
-
- t << "INCPATH = ";
- TQStringList &incs = project->variables()["INCLUDEPATH"];
- for(TQStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) {
- TQString inc = (*incit);
- inc.replace(TQRegExp("\\\\$"), "");
- inc.replace(TQRegExp("\""), "");
- t << " -I" << "\"" << inc << "\"";
- }
- t << " -I" << "\"" << specdir() << "\"" << endl;
- if(!project->variables()["QMAKE_APP_OR_DLL"].isEmpty()) {
- t << "LINK = " << var("QMAKE_LINK") << endl;
- t << "LFLAGS = " << var("QMAKE_LFLAGS") << endl;
- t << "LIBS = ";
- if ( !project->variables()["QMAKE_LIBDIR"].isEmpty() )
- t << varGlue("QMAKE_LIBDIR","-L\"","\" -L\"","\"") << " ";
- t << var("QMAKE_LIBS").replace(TQRegExp("(\\slib|^lib)")," -l") << endl;
- }
- else {
- t << "LIB = " << var("QMAKE_LIB") << endl;
- }
- t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") :
- Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl;
- t << "TQUIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("tquic") :
- Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl;
- t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") :
- Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl;
- t << "IDC = " << (project->isEmpty("QMAKE_IDC") ? TQString("idc") :
- Option::fixPathToTargetOS(var("QMAKE_IDC"), FALSE)) << endl;
- t << "IDL = " << (project->isEmpty("QMAKE_IDL") ? TQString("midl") :
- Option::fixPathToTargetOS(var("QMAKE_IDL"), FALSE)) << endl;
- t << "ZIP = " << var("QMAKE_ZIP") << endl;
- t << "DEF_FILE = " << varList("DEF_FILE") << endl;
- t << "COPY_FILE = " << var("QMAKE_COPY") << endl;
- t << "COPY_DIR = " << var("QMAKE_COPY") << endl;
- t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl;
- t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl;
- t << "MOVE = " << var("QMAKE_MOVE") << endl;
- t << "CHK_DIR_EXISTS = " << var("QMAKE_CHK_DIR_EXISTS") << endl;
- t << "MKDIR = " << var("QMAKE_MKDIR") << endl;
- t << "INSTALL_FILE= " << var("QMAKE_INSTALL_FILE") << endl;
- t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl;
- t << endl;
-
- t << "####### Output directory" << endl << endl;
- if (! project->variables()["OBJECTS_DIR"].isEmpty())
- t << "OBJECTS_DIR = " << var("OBJECTS_DIR").replace(TQRegExp("\\\\$"),"") << endl;
- else
- t << "OBJECTS_DIR = . " << endl;
- if (! project->variables()["MOC_DIR"].isEmpty())
- t << "MOC_DIR = " << var("MOC_DIR").replace(TQRegExp("\\\\$"),"") << endl;
- else
- t << "MOC_DIR = . " << endl;
- t << endl;
-
- t << "####### Files" << endl << endl;
- t << "HEADERS = " << varList("HEADERS") << endl;
- t << "SOURCES = " << varList("SOURCES") << endl;
- TQString objectsLinkLine;
- if (!project->variables()["QMAKE_APP_OR_DLL"].isEmpty() &&
- project->variables()["OBJECTS"].count() > var("QMAKE_LINK_OBJECT_MAX").toUInt()) {
- createLdObjectScriptFile(var("QMAKE_LINK_OBJECT_SCRIPT"), project->variables()["OBJECTS"]);
- objectsLinkLine = var("QMAKE_LINK_OBJECT_SCRIPT");
- } else {
- objectsLinkLine = "$(OBJECTS)";
- }
- t << "OBJECTS = " << varList("OBJECTS") << endl;
- t << "FORMS = " << varList("FORMS") << endl;
- t << "UICDECLS = " << varList("UICDECLS") << endl;
- t << "UICIMPLS = " << varList("UICIMPLS") << endl;
- t << "SRCMOC = " << varList("SRCMOC") << endl;
- TQString objmocLinkLine;
- if (!project->variables()["QMAKE_APP_OR_DLL"].isEmpty() &&
- project->variables()["OBJMOC"].count() > var("QMAKE_LINK_OBJECT_MAX").toUInt()) {
- createLdObjectScriptFile(var("QMAKE_LINK_OBJMOC_SCRIPT"), project->variables()["OBJMOC"]);
- objmocLinkLine = var("QMAKE_LINK_OBJMOC_SCRIPT");
- } else {
- objmocLinkLine = "$(OBJMOC)";
- }
- t << "OBJMOC = " << varList("OBJMOC") << endl;
- TQString extraCompilerDeps;
- if(!project->isEmpty("QMAKE_EXTRA_WIN_COMPILERS")) {
- t << "OBJCOMP = " << varList("OBJCOMP") << endl;
- extraCompilerDeps += " $(OBJCOMP) ";
-
- TQStringList &comps = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];
- for(TQStringList::Iterator compit = comps.begin(); compit != comps.end(); ++compit) {
- TQStringList &vars = project->variables()[(*compit) + ".variables"];
- for(TQStringList::Iterator varit = vars.begin(); varit != vars.end(); ++varit) {
- TQStringList vals = project->variables()[(*varit)];
- if(!vals.isEmpty())
- t << "QMAKE_COMP_" << (*varit) << " = " << valList(vals) << endl;
- }
- }
- }
-
- t << "DIST = " << varList("DISTFILES") << endl;
- t << "TARGET = ";
- if( !project->variables()[ "DESTDIR" ].isEmpty() )
- t << varGlue("TARGET",project->first("DESTDIR"),"",project->first("TARGET_EXT"));
- else
- t << project->variables()[ "TARGET" ].first() << project->variables()[ "TARGET_EXT" ].first();
- t << endl;
- t << endl;
-
- t << "####### Implicit rules" << endl << endl;
- t << ".SUFFIXES: .cpp .cxx .cc .C .c" << endl << endl;
- t << ".cpp.o:\n\t" << var("QMAKE_RUN_CXX_IMP") << endl << endl;
- t << ".cxx.o:\n\t" << var("QMAKE_RUN_CXX_IMP") << endl << endl;
- t << ".cc.o:\n\t" << var("QMAKE_RUN_CXX_IMP") << endl << endl;
- t << ".c.o:\n\t" << var("QMAKE_RUN_CC_IMP") << endl << endl;
-
- t << "####### Build rules" << endl << endl;
- t << "all: " << "$(OBJECTS_DIR) " << "$(MOC_DIR) " << varGlue("ALL_DEPS",""," "," ") << "$(TARGET)" << endl << endl;
- t << "$(TARGET): " << var("PRE_TARGETDEPS") << " $(UICDECLS) $(OBJECTS) $(OBJMOC) "
- << extraCompilerDeps << var("POST_TARGETDEPS");
- if(!project->variables()["QMAKE_APP_OR_DLL"].isEmpty()) {
- t << "\n\t" << "$(LINK) $(LFLAGS) -o $(TARGET) " << objectsLinkLine << " " << objmocLinkLine << " $(LIBS)";
- } else {
- t << "\n\t" << "$(LIB) $(TARGET) " << objectsLinkLine << " " << objmocLinkLine;
- }
- t << extraCompilerDeps;
- if(project->isActiveConfig("dll") && !project->variables()["DLLDESTDIR"].isEmpty()) {
- TQStringList dlldirs = project->variables()["DLLDESTDIR"];
- for ( TQStringList::Iterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir ) {
- t << "\n\t" << "$(COPY_FILE) \"$(TARGET)\" " << *dlldir;
- }
- }
- TQString targetfilename = project->variables()["TARGET"].first();
- t << endl << endl;
-
- if(!project->variables()["RC_FILE"].isEmpty()) {
- t << var("RES_FILE") << ": " << var("RC_FILE") << "\n\t"
- << var("QMAKE_RC") << " -i " << var("RC_FILE") << " -o " << var("RC_FILE").replace(TQRegExp("\\.rc"),".o") << " --include-dir=" << TQFileInfo(var("RC_FILE")).dirPath() << endl << endl;
- }
- project->variables()["RES_FILE"].first().replace(TQRegExp("\\.rc"),".o");
-
- t << "mocables: $(SRCMOC)" << endl << endl;
-
- t << "$(OBJECTS_DIR):" << "\n\t"
- << "@if not exist $(OBJECTS_DIR) $(MKDIR) $(OBJECTS_DIR)" << endl << endl;
-
- t << "$(MOC_DIR):" << "\n\t"
- << "@if not exist $(MOC_DIR) $(MKDIR) $(MOC_DIR)" << endl << endl;
-
- writeMakeQmake(t);
-
- t << "dist:" << "\n\t"
- << "$(ZIP) " << var("PROJECT") << ".zip "
- << var("PROJECT") << ".pro $(SOURCES) $(HEADERS) $(DIST) $(FORMS)" << endl << endl;
-
- t << "clean:"
- << varGlue("OBJECTS","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","").replace(TQRegExp("\\.obj"),".o")
- << varGlue("SRCMOC" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")
- << varGlue("OBJMOC" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","").replace(TQRegExp("\\.obj"),".o")
- << varGlue("UICDECLS" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")
- << varGlue("UICIMPLS" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")
- << "\n\t-$(DEL_FILE) $(TARGET)"
- << varGlue("QMAKE_CLEAN","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")
- << varGlue("CLEAN_FILES","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","");
- if(!project->isEmpty("IMAGES"))
- t << varGlue("QMAKE_IMAGE_COLLECTION", "\n\t-$(DEL_FILE) ", "\n\t-$(DEL_FILE) ", "");
-
- // user defined targets
- TQStringList::Iterator it;
- TQStringList &qut = project->variables()["QMAKE_EXTRA_WIN_TARGETS"];
-
- for(it = qut.begin(); it != qut.end(); ++it) {
- TQString targ = var((*it) + ".target"),
- cmd = var((*it) + ".commands"), deps;
- if(targ.isEmpty())
- targ = (*it);
- TQStringList &deplist = project->variables()[(*it) + ".depends"];
- for(TQStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
- TQString dep = var((*dep_it) + ".target");
- if(dep.isEmpty())
- dep = (*dep_it);
- deps += " " + dep;
- }
- t << "\n\n" << targ << ":" << deps << "\n\t"
- << cmd;
- }
-
- t << endl << endl;
-
- TQStringList &quc = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];
- for(it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- TQString tmp_cmd = project->variables()[(*it) + ".commands"].join(" ");
- TQString tmp_dep = project->variables()[(*it) + ".depends"].join(" ");
- TQStringList &vars = project->variables()[(*it) + ".variables"];
- if(tmp_out.isEmpty() || tmp_cmd.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- TQString in = Option::fixPathToTargetOS((*input), FALSE),
- out = tmp_out, cmd = tmp_cmd, deps;
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- cmd.replace("${QMAKE_FILE_BASE}", fi.baseName());
- cmd.replace("${QMAKE_FILE_OUT}", out);
- cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());
- for(TQStringList::Iterator it3 = vars.begin(); it3 != vars.end(); ++it3)
- cmd.replace("$(" + (*it3) + ")", "$(QMAKE_COMP_" + (*it3)+")");
- if(!tmp_dep.isEmpty()) {
- char buff[256];
- TQString dep_cmd = tmp_dep;
- dep_cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(FILE *proc = QT_POPEN(dep_cmd.latin1(), "r")) {
- while(!feof(proc)) {
- int read_in = int(fread(buff, 1, 255, proc));
- if(!read_in)
- break;
- int l = 0;
- for(int i = 0; i < read_in; i++) {
- if(buff[i] == '\n' || buff[i] == ' ') {
- deps += " " + TQCString(buff+l, (i - l) + 1);
- l = i;
- }
- }
- }
- fclose(proc);
- }
- }
- t << out << ": " << in << deps << "\n\t"
- << cmd << endl << endl;
- }
- }
- }
- t << endl;
-}
-
-
-void
-MingwMakefileGenerator::init()
-{
- if(init_flag)
- return;
- init_flag = TRUE;
-
- /* this should probably not be here, but I'm using it to wrap the .t files */
- if(project->first("TEMPLATE") == "app")
- project->variables()["QMAKE_APP_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "lib")
- project->variables()["QMAKE_LIB_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "subdirs") {
- MakefileGenerator::init();
- if(project->variables()["MAKEFILE"].isEmpty())
- project->variables()["MAKEFILE"].append("Makefile");
- if(project->variables()["QMAKE"].isEmpty())
- project->variables()["QMAKE"].append("qmake");
- return;
- }
-
- if(project->isEmpty("QMAKE_INSTALL_FILE"))
- project->variables()["QMAKE_INSTALL_FILE"].append("$(COPY_FILE)");
- if(project->isEmpty("QMAKE_INSTALL_DIR"))
- project->variables()["QMAKE_INSTALL_DIR"].append("$(COPY_DIR)");
-
- bool is_qt = (project->first("TARGET") == "qt" TQTDLL_POSTFIX || project->first("TARGET") == "tqt-mt" TQTDLL_POSTFIX);
- project->variables()["QMAKE_ORIG_TARGET"] = project->variables()["TARGET"];
-
- // LIBS defined in Profile comes first for gcc
- project->variables()["QMAKE_LIBS"] += project->variables()["LIBS"];
-
- TQString targetfilename = project->variables()["TARGET"].first();
- TQStringList &configs = project->variables()["CONFIG"];
-
- if (project->isActiveConfig("qt") && project->isActiveConfig("shared"))
- project->variables()["DEFINES"].append("QT_DLL");
-
- if (project->isActiveConfig("qt_dll"))
- if (configs.findIndex("qt") == -1)
- configs.append("qt");
-
- if ( project->isActiveConfig("qt") ) {
- if ( project->isActiveConfig( "plugin" ) ) {
- project->variables()["CONFIG"].append("dll");
- if(project->isActiveConfig("qt"))
- project->variables()["DEFINES"].append("QT_PLUGIN");
- }
- if ( (project->variables()["DEFINES"].findIndex("QT_NODLL") == -1) &&
- ((project->variables()["DEFINES"].findIndex("QT_MAKEDLL") != -1 ||
- project->variables()["DEFINES"].findIndex("QT_DLL") != -1) ||
- (getenv("QT_DLL") && !getenv("QT_NODLL"))) ) {
- project->variables()["QMAKE_QT_DLL"].append("1");
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() )
- project->variables()["CONFIG"].append("dll");
- }
- if ( project->isActiveConfig("thread") ) {
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_THREAD_SUPPORT");
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_THREAD"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_THREAD"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_THREAD"];
- }
- if ( project->isActiveConfig("accessibility" ) )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_ACCESSIBILITY_SUPPORT");
- if ( project->isActiveConfig("tablet") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_TABLET_SUPPORT");
- }
-
- if ( project->isActiveConfig("dll") || !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
- project->variables()["CONFIG"].remove("staticlib");
- project->variables()["QMAKE_APP_OR_DLL"].append("1");
- } else {
- project->variables()["CONFIG"].append("staticlib");
- }
-
- if ( project->isActiveConfig("warn_off") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_OFF"];
- } else if ( project->isActiveConfig("warn_on") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_ON"];
- }
-
- if ( project->isActiveConfig("debug") ) {
- if ( project->isActiveConfig("thread") ) {
- // use the DLL RT even here
- if ( project->variables()["DEFINES"].contains("QT_DLL") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DLLDBG"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DLLDBG"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DBG"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DBG"];
- }
- }
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_DEBUG"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_DEBUG"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_DEBUG"];
- } else {
- if ( project->isActiveConfig("thread") ) {
- if ( project->variables()["DEFINES"].contains("QT_DLL") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DLL"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DLL"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT"];
- }
- }
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RELEASE"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RELEASE"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_RELEASE"];
- }
-
- if ( !project->variables()["QMAKE_INCDIR"].isEmpty())
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR"];
-
- if ( project->isActiveConfig("qt") || project->isActiveConfig("opengl") )
- project->variables()["CONFIG"].append("windows");
-
- if ( project->isActiveConfig("qt") ) {
- project->variables()["CONFIG"].append("moc");
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQT"];
- project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_TQT"];
- if ( !project->isActiveConfig("debug") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_NO_DEBUG");
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty()) {
- project->variables()["DEFINES"].append("QT_MAKEDLL");
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_QT_DLL"];
- }
- } else {
-
- if(project->isActiveConfig("thread"))
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_THREAD"];
- else
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {
- int hver = findHighestVersion(project->first("QMAKE_LIBDIR_TQT"), "qt");
- if ( hver == -1 )
- hver = findHighestVersion(project->first("QMAKE_LIBDIR_TQT"), "tqt-mt");
- if(hver != -1) {
- TQString ver;
- ver.sprintf("-lqt%s" TQTDLL_POSTFIX "%d", (project->isActiveConfig("thread") ? "-mt" : ""), hver);
- TQStringList &libs = project->variables()["QMAKE_LIBS"];
-// @@@HGTODO maybe we must change the replace regexp if we understand what's going on
- for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit)
- (*libit).replace(TQRegExp("-lqt(-mt)?"), ver);
- }
- }
- if ( !project->isActiveConfig("dll") && !project->isActiveConfig("plugin") ) {
- project->variables()["QMAKE_LIBS"] +=project->variables()["QMAKE_LIBS_QT_ENTRY"];
- }
-
- // QMAKE_LIBS_QT_ENTRY should be first on the link line as it needs qt
- project->variables()["QMAKE_LIBS"].remove(project->variables()["QMAKE_LIBS_QT_ENTRY"].first());
- project->variables()["QMAKE_LIBS"].prepend(project->variables()["QMAKE_LIBS_QT_ENTRY"].first());
-
- }
- }
-
- if ( project->isActiveConfig("opengl") ) {
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_OPENGL"];
- }
-
- if ( project->isActiveConfig("dll") ) {
- project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS_DLL"];
- if ( !project->variables()["QMAKE_LIB_FLAG"].isEmpty()) {
- project->variables()["TARGET_EXT"].append(
- TQStringList::split('.',project->first("VERSION")).join("") + ".dll");
- } else {
- project->variables()["TARGET_EXT"].append(".dll");
- }
- } else {
- project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE"];
- project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE"];
- project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE"];
- project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS"];
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty()) {
- project->variables()["TARGET_EXT"].append(".exe");
- } else {
- project->variables()["TARGET_EXT"].append(".a");
- project->variables()["QMAKE_LFLAGS"].append("-static");
- if(project->variables()["TARGET"].first().left(3) != "lib")
- project->variables()["TARGET"].first().prepend("lib");
- }
- }
-
- if ( project->isActiveConfig("windows") ) {
- if ( project->isActiveConfig("console") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_CONSOLE"];
- } else {
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"];
- }
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_WINDOWS"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_CONSOLE"];
- }
-
- if ( project->isActiveConfig("exceptions") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_OFF"];
- }
-
- if ( project->isActiveConfig("rtti") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_OFF"];
- }
-
- if ( project->isActiveConfig("moc") )
- setTQMocAware(TRUE);
-
- // add -L libs to libdir
- TQStringList &libs = project->variables()["QMAKE_LIBS"];
- for ( TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ) {
- if ( (*libit).startsWith( "-L" ) ) {
- project->variables()["QMAKE_LIBDIR"] += (*libit).mid(2);
- libit = libs.remove( libit );
- } else {
- ++libit;
- }
- }
-
- project->variables()["QMAKE_FILETAGS"] += TQStringList::split(' ',
- "HEADERS SOURCES DEF_FILE RC_FILE TARGET QMAKE_LIBS DESTDIR DLLDESTDIR INCLUDEPATH");
- TQStringList &l = project->variables()["QMAKE_FILETAGS"];
- TQStringList::Iterator it;
- for(it = l.begin(); it != l.end(); ++it) {
- TQStringList &gdmf = project->variables()[(*it)];
- for(TQStringList::Iterator inner = gdmf.begin(); inner != gdmf.end(); ++inner)
- (*inner) = Option::fixPathToTargetOS((*inner), FALSE);
- }
-
- if ( project->isActiveConfig("dll") ) {
- TQString destDir = "";
- if (!project->first("DESTDIR").isEmpty())
- destDir = project->first("DESTDIR") + Option::dir_sep;
- project->variables()["QMAKE_LFLAGS"].append(TQString("-Wl,--out-implib,") +
- destDir + "lib" + project->first("TARGET") + ".a");
- }
-
- if ( !project->variables()["DEF_FILE"].isEmpty() )
- project->variables()["QMAKE_LFLAGS"].append(TQString("-Wl,") + project->first("DEF_FILE"));
-// if(!project->isActiveConfig("incremental"))
-// project->variables()["QMAKE_LFLAGS"].append(TQString("/incremental:no"));
-
-#if 0
- if ( !project->variables()["VERSION"].isEmpty() ) {
- TQString version = project->variables()["VERSION"][0];
- int firstDot = version.find( "." );
- TQString major = version.left( firstDot );
- TQString minor = version.right( version.length() - firstDot - 1 );
- minor.replace( ".", "" );
- project->variables()["QMAKE_LFLAGS"].append( "/VERSION:" + major + "." + minor );
- }
-#endif
-
- if ( !project->variables()["RC_FILE"].isEmpty()) {
- if ( !project->variables()["RES_FILE"].isEmpty()) {
- fprintf(stderr, "Both .rc and .res file specified.\n");
- fprintf(stderr, "Please specify one of them, not both.");
- exit(666);
- }
- project->variables()["RES_FILE"] = project->variables()["RC_FILE"];
- project->variables()["RES_FILE"].first().replace(".rc",".o");
- project->variables()["POST_TARGETDEPS"] += project->variables()["RES_FILE"];
- project->variables()["CLEAN_FILES"] += project->variables()["RES_FILE"];
- }
-
- if ( !project->variables()["RES_FILE"].isEmpty())
- project->variables()["QMAKE_LIBS"] += project->variables()["RES_FILE"];
-
- MakefileGenerator::init();
-
- if ( !project->variables()["VERSION"].isEmpty()) {
- TQStringList l = TQStringList::split('.', project->first("VERSION"));
- project->variables()["VER_MAJ"].append(l[0]);
- project->variables()["VER_MIN"].append(l[1]);
- }
-
- if(project->isActiveConfig("dll")) {
- project->variables()["QMAKE_CLEAN"].append(project->first("DESTDIR") +"lib" + project->first("TARGET") + ".a");
- }
-
- TQStringList &quc = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];
- for(it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- if(tmp_out.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- TQString in = Option::fixPathToTargetOS((*input), FALSE),
- out = tmp_out;
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(project->variables()[(*it) + ".CONFIG"].findIndex("no_link") == -1)
- project->variables()["OBJCOMP"] += out;
- }
- }
- }
-}
-
-void
-MingwMakefileGenerator::writeSubDirs(TQTextStream &t)
-{
- TQString qs ;
- TQTextStream ts (&qs, IO_WriteOnly) ;
- Win32MakefileGenerator::writeSubDirs( ts ) ;
- TQRegExp rx("(\\n\\tcd [^\\n\\t]+)(\\n\\t.+)\\n\\t@cd ..") ;
- rx.setMinimal(TRUE);
- int pos = 0 ;
- while ( -1 != (pos = rx.search( qs, pos)))
- {
- TQString qsMatch = rx.cap(2);
- qsMatch.replace("\n\t"," && \\\n\t");
- qs.replace(pos+rx.cap(1).length(), rx.cap(2).length(), qsMatch );
- pos += (rx.cap(1).length()+qsMatch.length());
- }
- t << qs ;
-}
diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h
deleted file mode 100644
index 51679bf51..000000000
--- a/qmake/generators/win32/mingw_make.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Definition of MingwMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __MINGW_MAKE_H__
-#define __MINGW_MAKE_H__
-
-#include "winmakefile.h"
-
-class MingwMakefileGenerator : public Win32MakefileGenerator
-{
- bool init_flag;
- void writeMingwParts(TQTextStream &);
- void writeSubDirs(TQTextStream &t) ;
-
- bool writeMakefile(TQTextStream &);
- void init();
-
- virtual bool findLibraries();
-
-public:
- MingwMakefileGenerator(TQMakeProject *p);
- ~MingwMakefileGenerator();
-
-};
-
-inline MingwMakefileGenerator::~MingwMakefileGenerator()
-{ }
-
-#endif /* __MINGW_MAKE_H__ */
diff --git a/qmake/generators/win32/msvc_dsp.cpp b/qmake/generators/win32/msvc_dsp.cpp
deleted file mode 100644
index 568ff616f..000000000
--- a/qmake/generators/win32/msvc_dsp.cpp
+++ /dev/null
@@ -1,1092 +0,0 @@
-/****************************************************************************
-**
-** Implementation of DspMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "msvc_dsp.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-
-DspMakefileGenerator::DspMakefileGenerator(TQMakeProject *p) : Win32MakefileGenerator(p), init_flag(FALSE)
-{
-
-}
-
-bool
-DspMakefileGenerator::writeMakefile(TQTextStream &t)
-{
- if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
- /* for now just dump, I need to generated an empty dsp or something.. */
- fprintf(stderr, "Project file not generated because all requirements not met:\n\t%s\n",
- var("QMAKE_FAILED_REQUIREMENTS").latin1());
- return TRUE;
- }
-
- if(project->first("TEMPLATE") == "vcapp" ||
- project->first("TEMPLATE") == "vclib") {
- return writeDspParts(t);
- }
- else if(project->first("TEMPLATE") == "subdirs") {
- writeHeader(t);
- writeSubDirs(t);
- return TRUE;
- }
- return FALSE;
-}
-
-bool
-DspMakefileGenerator::writeDspParts(TQTextStream &t)
-{
- TQString dspfile;
- if ( !project->variables()["DSP_TEMPLATE"].isEmpty() ) {
- dspfile = project->first("DSP_TEMPLATE");
- } else {
- dspfile = project->first("MSVCDSP_TEMPLATE");
- }
- if (dspfile.startsWith("\"") && dspfile.endsWith("\""))
- dspfile = dspfile.mid(1, dspfile.length() - 2);
- TQString dspfile_loc = findTemplate(dspfile);
-
- TQFile file(dspfile_loc);
- if(!file.open(IO_ReadOnly)) {
- fprintf(stderr, "Cannot open dsp file: %s\n", dspfile.latin1());
- return FALSE;
- }
- TQTextStream dsp(&file);
-
- TQString platform = "Win32";
- if ( !project->variables()["QMAKE_PLATFORM"].isEmpty() )
- platform = varGlue("QMAKE_PLATFORM", "", " ", "");
-
- // Setup PCH variables
- precompH = project->first("PRECOMPILED_HEADER");
- TQString namePCH = TQFileInfo(precompH).fileName();
- usePCH = !precompH.isEmpty() && project->isActiveConfig("precompile_header");
- if (usePCH) {
- // Created files
- TQString origTarget = project->first("QMAKE_ORIG_TARGET");
- origTarget.replace(TQRegExp("-"), "_");
- precompObj = "\"$(IntDir)\\" + origTarget + Option::obj_ext + "\"";
- precompPch = "\"$(IntDir)\\" + origTarget + ".pch\"";
- // Add PRECOMPILED_HEADER to HEADERS
- if (!project->variables()["HEADERS"].contains(precompH))
- project->variables()["HEADERS"] += precompH;
- // Add precompile compiler options
- project->variables()["PRECOMPILED_FLAGS_REL"] = "/Yu\"" + namePCH + "\" /FI\"" + namePCH + "\" ";
- project->variables()["PRECOMPILED_FLAGS_DEB"] = "/Yu\"" + namePCH + "\" /FI\"" + namePCH + "\" ";
- // Return to variable pool
- project->variables()["PRECOMPILED_OBJECT"] = precompObj;
- project->variables()["PRECOMPILED_PCH"] = precompPch;
- }
- int rep;
- TQString line;
- while ( !dsp.eof() ) {
- line = dsp.readLine();
- while((rep = line.find(TQRegExp("\\$\\$[a-zA-Z0-9_-]*"))) != -1) {
- TQString torep = line.mid(rep, line.find(TQRegExp("[^\\$a-zA-Z0-9_-]"), rep) - rep);
- TQString variable = torep.right(torep.length()-2);
-
- t << line.left(rep); //output the left side
- line = line.right(line.length() - (rep + torep.length())); //now past the variable
- if(variable == "MSVCDSP_SOURCES") {
- if(project->variables()["SOURCES"].isEmpty())
- continue;
-
- TQString mocpath = var( "QMAKE_MOC" );
- mocpath = mocpath.replace( TQRegExp( "\\..*$" ), "" ) + " ";
-
- TQStringList list = project->variables()["SOURCES"] + project->variables()["DEF_FILE"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- TQStringList::Iterator it;
- for( it = list.begin(); it != list.end(); ++it) {
- beginGroupForFile((*it), t);
- t << "# Begin Source File\n\nSOURCE=" << (*it) << endl;
- if (usePCH && (*it).endsWith(".c"))
- t << "# SUBTRACT CPP /FI\"" << namePCH << "\" /Yu\"" << namePCH << "\" /Fp" << endl;
- if ( project->isActiveConfig("moc") && (*it).endsWith(Option::cpp_moc_ext)) {
- TQString base = (*it);
- base.replace(TQRegExp("\\..*$"), "").upper();
- base.replace(TQRegExp("[^a-zA-Z]"), "_");
-
- TQString build = "\n\n# Begin Custom Build - Moc'ing " + findMocSource((*it)) +
- "...\n" "InputPath=.\\" + (*it) + "\n\n" "\"" + (*it) + "\""
- " : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n"
- "\t" + mocpath + findMocSource((*it)) + " -o " +
- (*it) + "\n\n" "# End Custom Build\n\n";
-
- t << "USERDEP_" << base << "=\".\\" << findMocSource((*it)) << "\" \"$(TQTDIR)\\bin\\moc.exe\"" << endl << endl;
-
- t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build
- << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\""
- << build << "!ENDIF " << endl << endl;
- }
- t << "# End Source File" << endl;
- }
- endGroups(t);
- } else if(variable == "MSVCDSP_IMAGES") {
- if(project->variables()["IMAGES"].isEmpty())
- continue;
- t << "# Begin Source File\n\nSOURCE=" << project->first("QMAKE_IMAGE_COLLECTION") << endl;
- t << "# End Source File" << endl;
- } else if(variable == "MSVCDSP_HEADERS") {
- if(project->variables()["HEADERS"].isEmpty())
- continue;
-
- TQStringList list = project->variables()["HEADERS"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
-// beginGroupForFile((*it), t);
- t << "# Begin Source File\n\nSOURCE=" << (*it) << endl << endl;
- TQString compilePCH;
- TQStringList customDependencies;
- TQString createMOC;
- TQString buildCmdsR, buildCmdsD;
- TQString buildCmds = "\nBuildCmds= \\\n";
- // Create unique baseID
- TQString base = (*it);
- {
- base.replace(TQRegExp("\\..*$"), "").upper();
- base.replace(TQRegExp("[^a-zA-Z]"), "_");
- }
- if (usePCH && precompH.endsWith(*it)) {
- TQString basicBuildCmd = TQString("\tcl.exe /TP /W3 /FD /c /D \"WIN32\" /Yc /Fp\"%1\" /Fo\"%2\" %3 %4 %5 %6 %7 %8 %9 /D \"")
- .arg(precompPch)
- .arg(precompObj)
- .arg(var("MSVCDSP_INCPATH"))
- .arg(var("MSVCDSP_DEFINES"))
- .arg(var("MSVCDSP_CXXFLAGS"));
- buildCmdsR = basicBuildCmd
- .arg("/D \"NDEBUG\"")
- .arg(var("QMAKE_CXXFLAGS_RELEASE"))
- .arg(var("MSVCDSP_MTDEF"))
- .arg(var("MSVCDSP_RELDEFS"));
- buildCmdsD = basicBuildCmd
- .arg("/D \"_DEBUG\" /Od")
- .arg(var("QMAKE_CXXFLAGS_DEBUG"))
- .arg(var("MSVCDSP_MTDEFD"))
- .arg(var("MSVCDSP_DEBUG_OPT"));
- if (project->first("TEMPLATE") == "vcapp") { // App
- buildCmdsR += var("MSVCDSP_WINCONDEF");
- buildCmdsD += var("MSVCDSP_WINCONDEF");
- } else if (project->isActiveConfig("dll")) { // Dll
- buildCmdsR += "_WINDOWS\" /D \"_USRDLL";
- buildCmdsD += "_WINDOWS\" /D \"_USRDLL";
- } else { // Lib
- buildCmdsR += "_LIB";
- buildCmdsD += "_LIB";
- }
- buildCmdsR += "\" /Fd\"$(IntDir)\\\\\" " + (*it) + " \\\n";
- buildCmdsD += "\" /Fd\"$(IntDir)\\\\\" " + (*it) + " \\\n";
-
- compilePCH = precompPch + " : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n $(BuildCmds)\n\n";
-
- TQStringList &tmp = findDependencies(precompH);
- if(!tmp.isEmpty()) // Got Deps for PCH
- customDependencies += tmp;
- }
- if (project->isActiveConfig("moc") && !findMocDestination((*it)).isEmpty()) {
- TQString mocpath = var( "QMAKE_MOC" );
- mocpath = mocpath.replace( TQRegExp( "\\..*$" ), "" ) + " ";
- buildCmds += "\t" + mocpath + (*it) + " -o " + findMocDestination((*it)) + " \\\n";
- createMOC = "\"" + findMocDestination((*it)) + "\" : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n $(BuildCmds)\n\n";
- customDependencies += "\"$(TQTDIR)\\bin\\tqmoc.exe\"";
- }
- if (!createMOC.isEmpty() || !compilePCH.isEmpty()) {
- bool doMOC = !createMOC.isEmpty();
- bool doPCH = !compilePCH.isEmpty();
- TQString build = "\n\n# Begin Custom Build - "+
- TQString(doMOC?"Moc'ing ":"") +
- TQString((doMOC&&doPCH)?" and ":"") +
- TQString(doPCH?"Creating PCH cpp from ":"") +
- (*it) + "...\nInputPath=.\\" + (*it) + "\n\n" +
- buildCmds + "%1\n" +
- createMOC +
- compilePCH +
- "# End Custom Build\n\n";
-
- t << "USERDEP_" << base << "=" << valGlue(customDependencies, "\"", "\" \"", "\"") << endl << endl;
- t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build.arg(buildCmdsR)
- << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build.arg(buildCmdsD)
- << "!ENDIF " << endl << endl;
- }
- t << "# End Source File" << endl;
- }
-// endGroups(t);
- } else if(variable == "MSVCDSP_FORMSOURCES" || variable == "MSVCDSP_FORMHEADERS") {
- if(project->variables()["FORMS"].isEmpty())
- continue;
-
- TQString uiSourcesDir;
- TQString uiHeadersDir;
- if(!project->variables()["UI_DIR"].isEmpty()) {
- uiSourcesDir = project->first("UI_DIR");
- uiHeadersDir = project->first("UI_DIR");
- } else {
- if ( !project->variables()["UI_SOURCES_DIR"].isEmpty() )
- uiSourcesDir = project->first("UI_SOURCES_DIR");
- else
- uiSourcesDir = "";
- if ( !project->variables()["UI_HEADERS_DIR"].isEmpty() )
- uiHeadersDir = project->first("UI_HEADERS_DIR");
- else
- uiHeadersDir = "";
- }
-
- TQStringList list = project->variables()["FORMS"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- TQString ext = variable == "MSVCDSP_FORMSOURCES" ? ".cpp" : ".h";
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString base = (*it);
- int dot = base.findRev(".");
- base.replace( dot, base.length() - dot, ext );
- TQString fname = base;
-
- int lbs = fname.findRev( "\\" );
- TQString fpath;
- if ( lbs != -1 )
- fpath = fname.left( lbs + 1 );
- fname = fname.right( fname.length() - lbs - 1 );
-
- if ( ext == ".cpp" && !uiSourcesDir.isEmpty() )
- fname.prepend(uiSourcesDir);
- else if ( ext == ".h" && !uiHeadersDir.isEmpty() )
- fname.prepend(uiHeadersDir);
- else
- fname = base;
-// beginGroupForFile(fname, t);
- t << "# Begin Source File\n\nSOURCE=" << fname
- << "\n# End Source File" << endl;
- }
-// endGroups(t);
- } else if(variable == "MSVCDSP_TRANSLATIONS" ) {
- if(project->variables()["TRANSLATIONS"].isEmpty())
- continue;
-
- t << "# Begin Group \"Translations\"\n";
- t << "# Prop Default_Filter \"ts\"\n";
-
- TQStringList list = project->variables()["TRANSLATIONS"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString sify = *it;
- sify.replace('/', '\\' );
- TQString base = (*it);
- base.replace(TQRegExp("\\..*$"), "").upper();
- base.replace(TQRegExp("[^a-zA-Z]"), "_");
-
-// beginGroupForFile(sify, t);
- t << "# Begin Source File\n\nSOURCE=" << sify << endl;
- t << "\n# End Source File" << endl;
- }
-// endGroups(t);
- t << "\n# End Group\n";
- } else if (variable == "MSVCDSP_MOCSOURCES" && project->isActiveConfig("moc")) {
- if ( project->variables()["SRCMOC"].isEmpty())
- continue;
-
- TQString mocpath = var( "QMAKE_MOC" );
- mocpath = mocpath.replace( TQRegExp( "\\..*$" ), "" ) + " ";
-
- TQStringList list = project->variables()["SRCMOC"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
-// beginGroupForFile((*it), t);
- t << "# Begin Source File\n\nSOURCE=" << (*it) << endl;
- if ( project->isActiveConfig("moc") && (*it).endsWith(Option::cpp_moc_ext)) {
- TQString base = (*it);
- base.replace(TQRegExp("\\..*$"), "").upper();
- base.replace(TQRegExp("[^a-zA-Z]"), "_");
-
- TQString build = "\n\n# Begin Custom Build - Moc'ing " + findMocSource((*it)) +
- "...\n" "InputPath=.\\" + (*it) + "\n\n" "\"" + (*it) + "\""
- " : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n"
- "\t" + mocpath + findMocSource((*it)) + " -o " +
- (*it) + "\n\n" "# End Custom Build\n\n";
-
- t << "USERDEP_" << base << "=\".\\" << findMocSource((*it)) << "\" \"$(TQTDIR)\\bin\\moc.exe\"" << endl << endl;
-
- t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build
- << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\""
- << build << "!ENDIF " << endl << endl;
- }
- t << "# End Source File" << endl;
- }
-// endGroups(t);
- } else if(variable == "MSVCDSP_PICTURES") {
- if(project->variables()["IMAGES"].isEmpty())
- continue;
-
- t << "# Begin Group \"Images\"\n"
- << "# Prop Default_Filter \"png jpeg bmp xpm\"\n";
-
- TQStringList list = project->variables()["IMAGES"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- TQStringList::Iterator it;
-
- // dump the image list to a file TQUIC can read.
- TQFile f( "images.tmp" );
- f.open( IO_WriteOnly );
- TQTextStream ts( &f );
- for( it = list.begin(); it != list.end(); ++it )
- ts << " " << *it;
- f.close();
-
- // create an output step for images not more than once
- bool imagesBuildDone = FALSE;
- for( it = list.begin(); it != list.end(); ++it ) {
-// beginGroupForFile((*it), t);
- t << "# Begin Source File\n\nSOURCE=" << (*it) << endl;
-
- TQString base = (*it);
- TQString uicpath = var("QMAKE_UIC");
- uicpath = uicpath.replace(TQRegExp("\\..*$"), "") + " ";
-
- if ( !imagesBuildDone ) {
- imagesBuildDone = TRUE;
- TQString build = "\n\n# Begin Custom Build - Creating image collection...\n"
- "InputPath=.\\" + base + "\n\n";
-
- build += "\"" + project->first("QMAKE_IMAGE_COLLECTION") + "\" : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n";
- build += "\t" + uicpath + "-embed " + project->first("QMAKE_ORIG_TARGET") + " -f images.tmp -o "
- + project->first("QMAKE_IMAGE_COLLECTION") + "\n\n";
- build.append("# End Custom Build\n\n");
-
- t << "USERDEP_" << base << "=";
- TQStringList::Iterator it2 = list.begin();
- while ( it2 != list.end() ) {
- t << "\"" << (*it2) << "\"";
- it2++;
- if ( it2 != list.end() )
- t << "\\\n";
- }
- t << endl << endl;
-
- t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Release\"" << build
- << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Debug\"" << build
- << "!ENDIF \n\n" << endl;
- }
-
- t << "# End Source File" << endl;
- }
-// endGroups(t);
- t << "\n# End Group\n";
- } else if(variable == "MSVCDSP_FORMS") {
- if(project->variables()["FORMS"].isEmpty())
- continue;
-
- t << "# Begin Group \"Forms\"\n"
- << "# Prop Default_Filter \"ui\"\n";
-
- TQString uicpath = var("QMAKE_UIC");
- uicpath = uicpath.replace(TQRegExp("\\..*$"), "") + " ";
- TQString mocpath = var( "QMAKE_MOC" );
- mocpath = mocpath.replace( TQRegExp( "\\..*$" ), "" ) + " ";
-
- TQStringList list = project->variables()["FORMS"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString base = (*it);
-// beginGroupForFile(base, t);
- t << "# Begin Source File\n\nSOURCE=" << base << endl;
-
- TQString fname = base;
- fname.replace(".ui", "");
- int lbs = fname.findRev( "\\" );
- TQString fpath;
- if ( lbs != -1 )
- fpath = fname.left( lbs + 1 );
- fname = fname.right( fname.length() - lbs - 1 );
-
- TQString mocFile;
- if(!project->variables()["MOC_DIR"].isEmpty())
- mocFile = project->first("MOC_DIR");
- else
- mocFile = fpath;
-
- TQString uiSourcesDir;
- TQString uiHeadersDir;
- if(!project->variables()["UI_DIR"].isEmpty()) {
- uiSourcesDir = project->first("UI_DIR");
- uiHeadersDir = project->first("UI_DIR");
- } else {
- if ( !project->variables()["UI_SOURCES_DIR"].isEmpty() )
- uiSourcesDir = project->first("UI_SOURCES_DIR");
- else
- uiSourcesDir = fpath;
- if ( !project->variables()["UI_HEADERS_DIR"].isEmpty() )
- uiHeadersDir = project->first("UI_HEADERS_DIR");
- else
- uiHeadersDir = fpath;
- }
-
- t << "USERDEP_" << base << "=\"$(TQTDIR)\\bin\\tqmoc.exe\" \"$(TQTDIR)\\bin\\tquic.exe\"" << endl << endl;
-
- TQString build = "\n\n# Begin Custom Build - TQUic'ing " + base + "...\n"
- "InputPath=.\\" + base + "\n\n" "BuildCmds= \\\n\t" + uicpath + base +
- " -o " + uiHeadersDir + fname + ".h \\\n" "\t" + uicpath + base +
- " -i " + fname + ".h -o " + uiSourcesDir + fname + ".cpp \\\n"
- "\t" + mocpath + " " + uiHeadersDir +
- fname + ".h -o " + mocFile + Option::h_moc_mod + fname + Option::h_moc_ext + " \\\n";
-
- build.append("\n\"" + uiHeadersDir + fname + ".h\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"
- "\t$(BuildCmds)\n\n"
- "\"" + uiSourcesDir + fname + ".cpp\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"
- "\t$(BuildCmds)\n\n"
- "\"" + mocFile + Option::h_moc_mod + fname + Option::h_moc_ext + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"
- "\t$(BuildCmds)\n\n");
-
- build.append("# End Custom Build\n\n");
-
- t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build
- << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build
- << "!ENDIF \n\n" << "# End Source File" << endl;
- }
-// endGroups(t);
- t << "\n# End Group\n";
- } else if(variable == "MSVCDSP_LEXSOURCES") {
- if(project->variables()["LEXSOURCES"].isEmpty())
- continue;
-
- t << "# Begin Group \"Lexables\"\n"
- << "# Prop Default_Filter \"l\"\n";
-
- TQString lexpath = var("QMAKE_LEX") + varGlue("QMAKE_LEXFLAGS", " ", " ", "") + " ";
-
- TQStringList list = project->variables()["LEXSOURCES"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString fname = (*it);
-// beginGroupForFile(fname, t);
- t << "# Begin Source File\n\nSOURCE=" << fname << endl;
- fname.replace(".l", Option::lex_mod + Option::cpp_ext.first());
-
- TQString build = "\n\n# Begin Custom Build - Lex'ing " + (*it) + "...\n"
- "InputPath=.\\" + (*it) + "\n\n"
- "\"" + fname + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"
- "\t" + lexpath + (*it) + "\\\n"
- "\tdel " + fname + "\\\n"
- "\tcopy lex.yy.c " + fname + "\n\n" +
- "# End Custom Build\n\n";
- t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build
- << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build
- << "!ENDIF \n\n" << build
-
- << "# End Source File" << endl;
- }
-// endGroups(t);
- t << "\n# End Group\n";
- } else if(variable == "MSVCDSP_YACCSOURCES") {
- if(project->variables()["YACCSOURCES"].isEmpty())
- continue;
-
- t << "# Begin Group \"Yaccables\"\n"
- << "# Prop Default_Filter \"y\"\n";
-
- TQString yaccpath = var("QMAKE_YACC") + varGlue("QMAKE_YACCFLAGS", " ", " ", "") + " ";
-
- TQStringList list = project->variables()["YACCSOURCES"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- TQString fname = (*it);
-// beginGroupForFile(fname, t);
- t << "# Begin Source File\n\nSOURCE=" << fname << endl;
- fname.replace(".y", Option::yacc_mod);
-
- TQString build = "\n\n# Begin Custom Build - Yacc'ing " + (*it) + "...\n"
- "InputPath=.\\" + (*it) + "\n\n"
- "\"" + fname + Option::cpp_ext.first() + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"
- "\t" + yaccpath + (*it) + "\\\n"
- "\tdel " + fname + Option::h_ext.first() + "\\\n"
- "\tmove y.tab.h " + fname + Option::h_ext.first() + "\n\n" +
- "\tdel " + fname + Option::cpp_ext.first() + "\\\n"
- "\tmove y.tab.c " + fname + Option::cpp_ext.first() + "\n\n" +
- "# End Custom Build\n\n";
-
- t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build
- << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build
- << "!ENDIF \n\n"
- << "# End Source File" << endl;
- }
-// endGroups(t);
- t << "\n# End Group\n";
- } else if( variable == "MSVCDSP_CONFIGMODE" ) {
- if( project->isActiveConfig( "debug" ) )
- t << "Debug";
- else
- t << "Release";
- } else if( variable == "MSVCDSP_IDLSOURCES" ) {
- TQStringList list = project->variables()["MSVCDSP_IDLSOURCES"];
- if(!project->isActiveConfig("flat"))
- list.sort();
- for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) {
- t << "# Begin Source File" << endl << endl;
- t << "SOURCE=" << (*it) << endl;
- t << "# PROP Exclude_From_Build 1" << endl;
- t << "# End Source File" << endl << endl;
- }
- }
- else
- t << var(variable);
- }
- t << line << endl;
- }
- t << endl;
- file.close();
- return TRUE;
-}
-
-
-
-void
-DspMakefileGenerator::init()
-{
- if(init_flag)
- return;
- TQStringList::Iterator it;
- init_flag = TRUE;
-
- const bool thread = project->isActiveConfig("thread");
-
- if ( project->isActiveConfig("stl") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_OFF"];
- }
- if ( project->isActiveConfig("exceptions") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_OFF"];
- }
- if ( project->isActiveConfig("rtti") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_OFF"];
- }
-
-
- /* this should probably not be here, but I'm using it to wrap the .t files */
- if(project->first("TEMPLATE") == "vcapp" )
- project->variables()["QMAKE_APP_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "vclib")
- project->variables()["QMAKE_LIB_FLAG"].append("1");
- if ( project->variables()["QMAKESPEC"].isEmpty() )
- project->variables()["QMAKESPEC"].append( getenv("QMAKESPEC") );
-
- bool is_qt = (project->first("TARGET") == "qt" TQTDLL_POSTFIX || project->first("TARGET") == "tqt-mt" TQTDLL_POSTFIX);
- project->variables()["QMAKE_ORIG_TARGET"] = project->variables()["TARGET"];
-
- TQStringList &configs = project->variables()["CONFIG"];
- if (project->isActiveConfig("shared"))
- project->variables()["DEFINES"].append("QT_DLL");
- if (project->isActiveConfig("qt_dll"))
- if(configs.findIndex("qt") == -1) configs.append("qt");
- if ( project->isActiveConfig("qtopia") ) {
- if(configs.findIndex("qtopialib") == -1)
- configs.append("qtopialib");
- if(configs.findIndex("qtopiainc") == -1)
- configs.append("qtopiainc");
- }
- if ( project->isActiveConfig("qt") ) {
- if ( project->isActiveConfig( "plugin" ) ) {
- project->variables()["CONFIG"].append("dll");
- project->variables()["DEFINES"].append("QT_PLUGIN");
- }
- if ( (project->variables()["DEFINES"].findIndex("QT_NODLL") == -1) &&
- ((project->variables()["DEFINES"].findIndex("QT_MAKEDLL") != -1 ||
- project->variables()["DEFINES"].findIndex("QT_DLL") != -1) ||
- (getenv("QT_DLL") && !getenv("QT_NODLL"))) ) {
- project->variables()["QMAKE_QT_DLL"].append("1");
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() )
- project->variables()["CONFIG"].append("dll");
- }
- }
- if ( project->isActiveConfig("dll") || !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
- project->variables()["CONFIG"].remove("staticlib");
- project->variables()["QMAKE_APP_OR_DLL"].append("1");
- } else {
- project->variables()["CONFIG"].append("staticlib");
- }
-
- if ( project->isActiveConfig("qt") || project->isActiveConfig("opengl") ) {
- project->variables()["CONFIG"].append("windows");
- }
- if ( !project->variables()["VERSION"].isEmpty() ) {
- TQString version = project->variables()["VERSION"][0];
- int firstDot = version.find( "." );
- TQString major = version.left( firstDot );
- TQString minor = version.right( version.length() - firstDot - 1 );
- minor.replace( ".", "" );
- project->variables()["MSVCDSP_VERSION"].append( "/VERSION:" + major + "." + minor );
- }
-
- if ( project->isActiveConfig("qtopiainc") )
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQTOPIA"];
- if ( project->isActiveConfig("qtopialib") ) {
- if(!project->isEmpty("QMAKE_LIBDIR_TQTOPIA"))
- project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_TQTOPIA"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QTOPIA"];
- }
-
- if ( project->isActiveConfig("qt") ) {
- project->variables()["CONFIG"].append("moc");
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQT"];
- project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_TQT"];
-
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {
- project->variables()["DEFINES"].append("QT_MAKEDLL");
- project->variables()["QMAKE_LFLAGS"].append("/base:\"0x39D00000\"");
- }
- } else {
- if( thread )
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_THREAD"];
- else
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {
- int hver = findHighestVersion(project->first("QMAKE_LIBDIR_TQT"), "qt");
- if ( hver == -1 )
- hver = findHighestVersion(project->first("QMAKE_LIBDIR_TQT"), "tqt-mt");
- if(hver != -1) {
- TQString ver;
- ver.sprintf("qt%s" TQTDLL_POSTFIX "%d.lib", (thread ? "-mt" : ""), hver);
- TQStringList &libs = project->variables()["QMAKE_LIBS"];
- for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit)
- (*libit).replace(TQRegExp("qt(-mt)?\\.lib"), ver);
- }
- }
- if ( !project->isActiveConfig("dll") && !project->isActiveConfig("plugin") ) {
- project->variables()["QMAKE_LIBS"] +=project->variables()["QMAKE_LIBS_QT_ENTRY"];
- }
- }
- }
-
- if ( project->isActiveConfig("debug") ) {
- if ( !project->first("OBJECTS_DIR").isEmpty() )
- project->variables()["MSVCDSP_OBJECTSDIRDEB"] = project->first("OBJECTS_DIR");
- else
- project->variables()["MSVCDSP_OBJECTSDIRDEB"] = "Debug";
- project->variables()["MSVCDSP_OBJECTSDIRREL"] = "Release";
- if ( !project->first("DESTDIR").isEmpty() )
- project->variables()["MSVCDSP_TARGETDIRDEB"] = project->first("DESTDIR");
- else
- project->variables()["MSVCDSP_TARGETDIRDEB"] = "Debug";
- project->variables()["MSVCDSP_TARGETDIRREL"] = "Release";
- } else {
- if ( !project->first("OBJECTS_DIR").isEmpty() )
- project->variables()["MSVCDSP_OBJECTSDIRREL"] = project->first("OBJECTS_DIR");
- else
- project->variables()["MSVCDSP_OBJECTSDIRREL"] = "Release";
- project->variables()["MSVCDSP_OBJECTSDIRDEB"] = "Debug";
- if ( !project->first("DESTDIR").isEmpty() )
- project->variables()["MSVCDSP_TARGETDIRREL"] = project->first("DESTDIR");
- else
- project->variables()["MSVCDSP_TARGETDIRREL"] = "Release";
- project->variables()["MSVCDSP_TARGETDIRDEB"] = "Debug";
- }
-
- if ( project->isActiveConfig("opengl") ) {
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_OPENGL"];
- }
- if ( thread ) {
- if(project->isActiveConfig("qt"))
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_THREAD_SUPPORT" );
- if ( project->isActiveConfig("dll") || project->first("TARGET") == "qtmain"
- || !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {
- project->variables()["MSVCDSP_MTDEFD"] += project->variables()["QMAKE_CXXFLAGS_MT_DLLDBG"];
- project->variables()["MSVCDSP_MTDEF"] += project->variables()["QMAKE_CXXFLAGS_MT_DLL"];
- } else {
- // YES we want to use the DLL even in a static build
- project->variables()["MSVCDSP_MTDEFD"] += project->variables()["QMAKE_CXXFLAGS_MT_DBG"];
- project->variables()["MSVCDSP_MTDEF"] += project->variables()["QMAKE_CXXFLAGS_MT"];
- }
- if ( !project->variables()["DEFINES"].contains("QT_DLL") && is_qt
- && project->first("TARGET") != "qtmain" )
- project->variables()["QMAKE_LFLAGS"].append("/NODEFAULTLIB:\"libc\"");
- }
-
- if(project->isActiveConfig("qt")) {
- if ( project->isActiveConfig("accessibility" ) )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_ACCESSIBILITY_SUPPORT");
- if ( project->isActiveConfig("tablet") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_TABLET_SUPPORT");
- }
- if ( project->isActiveConfig("dll") ) {
- project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS_DLL"];
- if ( !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {
- TQString ver_xyz(project->first("VERSION"));
- ver_xyz.replace(".", "");
- project->variables()["TARGET_EXT"].append(ver_xyz + ".dll");
- } else {
- project->variables()["TARGET_EXT"].append(".dll");
- }
- } else {
- project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE"];
- project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE"];
- project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE"];
- project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS"];
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() )
- project->variables()["TARGET_EXT"].append(".exe");
- else
- project->variables()["TARGET_EXT"].append(".lib");
- }
-
- if ( project->isActiveConfig("windows") ) {
- if ( project->isActiveConfig("console") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_CONSOLE"];
- } else {
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"];
- }
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_WINDOWS"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_CONSOLE"];
- }
-
- project->variables()["MSVCDSP_VER"] = "6.00";
- project->variables()["MSVCDSP_DEBUG_OPT"] = "/GZ /ZI";
-
- if(!project->isActiveConfig("incremental")) {
- project->variables()["QMAKE_LFLAGS"].append(TQString("/incremental:no"));
- if ( is_qt )
- project->variables()["MSVCDSP_DEBUG_OPT"] = "/GZ /Zi";
- }
-
- TQString msvcdsp_project;
- if ( project->variables()["TARGET"].count() )
- msvcdsp_project = project->variables()["TARGET"].first();
-
- TQString targetfilename = project->variables()["TARGET"].first();
- project->variables()["TARGET"].first() += project->first("TARGET_EXT");
- if ( project->isActiveConfig("moc") )
- setTQMocAware(TRUE);
-
- project->variables()["QMAKE_LIBS"] += project->variables()["LIBS"];
- project->variables()["QMAKE_FILETAGS"] += TQStringList::split(' ',
- "HEADERS SOURCES DEF_FILE RC_FILE TARGET QMAKE_LIBS DESTDIR DLLDESTDIR INCLUDEPATH");
- TQStringList &l = project->variables()["QMAKE_FILETAGS"];
- for(it = l.begin(); it != l.end(); ++it) {
- TQStringList &gdmf = project->variables()[(*it)];
- for(TQStringList::Iterator inner = gdmf.begin(); inner != gdmf.end(); ++inner)
- (*inner) = Option::fixPathToTargetOS((*inner), FALSE);
- }
-
- MakefileGenerator::init();
- if ( msvcdsp_project.isEmpty() )
- msvcdsp_project = Option::output.name();
-
- msvcdsp_project = msvcdsp_project.right( msvcdsp_project.length() - msvcdsp_project.findRev( "\\" ) - 1 );
- msvcdsp_project = msvcdsp_project.left( msvcdsp_project.findRev( "." ) );
- msvcdsp_project.replace("-", "");
-
- project->variables()["MSVCDSP_PROJECT"].append(msvcdsp_project);
- TQStringList &proj = project->variables()["MSVCDSP_PROJECT"];
-
- for(it = proj.begin(); it != proj.end(); ++it)
- (*it).replace(TQRegExp("\\.[a-zA-Z0-9_]*$"), "");
-
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
- project->variables()["MSVCDSP_TEMPLATE"].append("win32app" + project->first( "DSP_EXTENSION" ) );
- if ( project->isActiveConfig("console") ) {
- project->variables()["MSVCDSP_CONSOLE"].append("Console");
- project->variables()["MSVCDSP_WINCONDEF"].append("_CONSOLE");
- project->variables()["MSVCDSP_DSPTYPE"].append("0x0103");
- } else {
- project->variables()["MSVCDSP_CONSOLE"].clear();
- project->variables()["MSVCDSP_WINCONDEF"].append("_WINDOWS");
- project->variables()["MSVCDSP_DSPTYPE"].append("0x0101");
- }
- } else {
- if ( project->isActiveConfig("dll") ) {
- project->variables()["MSVCDSP_TEMPLATE"].append("win32dll" + project->first( "DSP_EXTENSION" ) );
- } else {
- project->variables()["MSVCDSP_TEMPLATE"].append("win32lib" + project->first( "DSP_EXTENSION" ) );
- }
- }
-
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_WINDOWS"];
-
- processPrlFiles();
-
- // Update -lname to name.lib,
- TQStringList &libList = project->variables()["QMAKE_LIBS"];
- for( TQStringList::Iterator stIt = libList.begin(); stIt != libList.end(); ) {
- TQString s = *stIt;
- if( s.startsWith( "-l" ) ) {
- stIt = libList.remove( stIt );
- stIt = libList.insert( stIt, s.mid( 2 ) + ".lib" );
- } else if( s.startsWith( "-L" ) ) {
- stIt = libList.remove( stIt );
- project->variables()["QMAKE_LIBDIR"].append(TQDir::convertSeparators(s.mid( 2 )));
- } else {
- stIt++;
- }
- }
-
- project->variables()["MSVCDSP_LFLAGS" ] += project->variables()["QMAKE_LFLAGS"];
- if ( !project->variables()["QMAKE_LIBDIR"].isEmpty() )
- project->variables()["MSVCDSP_LFLAGS" ].append(varGlue("QMAKE_LIBDIR","/LIBPATH:\"","\" /LIBPATH:\"","\""));
- project->variables()["MSVCDSP_CXXFLAGS" ] += project->variables()["QMAKE_CXXFLAGS"];
- project->variables()["MSVCDSP_DEFINES"].append(varGlue("DEFINES","/D ","" " /D ",""));
- project->variables()["MSVCDSP_DEFINES"].append(varGlue("PRL_EXPORT_DEFINES","/D ","" " /D ",""));
-
- if (!project->variables()["RES_FILE"].isEmpty())
- project->variables()["QMAKE_LIBS"] += project->variables()["RES_FILE"];
-
- TQStringList &libs = project->variables()["QMAKE_LIBS"];
- for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit) {
- TQString lib = (*libit);
- lib.replace(TQRegExp("\""), "");
- project->variables()["MSVCDSP_LIBS"].append(" \"" + lib + "\"");
- }
-
- TQStringList &incs = project->variables()["INCLUDEPATH"];
- for(TQStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) {
- TQString inc = (*incit);
- inc.replace("\"", "");
- if(inc.endsWith("\\")) // Remove trailing \'s from paths
- inc.truncate(inc.length()-1);
- if (inc.startsWith("\"") && inc.endsWith("\""))
- inc = inc.mid(1, inc.length() - 2);
- project->variables()["MSVCDSP_INCPATH"].append("/I \"" + inc + "\"");
- }
-
- project->variables()["MSVCDSP_INCPATH"].append("/I \"" + specdir() + "\"");
- if ( project->isActiveConfig("qt") ) {
- project->variables()["MSVCDSP_RELDEFS"].append("/D \"TQT_NO_DEBUG\"");
- } else {
- project->variables()["MSVCDSP_RELDEFS"].clear();
- }
-
- TQString dest;
- TQString postLinkStep;
- TQString copyDllStep;
-
- if ( !project->variables()["QMAKE_POST_LINK"].isEmpty() )
- postLinkStep += var("QMAKE_POST_LINK");
-
- if ( !project->variables()["DESTDIR"].isEmpty() ) {
- project->variables()["TARGET"].first().prepend(project->first("DESTDIR"));
- Option::fixPathToTargetOS(project->first("TARGET"));
- dest = project->first("TARGET");
- if ( project->first("TARGET").startsWith("$(TQTDIR)") )
- dest.replace( "$(TQTDIR)", getenv("TQTDIR") );
- project->variables()["MSVCDSP_TARGET"].append(
- TQString("/out:\"") + dest + "\"");
- if ( project->isActiveConfig("dll") ) {
- TQString imp = dest;
- imp.replace(".dll", ".lib");
- project->variables()["MSVCDSP_TARGET"].append(TQString(" /implib:\"") + imp + "\"");
- }
- }
- if ( project->isActiveConfig("dll") && !project->variables()["DLLDESTDIR"].isEmpty() ) {
- TQStringList dlldirs = project->variables()["DLLDESTDIR"];
- if ( dlldirs.count() )
- copyDllStep += "\t";
- for ( TQStringList::Iterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir ) {
- copyDllStep += "copy \"$(TargetPath)\" \"" + *dlldir + "\"\t";
- }
- }
-
- if ( !postLinkStep.isEmpty() || !copyDllStep.isEmpty() ) {
- project->variables()["MSVCDSP_POST_LINK_DBG"].append(
- "# Begin Special Build Tool\n"
- "SOURCE=$(InputPath)\n"
- "PostBuild_Desc=Post Build Step\n"
- "PostBuild_Cmds=" + postLinkStep + copyDllStep + "\n"
- "# End Special Build Tool\n" );
- project->variables()["MSVCDSP_POST_LINK_REL"].append(
- "# Begin Special Build Tool\n"
- "SOURCE=$(InputPath)\n"
- "PostBuild_Desc=Post Build Step\n"
- "PostBuild_Cmds=" + postLinkStep + copyDllStep + "\n"
- "# End Special Build Tool\n" );
- }
-
- if ( !project->variables()["SOURCES"].isEmpty() || !project->variables()["RC_FILE"].isEmpty() ) {
- project->variables()["SOURCES"] += project->variables()["RC_FILE"];
- }
- TQStringList &list = project->variables()["FORMS"];
- for( it = list.begin(); it != list.end(); ++it ) {
- if ( TQFile::exists( *it + ".h" ) )
- project->variables()["SOURCES"].append( *it + ".h" );
- }
- project->variables()["QMAKE_INTERNAL_PRL_LIBS"] << "MSVCDSP_LIBS";
-}
-
-
-TQString
-DspMakefileGenerator::findTemplate(const TQString &file)
-{
- TQString ret;
- if(!TQFile::exists((ret = file)) &&
- !TQFile::exists((ret = TQString(Option::mkfile::qmakespec + "/" + file))) &&
- !TQFile::exists((ret = TQString(getenv("TQTDIR")) + "/mkspecs/win32-msvc/" + file)) &&
- !TQFile::exists((ret = (TQString(getenv("HOME")) + "/.tmake/" + file))))
- return "";
- return ret;
-}
-
-
-void
-DspMakefileGenerator::processPrlVariable(const TQString &var, const TQStringList &l)
-{
- if(var == "QMAKE_PRL_DEFINES") {
- TQStringList &out = project->variables()["MSVCDSP_DEFINES"];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- if(out.findIndex((*it)) == -1)
- out.append((" /D \"" + *it + "\""));
- }
- } else {
- MakefileGenerator::processPrlVariable(var, l);
- }
-}
-
-
-void
-DspMakefileGenerator::beginGroupForFile(TQString file, TQTextStream &t,
- const TQString& filter)
-{
- if(project->isActiveConfig("flat"))
- return;
- fileFixify(file, TQDir::currentDirPath(), TQDir::currentDirPath(), TRUE);
- file = file.section(Option::dir_sep, 0, -2);
- if(file.right(Option::dir_sep.length()) != Option::dir_sep)
- file += Option::dir_sep;
- if(file == currentGroup)
- return;
-
- if(file.isEmpty() || !TQDir::isRelativePath(file)) {
- endGroups(t);
- return;
- }
-
- TQString tempFile = file;
- if(tempFile.startsWith(currentGroup))
- tempFile = tempFile.mid(currentGroup.length());
- int dirSep = currentGroup.findRev( Option::dir_sep );
-
- while( !tempFile.startsWith( currentGroup ) && dirSep != -1 ) {
- currentGroup.truncate( dirSep );
- dirSep = currentGroup.findRev( Option::dir_sep );
- if ( !tempFile.startsWith( currentGroup ) && dirSep != -1 )
- t << "\n# End Group\n";
- }
- if ( !file.startsWith( currentGroup ) ) {
- t << "\n# End Group\n";
- currentGroup = "";
- }
-
- TQStringList dirs = TQStringList::split(Option::dir_sep, file.right( file.length() - currentGroup.length() ) );
- for(TQStringList::Iterator dir_it = dirs.begin(); dir_it != dirs.end(); ++dir_it) {
- t << "# Begin Group \"" << (*dir_it) << "\"\n"
- << "# Prop Default_Filter \"" << filter << "\"\n";
- }
- currentGroup = file;
-}
-
-
-void
-DspMakefileGenerator::endGroups(TQTextStream &t)
-{
- if(project->isActiveConfig("flat"))
- return;
- else if(currentGroup.isEmpty())
- return;
-
- TQStringList dirs = TQStringList::split(Option::dir_sep, currentGroup);
- for(TQStringList::Iterator dir_it = dirs.end(); dir_it != dirs.begin(); --dir_it) {
- t << "\n# End Group\n";
- }
- currentGroup = "";
-}
-
-bool
-DspMakefileGenerator::openOutput(TQFile &file) const
-{
- TQString outdir;
- if(!file.name().isEmpty()) {
- if(TQDir::isRelativePath(file.name()))
- file.setName(Option::output_dir + file.name()); //pwd when qmake was run
- TQFileInfo fi(file);
- if(fi.isDir())
- outdir = file.name() + TQDir::separator();
- }
- if(!outdir.isEmpty() || file.name().isEmpty())
- file.setName(outdir + project->first("TARGET") + project->first("DSP_EXTENSION"));
- if(TQDir::isRelativePath(file.name())) {
- TQString ofile;
- ofile = file.name();
- int slashfind = ofile.findRev('\\');
- if (slashfind == -1) {
- ofile = ofile.replace(TQRegExp("-"), "_");
- } else {
- int hypenfind = ofile.find('-', slashfind);
- while (hypenfind != -1 && slashfind < hypenfind) {
- ofile = ofile.replace(hypenfind, 1, "_");
- hypenfind = ofile.find('-', hypenfind + 1);
- }
- }
- file.setName(Option::fixPathToLocalOS(TQDir::currentDirPath() + Option::dir_sep + ofile));
- }
- return Win32MakefileGenerator::openOutput(file);
-}
diff --git a/qmake/generators/win32/msvc_dsp.h b/qmake/generators/win32/msvc_dsp.h
deleted file mode 100644
index 20915a031..000000000
--- a/qmake/generators/win32/msvc_dsp.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Definition of DspMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __MSVC_DSP_H__
-#define __MSVC_DSP_H__
-
-#include "winmakefile.h"
-#include
-
-class DspMakefileGenerator : public Win32MakefileGenerator
-{
- TQString currentGroup;
- void beginGroupForFile(TQString file, TQTextStream &, const TQString& filter="");
- void endGroups(TQTextStream &);
-
- bool init_flag;
- bool writeDspParts(TQTextStream &);
-
- bool writeMakefile(TQTextStream &);
- TQString findTemplate(const TQString &file);
- void init();
-
-public:
- DspMakefileGenerator(TQMakeProject *p);
- ~DspMakefileGenerator();
-
- bool openOutput(TQFile &file) const;
-
-protected:
- virtual void processPrlVariable(const TQString &, const TQStringList &);
- virtual bool findLibraries();
-
- TQString precompH,
- precompObj, precompPch;
- bool usePCH;
-};
-
-inline DspMakefileGenerator::~DspMakefileGenerator()
-{ }
-
-inline bool DspMakefileGenerator::findLibraries()
-{ return Win32MakefileGenerator::findLibraries("MSVCDSP_LIBS"); }
-
-#endif /* __MSVC_DSP_H__ */
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
deleted file mode 100644
index 7dafb1f60..000000000
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ /dev/null
@@ -1,765 +0,0 @@
-/****************************************************************************
-**
-** Implementation of NmakeMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "msvc_nmake.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-#include
-
-NmakeMakefileGenerator::NmakeMakefileGenerator(TQMakeProject *p) : Win32MakefileGenerator(p), init_flag(FALSE)
-{
-
-}
-
-bool
-NmakeMakefileGenerator::writeMakefile(TQTextStream &t)
-{
- writeHeader(t);
- if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
- { //write the extra unix targets..
- TQStringList &qut = project->variables()["QMAKE_EXTRA_WIN_TARGETS"];
- for(TQStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
- t << *it << " ";
- }
- t << "all clean:" << "\n\t"
- << "@echo \"Some of the required modules ("
- << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t"
- << "@echo \"Skipped.\"" << endl << endl;
- writeMakeQmake(t);
- return TRUE;
- }
-
- if(project->first("TEMPLATE") == "app" ||
- project->first("TEMPLATE") == "lib") {
- writeNmakeParts(t);
- return MakefileGenerator::writeMakefile(t);
- }
- else if(project->first("TEMPLATE") == "subdirs") {
- writeSubDirs(t);
- return TRUE;
- }
- return FALSE;
-}
-
-TQStringList
-&NmakeMakefileGenerator::findDependencies(const TQString &file)
-{
- TQStringList &aList = MakefileGenerator::findDependencies(file);
- // Note: The QMAKE_IMAGE_COLLECTION file have all images
- // as dependency, so don't add precompiled header then
- if (file == project->first("QMAKE_IMAGE_COLLECTION"))
- return aList;
- for(TQStringList::Iterator it = Option::cpp_ext.begin(); it != Option::cpp_ext.end(); ++it) {
- if(file.endsWith(*it)) {
- if(!precompObj.isEmpty() && !aList.contains(precompObj))
- aList += precompObj;
- break;
- }
- }
- return aList;
-}
-
-void
-NmakeMakefileGenerator::writeNmakeParts(TQTextStream &t)
-{
- t << "####### Compiler, tools and options" << endl << endl;
- t << "CC = " << var("QMAKE_CC") << endl;
- t << "CXX = " << var("QMAKE_CXX") << endl;
- t << "LEX = " << var("QMAKE_LEX") << endl;
- t << "YACC = " << var("QMAKE_YACC") << endl;
- t << "CFLAGS = " << var("QMAKE_CFLAGS") << " "
- << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " "
- << varGlue("DEFINES","-D"," -D","") << endl;
- t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " "
- << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " "
- << varGlue("DEFINES","-D"," -D","") << endl;
- t << "LEXFLAGS =" << var("QMAKE_LEXFLAGS") << endl;
- t << "YACCFLAGS =" << var("QMAKE_YACCFLAGS") << endl;
-
- t << "INCPATH = ";
- TQStringList &incs = project->variables()["INCLUDEPATH"];
- for(TQStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) {
- TQString inc = (*incit);
- if (inc.endsWith("\\"))
- inc.truncate(inc.length()-1);
- if (inc.startsWith("\"") && inc.endsWith("\""))
- inc = inc.mid(1, inc.length() - 2);
- t << " -I\"" << inc << "\"";
- }
- t << " -I\"" << specdir() << "\""
- << endl;
- if(!project->variables()["QMAKE_APP_OR_DLL"].isEmpty()) {
- t << "LINK = " << var("QMAKE_LINK") << endl;
- t << "LFLAGS = " << var("QMAKE_LFLAGS");
- if ( !project->variables()["QMAKE_LIBDIR"].isEmpty() )
- t << " " << varGlue("QMAKE_LIBDIR","/LIBPATH:\"","\" /LIBPATH:\"","\"");
- t << endl;
- t << "LIBS = ";
- TQStringList &libs = project->variables()["QMAKE_LIBS"];
- for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit) {
- TQString lib = (*libit);
- if (lib.endsWith("\\"))
- lib.truncate(lib.length()-1);
- t << " \"" << lib << "\"";
- }
- t << endl;
- }
- else {
- t << "LIB = " << var("QMAKE_LIB") << endl;
- }
- t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") :
- Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl;
- t << "TQUIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("tquic") :
- Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl;
- t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") :
- Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl;
- t << "IDC = " << (project->isEmpty("QMAKE_IDC") ? TQString("idc") :
- Option::fixPathToTargetOS(var("QMAKE_IDC"), FALSE)) << endl;
- t << "IDL = " << (project->isEmpty("QMAKE_IDL") ? TQString("midl") :
- Option::fixPathToTargetOS(var("QMAKE_IDL"), FALSE)) << endl;
- t << "ZIP = " << var("QMAKE_ZIP") << endl;
- t << "COPY_FILE = " << var("QMAKE_COPY") << endl;
- t << "COPY_DIR = " << var("QMAKE_COPY") << endl;
- t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl;
- t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl;
- t << "MOVE = " << var("QMAKE_MOVE") << endl;
- t << "CHK_DIR_EXISTS = " << var("QMAKE_CHK_DIR_EXISTS") << endl;
- t << "MKDIR = " << var("QMAKE_MKDIR") << endl;
- t << "INSTALL_FILE= " << var("QMAKE_INSTALL_FILE") << endl;
- t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl;
- t << endl;
-
- t << "####### Files" << endl << endl;
- t << "HEADERS = " << varList("HEADERS") << endl;
- t << "SOURCES = " << varList("SOURCES") << endl;
- t << "OBJECTS = " << varList("OBJECTS") << endl;
- t << "FORMS = " << varList("FORMS") << endl;
- t << "UICDECLS = " << varList("UICDECLS") << endl;
- t << "UICIMPLS = " << varList("UICIMPLS") << endl;
- t << "SRCMOC = " << varList("SRCMOC") << endl;
- t << "OBJMOC = " << varList("OBJMOC") << endl;
-
- TQString extraCompilerDeps;
- if(!project->isEmpty("QMAKE_EXTRA_WIN_COMPILERS")) {
- t << "OBJCOMP = " << varList("OBJCOMP") << endl;
- extraCompilerDeps += " $(OBJCOMP) ";
-
- TQStringList &comps = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];
- for(TQStringList::Iterator compit = comps.begin(); compit != comps.end(); ++compit) {
- TQStringList &vars = project->variables()[(*compit) + ".variables"];
- for(TQStringList::Iterator varit = vars.begin(); varit != vars.end(); ++varit) {
- TQStringList vals = project->variables()[(*varit)];
- if(!vals.isEmpty())
- t << "QMAKE_COMP_" << (*varit) << " = " << valList(vals) << endl;
- }
- }
- }
-
- t << "DIST = " << varList("DISTFILES") << endl;
- t << "TARGET = ";
- if( !project->variables()[ "DESTDIR" ].isEmpty() )
- t << varGlue("TARGET",project->first("DESTDIR"),"",project->first("TARGET_EXT"));
- else
- t << project->variables()[ "TARGET" ].first() << project->variables()[ "TARGET_EXT" ].first();
- t << endl;
- t << endl;
-
- t << "####### Implicit rules" << endl << endl;
- t << ".SUFFIXES: .c";
- TQStringList::Iterator cppit;
- for(cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit)
- t << " " << (*cppit);
- t << endl << endl;
-
- if(!project->isActiveConfig("no_batch")) {
- // Batchmode doesn't use the non implicit rules QMAKE_RUN_CXX & QMAKE_RUN_CC
- project->variables().remove("QMAKE_RUN_CXX");
- project->variables().remove("QMAKE_RUN_CC");
-
- TQDict source_directories;
- source_directories.insert(".", (void*)1);
- TQString directories[] = { TQString("MOC_DIR"), TQString("UI_SOURCES_DIR"), TQString("UI_DIR"), TQString::null };
- for(int y = 0; !directories[y].isNull(); y++) {
- TQString dirTemp = project->first(directories[y]);
- if (dirTemp.endsWith("\\"))
- dirTemp.truncate(dirTemp.length()-1);
- if(!dirTemp.isEmpty())
- source_directories.insert(dirTemp, (void*)1);
- }
- TQString srcs[] = { TQString("SOURCES"), TQString("UICIMPLS"), TQString("SRCMOC"), TQString::null };
- for(int x = 0; !srcs[x].isNull(); x++) {
- TQStringList &l = project->variables()[srcs[x]];
- for(TQStringList::Iterator sit = l.begin(); sit != l.end(); ++sit) {
- TQString sep = "\\";
- if((*sit).find(sep) == -1)
- sep = "/";
- TQString dir = (*sit).section(sep, 0, -2);
- if(!dir.isEmpty() && !source_directories[dir])
- source_directories.insert(dir, (void*)1);
- }
- }
-
- for(TQDictIterator it(source_directories); it.current(); ++it) {
- if(it.currentKey().isEmpty())
- continue;
- for(cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit)
- t << "{" << it.currentKey() << "}" << (*cppit) << "{" << var("OBJECTS_DIR") << "}" << Option::obj_ext << "::\n\t"
- << var("QMAKE_RUN_CXX_IMP_BATCH").replace( TQRegExp( "\\$@" ), var("OBJECTS_DIR") ) << endl << "\t$<" << endl << "<<" << endl << endl;
- t << "{" << it.currentKey() << "}" << ".c{" << var("OBJECTS_DIR") << "}" << Option::obj_ext << "::\n\t"
- << var("QMAKE_RUN_CC_IMP_BATCH").replace( TQRegExp( "\\$@" ), var("OBJECTS_DIR") ) << endl << "\t$<" << endl << "<<" << endl << endl;
- }
- } else {
- for(cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit)
- t << (*cppit) << Option::obj_ext << ":\n\t" << var("QMAKE_RUN_CXX_IMP") << endl << endl;
- t << ".c" << Option::obj_ext << ":\n\t" << var("QMAKE_RUN_CC_IMP") << endl << endl;
- }
-
- t << "####### Build rules" << endl << endl;
- t << "all: " << fileFixify(Option::output.name()) << " " << varGlue("ALL_DEPS"," "," "," ") << "$(TARGET)" << endl << endl;
- t << "$(TARGET): " << var("PRE_TARGETDEPS") << " $(UICDECLS) $(OBJECTS) $(OBJMOC) "
- << extraCompilerDeps << var("POST_TARGETDEPS");
- if(!project->variables()["QMAKE_APP_OR_DLL"].isEmpty()) {
- t << "\n\t" << "$(LINK) $(LFLAGS) /OUT:$(TARGET) @<< " << "\n\t "
- << "$(OBJECTS) $(OBJMOC) $(LIBS)";
- } else {
- t << "\n\t" << "$(LIB) /OUT:$(TARGET) @<<" << "\n\t "
- << "$(OBJECTS) $(OBJMOC)";
- }
- t << extraCompilerDeps;
- t << endl << "<<" << endl;
- if ( !project->variables()["QMAKE_POST_LINK"].isEmpty() )
- t << "\t" << var( "QMAKE_POST_LINK" ) << endl;
- if(project->isActiveConfig("dll") && !project->variables()["DLLDESTDIR"].isEmpty()) {
- TQStringList dlldirs = project->variables()["DLLDESTDIR"];
- for ( TQStringList::Iterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir ) {
- t << "\n\t" << "-$(COPY_FILE) \"$(TARGET)\" " << *dlldir;
- }
- }
- TQString targetfilename = project->variables()["TARGET"].first();
- t << endl << endl;
-
- if(!project->variables()["RC_FILE"].isEmpty()) {
- t << var("RES_FILE") << ": " << var("RC_FILE") << "\n\t"
- << var("QMAKE_RC") << " " << var("RC_FILE") << endl << endl;
- }
-
- t << "mocables: $(SRCMOC)" << endl
- << "uicables: $(UICIMPLS) $(UICDECLS)" << endl << endl;
-
- writeMakeQmake(t);
-
- TQStringList dist_files = Option::mkfile::project_files;
- if(!project->isEmpty("QMAKE_INTERNAL_INCLUDED_FILES"))
- dist_files += project->variables()["QMAKE_INTERNAL_INCLUDED_FILES"];
- if(!project->isEmpty("TRANSLATIONS"))
- dist_files << var("TRANSLATIONS");
- if(!project->isEmpty("FORMS")) {
- TQStringList &forms = project->variables()["FORMS"];
- for(TQStringList::Iterator formit = forms.begin(); formit != forms.end(); ++formit) {
- TQString ui_h = fileFixify((*formit) + Option::h_ext.first());
- if(TQFile::exists(ui_h) )
- dist_files << ui_h;
- }
- }
- t << "dist:" << "\n\t"
- << "$(ZIP) " << var("QMAKE_ORIG_TARGET") << ".zip " << "$(SOURCES) $(HEADERS) $(DIST) $(FORMS) "
- << dist_files.join(" ") << " " << var("TRANSLATIONS") << " " << var("IMAGES") << endl << endl;
-
- t << "uiclean:"
- << varGlue("UICDECLS" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")
- << varGlue("UICIMPLS" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","") << endl;
-
- t << "mocclean:"
- << varGlue("SRCMOC" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")
- << varGlue("OBJMOC" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","") << endl;
-
- t << "clean: uiclean mocclean"
- << varGlue("OBJECTS","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")
- << varGlue("QMAKE_CLEAN","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","\n")
- << varGlue("CLEAN_FILES","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","\n");
- if(!project->isEmpty("IMAGES"))
- t << varGlue("QMAKE_IMAGE_COLLECTION", "\n\t-$(DEL_FILE) ", "\n\t-$(DEL_FILE) ", "");
- t << endl;
-
- // user defined targets
-
- TQStringList::Iterator it;
- TQStringList &qut = project->variables()["QMAKE_EXTRA_WIN_TARGETS"];
- for(it = qut.begin(); it != qut.end(); ++it) {
- TQString targ = var((*it) + ".target"),
- cmd = var((*it) + ".commands"), deps;
- if(targ.isEmpty())
- targ = (*it);
- TQStringList &deplist = project->variables()[(*it) + ".depends"];
- for(TQStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
- TQString dep = var((*dep_it) + ".target");
- if(dep.isEmpty())
- dep = (*dep_it);
- deps += " " + dep;
- }
- if(!project->variables()["QMAKE_NOFORCE"].isEmpty() &&
- project->variables()[(*it) + ".CONFIG"].findIndex("phony") != -1)
- deps += TQString(" ") + "FORCE";
- t << "\n\n" << targ << ":" << deps << "\n\t"
- << cmd;
- }
- t << endl << endl;
-
- TQStringList &quc = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];
- for(it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- TQString tmp_cmd = project->variables()[(*it) + ".commands"].join(" ");
- TQString tmp_dep = project->variables()[(*it) + ".depends"].join(" ");
- TQStringList &vars = project->variables()[(*it) + ".variables"];
- if(tmp_out.isEmpty() || tmp_cmd.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- TQString in = Option::fixPathToTargetOS((*input), FALSE),
- out = tmp_out, cmd = tmp_cmd, deps;
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- cmd.replace("${QMAKE_FILE_BASE}", fi.baseName());
- cmd.replace("${QMAKE_FILE_OUT}", out);
- cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());
- for(TQStringList::Iterator it3 = vars.begin(); it3 != vars.end(); ++it3)
- cmd.replace("$(" + (*it3) + ")", "$(QMAKE_COMP_" + (*it3)+")");
- if(!tmp_dep.isEmpty()) {
- char buff[256];
- TQString dep_cmd = tmp_dep;
- dep_cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(FILE *proc = QT_POPEN(dep_cmd.latin1(), "r")) {
- while(!feof(proc)) {
- int read_in = int(fread(buff, 1, 255, proc));
- if(!read_in)
- break;
- int l = 0;
- for(int i = 0; i < read_in; i++) {
- if(buff[i] == '\n' || buff[i] == ' ') {
- deps += " " + TQCString(buff+l, (i - l) + 1);
- l = i;
- }
- }
- }
- fclose(proc);
- }
- }
- t << out << ": " << in << deps << "\n\t"
- << cmd << endl << endl;
- }
- }
- }
- t << endl;
-
- if(project->variables()["QMAKE_NOFORCE"].isEmpty())
- t << "FORCE:" << endl << endl;
-
- t << "distclean: clean"
- << "\n\t-$(DEL_FILE) $(TARGET)"
- << endl << endl;
-
- // precompiled header
- if(usePCH) {
- TQString precompRule = TQString("-c -Yc -Fp%1 -Fo%2").arg(precompPch).arg(precompObj);
- t << precompObj << ": " << precompH << " " << findDependencies(precompH).join(" \\\n\t\t")
- << "\n\t" << ("$(CXX) " + precompRule + " $(CXXFLAGS) $(INCPATH) -TP ") << precompH << endl << endl;
- }
-}
-
-TQString
-NmakeMakefileGenerator::var(const TQString &value)
-{
- if (usePCH) {
- if ((value == "QMAKE_RUN_CXX_IMP_BATCH"
- || value == "QMAKE_RUN_CXX_IMP"
- || value == "QMAKE_RUN_CXX")) {
- TQFileInfo precompHInfo(precompH);
- TQString precompRule = TQString("-c -FI%1 -Yu%2 -Fp%3")
- .arg(precompHInfo.fileName())
- .arg(precompHInfo.fileName())
- .arg(precompPch);
- TQString p = MakefileGenerator::var(value);
- p.replace("-c", precompRule);
- // Cannot use -Gm with -FI & -Yu, as this gives an
- // internal compiler error, on the newer compilers
- p.remove("-Gm");
- return p;
- } else if (value == "QMAKE_CXXFLAGS") {
- // Remove internal compiler error option
- return MakefileGenerator::var(value).remove("-Gm");
- }
- }
-
- // Normal val
- return MakefileGenerator::var(value);
-}
-
-void
-NmakeMakefileGenerator::init()
-{
- if(init_flag)
- return;
- init_flag = TRUE;
-
- /* this should probably not be here, but I'm using it to wrap the .t files */
- if(project->first("TEMPLATE") == "app")
- project->variables()["QMAKE_APP_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "lib")
- project->variables()["QMAKE_LIB_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "subdirs") {
- MakefileGenerator::init();
- if(project->variables()["MAKEFILE"].isEmpty())
- project->variables()["MAKEFILE"].append("Makefile");
- if(project->variables()["QMAKE"].isEmpty())
- project->variables()["QMAKE"].append("qmake");
- return;
- }
-
- if(project->isEmpty("QMAKE_INSTALL_FILE"))
- project->variables()["QMAKE_INSTALL_FILE"].append("$(COPY_FILE)");
- if(project->isEmpty("QMAKE_INSTALL_DIR"))
- project->variables()["QMAKE_INSTALL_DIR"].append("$(COPY_DIR)");
-
- bool is_qt = (project->first("TARGET") == "qt" TQTDLL_POSTFIX || project->first("TARGET") == "tqt-mt" TQTDLL_POSTFIX);
- project->variables()["QMAKE_ORIG_TARGET"] = project->variables()["TARGET"];
-
- TQString targetfilename = project->variables()["TARGET"].first();
- TQStringList &configs = project->variables()["CONFIG"];
- if (project->isActiveConfig("qt") && project->isActiveConfig("shared"))
- project->variables()["DEFINES"].append("QT_DLL");
- if (project->isActiveConfig("qt_dll"))
- if(configs.findIndex("qt") == -1) configs.append("qt");
- if ( project->isActiveConfig("qtopia") ) {
- if(configs.findIndex("qtopialib") == -1)
- configs.append("qtopialib");
- if(configs.findIndex("qtopiainc") == -1)
- configs.append("qtopiainc");
- }
- if ( project->isActiveConfig("qt") ) {
- if ( project->isActiveConfig( "plugin" ) ) {
- project->variables()["CONFIG"].append("dll");
- if(project->isActiveConfig("qt"))
- project->variables()["DEFINES"].append("QT_PLUGIN");
- }
- if ( (project->variables()["DEFINES"].findIndex("QT_NODLL") == -1) &&
- ((project->variables()["DEFINES"].findIndex("QT_MAKEDLL") != -1 ||
- project->variables()["DEFINES"].findIndex("QT_DLL") != -1) ||
- (getenv("QT_DLL") && !getenv("QT_NODLL"))) ) {
- project->variables()["QMAKE_QT_DLL"].append("1");
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() )
- project->variables()["CONFIG"].append("dll");
- }
- if ( project->isActiveConfig("thread") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_THREAD_SUPPORT");
- if ( project->isActiveConfig("accessibility" ) )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_ACCESSIBILITY_SUPPORT");
- if ( project->isActiveConfig("tablet") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_TABLET_SUPPORT");
- }
- if ( project->isActiveConfig("dll") || !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
- project->variables()["CONFIG"].remove("staticlib");
- project->variables()["QMAKE_APP_OR_DLL"].append("1");
- } else {
- project->variables()["CONFIG"].append("staticlib");
- }
- if ( project->isActiveConfig("warn_off") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_OFF"];
- } else if ( project->isActiveConfig("warn_on") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_ON"];
- }
- if ( project->isActiveConfig("debug") ) {
- if ( project->isActiveConfig("thread") ) {
- // use the DLL RT even here
- if ( project->variables()["DEFINES"].contains("QT_DLL") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DLLDBG"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DLLDBG"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DBG"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DBG"];
- }
- }
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_DEBUG"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_DEBUG"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_DEBUG"];
- } else {
- if ( project->isActiveConfig("thread") ) {
- if ( project->variables()["DEFINES"].contains("QT_DLL") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DLL"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DLL"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT"];
- }
- }
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RELEASE"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RELEASE"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_RELEASE"];
- }
- if ( project->isActiveConfig("thread") && !project->variables()["DEFINES"].contains("QT_DLL")
- && !is_qt && project->first("TARGET") != "qtmain") {
- project->variables()["QMAKE_LFLAGS"].append("/NODEFAULTLIB:\"libc\"");
- }
-
- if ( !project->variables()["QMAKE_INCDIR"].isEmpty())
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR"];
- if ( project->isActiveConfig("qt") || project->isActiveConfig("opengl") )
- project->variables()["CONFIG"].append("windows");
- if ( project->isActiveConfig("qtopiainc") )
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQTOPIA"];
- if ( project->isActiveConfig("qtopialib") ) {
- if(!project->isEmpty("QMAKE_LIBDIR_TQTOPIA"))
- project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_TQTOPIA"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QTOPIA"];
- }
- if ( project->isActiveConfig("qt") ) {
- project->variables()["CONFIG"].append("moc");
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQT"];
- project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_TQT"];
- if ( !project->isActiveConfig("debug") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_NO_DEBUG");
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty()) {
- project->variables()["DEFINES"].append("QT_MAKEDLL");
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_QT_DLL"];
- }
- } else {
- if(project->isActiveConfig("thread"))
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_THREAD"];
- else
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {
- int hver = findHighestVersion(project->first("QMAKE_LIBDIR_TQT"), "qt");
- if ( hver == -1 )
- hver = findHighestVersion(project->first("QMAKE_LIBDIR_TQT"), "tqt-mt");
- if(hver != -1) {
- TQString ver;
- ver.sprintf("qt%s" TQTDLL_POSTFIX "%d.lib", (project->isActiveConfig("thread") ? "-mt" : ""), hver);
- TQStringList &libs = project->variables()["QMAKE_LIBS"];
- for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit)
- (*libit).replace(TQRegExp("qt(-mt)?\\.lib"), ver);
- }
- }
- if ( !project->isActiveConfig("dll") && !project->isActiveConfig("plugin") ) {
- project->variables()["QMAKE_LIBS"] +=project->variables()["QMAKE_LIBS_QT_ENTRY"];
- }
- }
- }
- if ( project->isActiveConfig("opengl") ) {
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_OPENGL"];
- }
- if ( project->isActiveConfig("dll") ) {
- project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE_DLL"];
- project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS_DLL"];
- if ( !project->variables()["QMAKE_LIB_FLAG"].isEmpty()) {
- project->variables()["TARGET_EXT"].append(
- TQStringList::split('.',project->first("VERSION")).join("") + ".dll");
- } else {
- project->variables()["TARGET_EXT"].append(".dll");
- }
- } else {
- project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE"];
- project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE"];
- project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE"];
- project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS"];
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty()) {
- project->variables()["TARGET_EXT"].append(".exe");
- } else {
- project->variables()["TARGET_EXT"].append(".lib");
- }
- }
- if ( project->isActiveConfig("windows") ) {
- if ( project->isActiveConfig("console") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_CONSOLE"];
- } else {
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"];
- }
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_WINDOWS"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"];
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_CONSOLE"];
- }
- if ( project->isActiveConfig("stl") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_OFF"];
- }
- if ( project->isActiveConfig("exceptions") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_OFF"];
- }
- if ( project->isActiveConfig("rtti") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_OFF"];
- }
-
-
- if ( project->isActiveConfig("moc") )
- setTQMocAware(TRUE);
- project->variables()["QMAKE_LIBS"] += project->variables()["LIBS"];
-
- TQStringList &libList = project->variables()["QMAKE_LIBS"];
- for( TQStringList::Iterator stIt = libList.begin(); stIt != libList.end(); ) {
- TQString s = *stIt;
- if( s.startsWith( "-l" ) ) {
- stIt = libList.remove( stIt );
- stIt = libList.insert( stIt, s.mid( 2 ) + ".lib" );
- } else if( s.startsWith( "-L" ) ) {
- stIt = libList.remove( stIt );
- project->variables()["QMAKE_LIBDIR"].append(TQDir::convertSeparators(s.mid( 2 )));
- } else {
- stIt++;
- }
- }
-
- project->variables()["QMAKE_FILETAGS"] += TQStringList::split(' ',
- "HEADERS SOURCES DEF_FILE RC_FILE TARGET QMAKE_LIBS DESTDIR DLLDESTDIR INCLUDEPATH");
- TQStringList &l = project->variables()["QMAKE_FILETAGS"];
- TQStringList::Iterator it;
- for(it = l.begin(); it != l.end(); ++it) {
- TQStringList &gdmf = project->variables()[(*it)];
- for(TQStringList::Iterator inner = gdmf.begin(); inner != gdmf.end(); ++inner)
- (*inner) = Option::fixPathToTargetOS((*inner), FALSE);
- }
-
- if ( !project->variables()["DEF_FILE"].isEmpty() )
- project->variables()["QMAKE_LFLAGS"].append(TQString("/DEF:") + project->first("DEF_FILE"));
- if(!project->isActiveConfig("incremental"))
- project->variables()["QMAKE_LFLAGS"].append(TQString("/incremental:no"));
-
- if ( !project->variables()["VERSION"].isEmpty() ) {
- TQString version = project->variables()["VERSION"][0];
- int firstDot = version.find( "." );
- TQString major = version.left( firstDot );
- TQString minor = version.right( version.length() - firstDot - 1 );
- minor.replace( ".", "" );
- project->variables()["QMAKE_LFLAGS"].append( "/VERSION:" + major + "." + minor );
- }
- if ( !project->variables()["RC_FILE"].isEmpty()) {
- if ( !project->variables()["RES_FILE"].isEmpty()) {
- fprintf(stderr, "Both .rc and .res file specified.\n");
- fprintf(stderr, "Please specify one of them, not both.");
- exit(666);
- }
- project->variables()["RES_FILE"] = project->variables()["RC_FILE"];
- project->variables()["RES_FILE"].first().replace(".rc",".res");
- project->variables()["POST_TARGETDEPS"] += project->variables()["RES_FILE"];
- project->variables()["CLEAN_FILES"] += project->variables()["RES_FILE"];
- }
- if ( !project->variables()["RES_FILE"].isEmpty())
- project->variables()["QMAKE_LIBS"] += project->variables()["RES_FILE"];
-
- // Base class init!
- MakefileGenerator::init();
-
- // Setup PCH variables
- precompH = project->first("PRECOMPILED_HEADER");
- usePCH = !precompH.isEmpty() && project->isActiveConfig("precompile_header");
- if (usePCH) {
- // Created files
- precompObj = var("OBJECTS_DIR") + project->first("TARGET") + "_pch" + Option::obj_ext;
- precompPch = var("OBJECTS_DIR") + project->first("TARGET") + "_pch.pch";
- // Add linking of precompObj (required for whole precompiled classes)
- project->variables()["OBJECTS"] += precompObj;
- // Add pch file to cleanup
- project->variables()["QMAKE_CLEAN"] += precompPch;
- // Return to variable pool
- project->variables()["PRECOMPILED_OBJECT"] = precompObj;
- project->variables()["PRECOMPILED_PCH"] = precompPch;
- }
-
- if ( !project->variables()["VERSION"].isEmpty()) {
- TQStringList l = TQStringList::split('.', project->first("VERSION"));
- project->variables()["VER_MAJ"].append(l[0]);
- project->variables()["VER_MIN"].append(l[1]);
- }
-
- TQString version = TQStringList::split('.', project->first("VERSION")).join("");
- if(project->isActiveConfig("dll")) {
- project->variables()["QMAKE_CLEAN"].append(project->first("DESTDIR") + project->first("TARGET") + version + ".exp");
- }
- if(project->isActiveConfig("debug")) {
- project->variables()["QMAKE_CLEAN"].append(project->first("DESTDIR") + project->first("TARGET") + version + ".pdb");
- project->variables()["QMAKE_CLEAN"].append(project->first("DESTDIR") + project->first("TARGET") + version + ".ilk");
- project->variables()["QMAKE_CLEAN"].append("vc*.pdb");
- project->variables()["QMAKE_CLEAN"].append("vc*.idb");
- }
-
- TQStringList &quc = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];
- for(it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- if(tmp_out.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- TQString in = Option::fixPathToTargetOS((*input), FALSE),
- out = tmp_out;
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(project->variables()[(*it) + ".CONFIG"].findIndex("no_link") == -1)
- project->variables()["OBJCOMP"] += out;
- }
- }
- }
-}
diff --git a/qmake/generators/win32/msvc_nmake.h b/qmake/generators/win32/msvc_nmake.h
deleted file mode 100644
index 875d04074..000000000
--- a/qmake/generators/win32/msvc_nmake.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Definition of NmakeMakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __MSVC_NMAKE_H__
-#define __MSVC_NMAKE_H__
-
-#include "winmakefile.h"
-
-class NmakeMakefileGenerator : public Win32MakefileGenerator
-{
- bool init_flag;
- void writeNmakeParts(TQTextStream &);
-
- bool writeMakefile(TQTextStream &);
- void init();
-
-protected:
- TQStringList &findDependencies(const TQString &file);
- TQString var(const TQString &value);
- TQString precompH, precompObj, precompPch;
- bool usePCH;
-
-public:
- NmakeMakefileGenerator(TQMakeProject *p);
- ~NmakeMakefileGenerator();
-
-};
-
-inline NmakeMakefileGenerator::~NmakeMakefileGenerator()
-{ }
-
-#endif /* __MSVC_NMAKE_H__ */
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
deleted file mode 100644
index 1b17cdfde..000000000
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ /dev/null
@@ -1,2226 +0,0 @@
-/****************************************************************************
-**
-** Implementation of VCProject class.
-**
-** Copyright (C) 2002-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "msvc_objectmodel.h"
-#include "msvc_vcproj.h"
-#include
-#include
-#include
-
-extern DotNET which_dotnet_version();
-
-// XML Tags ---------------------------------------------------------
-const char* _xmlInit = "";
-const char* _begConfiguration = "\n\t\t";
-return strm;
-}
-
-bool VCCLCompilerTool::parseOption( const char* option )
-{
- // skip index 0 ('/' or '-')
- char first = option[1];
- char second = option[2];
- char third = option[3];
- char fourth = option[4];
- bool found = TRUE;
-
- switch ( first ) {
- case '?':
- case 'h':
- tqWarning( "Generator: Option '/?', '/help': MSVC.NET projects do not support outputting help info" );
- found = FALSE;
- break;
- case '@':
- tqWarning( "Generator: Option '/@': MSVC.NET projects do not support the use of a response file" );
- found = FALSE;
- break;
- case 'l':
- tqWarning( "Generator: Option '/link': qmake generator does not support passing link options through the compiler tool" );
- found = FALSE;
- break;
- case 'A':
- if ( second != 'I' ) {
- found = FALSE; break;
- }
- AdditionalUsingDirectories += option+3;
- break;
- case 'C':
- KeepComments = _True;
- break;
- case 'D':
- PreprocessorDefinitions += option+2;
- break;
- case 'E':
- if ( second == 'H' ) {
- if ( third == 'a'
- || (third == 'c' && fourth != 's')
- || (third == 's' && fourth != 'c') ) {
- // ExceptionHandling must be false, or it will override
- // with an /EHsc option
- ExceptionHandling = _False;
- AdditionalOptions += option;
- break;
- } else if ( (third == 'c' && fourth == 's')
- || (third == 's' && fourth == 'c') ) {
- ExceptionHandling = _True;
- AdditionalOptions += option;
- break;
- }
- found = FALSE; break;
- }
- GeneratePreprocessedFile = preprocessYes;
- break;
- case 'F':
- if ( second <= '9' && second >= '0' ) {
- AdditionalOptions += option;
- break;
- } else {
- switch ( second ) {
- case 'A':
- if ( third == 'c' ) {
- AssemblerOutput = asmListingAsmMachine;
- if ( fourth == 's' )
- AssemblerOutput = asmListingAsmMachineSrc;
- } else if ( third == 's' ) {
- AssemblerOutput = asmListingAsmSrc;
- } else {
- AssemblerOutput = asmListingAssemblyOnly;
- }
- break;
- case 'a':
- AssemblerListingLocation = option+3;
- break;
- case 'I':
- ForcedIncludeFiles += option+3;
- break;
- case 'R':
- BrowseInformation = brAllInfo;
- BrowseInformationFile = option+3;
- break;
- case 'r':
- BrowseInformation = brNoLocalSymbols;
- BrowseInformationFile = option+3;
- break;
- case 'U':
- ForcedUsingFiles += option+3;
- break;
- case 'd':
- ProgramDataBaseFileName = option+3;
- break;
- case 'e':
- OutputFile = option+3;
- break;
- case 'm':
- AdditionalOptions += option;
- break;
- case 'o':
- ObjectFile = option+3;
- break;
- case 'p':
- PrecompiledHeaderFile = option+3;
- break;
- case 'x':
- ExpandAttributedSource = _True;
- break;
- default:
- found = FALSE; break;
- }
- }
- break;
- case 'G':
- switch ( second ) {
- case '3':
- case '4':
- tqWarning( "Option '/G3' and '/G4' were phased out in Visual C++ 5.0" );
- found = FALSE; break;
- case '5':
- OptimizeForProcessor = procOptimizePentium;
- break;
- case '6':
- case 'B':
- OptimizeForProcessor = procOptimizePentiumProAndAbove;
- break;
- case 'A':
- OptimizeForWindowsApplication = _True;
- break;
- case 'F':
- StringPooling = _True;
- break;
- case 'H':
- AdditionalOptions += option;
- break;
- case 'L':
- WholeProgramOptimization = _True;
- if ( third == '-' )
- WholeProgramOptimization = _False;
- break;
- case 'R':
- RuntimeTypeInfo = _True;
- if ( third == '-' )
- RuntimeTypeInfo = _False;
- break;
- case 'S':
- BufferSecurityCheck = _True;
- break;
- case 'T':
- EnableFiberSafeOptimizations = _True;
- break;
- case 'X':
- // ExceptionHandling == true will override with
- // an /EHsc option, which is correct with /GX
- ExceptionHandling = _True; // Fall-through
- case 'Z':
- case 'e':
- case 'h':
- AdditionalOptions += option;
- break;
- case 'd':
- CallingConvention = callConventionCDecl;
- break;
- case 'f':
- StringPooling = _True;
- AdditionalOptions += option;
- break;
- case 'm':
- MinimalRebuild = _True;
- if ( third == '-' )
- MinimalRebuild = _False;
- break;
- case 'r':
- CallingConvention = callConventionFastCall;
- break;
- case 's':
- // Warning: following [num] is not used,
- // were should we put it?
- BufferSecurityCheck = _True;
- break;
- case 'y':
- EnableFunctionLevelLinking = _True;
- break;
- case 'z':
- CallingConvention = callConventionStdCall;
- break;
- default:
- found = FALSE; break;
- }
- break;
- case 'H':
- AdditionalOptions += option;
- break;
- case 'I':
- AdditionalIncludeDirectories += option+2;
- break;
- case 'L':
- if ( second == 'D' ) {
- AdditionalOptions += option;
- break;
- }
- found = FALSE; break;
- case 'M':
- if ( second == 'D' ) {
- RuntimeLibrary = rtMultiThreadedDLL;
- if ( third == 'd' )
- RuntimeLibrary = rtMultiThreadedDebugDLL;
- break;
- } else if ( second == 'L' ) {
- RuntimeLibrary = rtSingleThreaded;
- if ( third == 'd' )
- RuntimeLibrary = rtSingleThreadedDebug;
- break;
- } else if ( second == 'T' ) {
- RuntimeLibrary = rtMultiThreaded;
- if ( third == 'd' )
- RuntimeLibrary = rtMultiThreadedDebug;
- break;
- }
- found = FALSE; break;
- case 'O':
- switch ( second ) {
- case '1':
- Optimization = optimizeMinSpace;
- break;
- case '2':
- Optimization = optimizeMaxSpeed;
- break;
- case 'a':
- AdditionalOptions += option;
- break;
- case 'b':
- if ( third == '0' )
- InlineFunctionExpansion = expandDisable;
- else if ( third == '1' )
- InlineFunctionExpansion = expandOnlyInline;
- else if ( third == '2' )
- InlineFunctionExpansion = expandAnySuitable;
- else
- found = FALSE;
- break;
- case 'd':
- Optimization = optimizeDisabled;
- break;
- case 'g':
- GlobalOptimizations = _True;
- break;
- case 'i':
- EnableIntrinsicFunctions = _True;
- break;
- case 'p':
- ImproveFloatingPointConsistency = _True;
- if ( third == '-' )
- ImproveFloatingPointConsistency = _False;
- break;
- case 's':
- FavorSizeOrSpeed = favorSize;
- break;
- case 't':
- FavorSizeOrSpeed = favorSpeed;
- break;
- case 'w':
- AdditionalOptions += option;
- break;
- case 'x':
- Optimization = optimizeFull;
- break;
- case 'y':
- OmitFramePointers = _True;
- if ( third == '-' )
- OmitFramePointers = _False;
- break;
- default:
- found = FALSE; break;
- }
- break;
- case 'P':
- GeneratePreprocessedFile = preprocessYes;
- break;
- case 'Q':
- if ( second == 'I' ) {
- AdditionalOptions += option;
- break;
- }
- found = FALSE; break;
- case 'R':
- if ( second == 'T' && third == 'C' ) {
- if ( fourth == '1' )
- BasicRuntimeChecks = runtimeBasicCheckAll;
- else if ( fourth == 'c' )
- SmallerTypeCheck = _True;
- else if ( fourth == 's' )
- BasicRuntimeChecks = runtimeCheckStackFrame;
- else if ( fourth == 'u' )
- BasicRuntimeChecks = runtimeCheckUninitVariables;
- else
- found = FALSE; break;
- }
- break;
- case 'T':
- if ( second == 'C' ) {
- CompileAs = compileAsC;
- } else if ( second == 'P' ) {
- CompileAs = compileAsCPlusPlus;
- } else {
- tqWarning( "Generator: Options '/Tp' and '/Tc' are not supported by qmake" );
- found = FALSE; break;
- }
- break;
- case 'U':
- UndefinePreprocessorDefinitions += option+2;
- break;
- case 'V':
- AdditionalOptions += option;
- break;
- case 'W':
- switch ( second ) {
- case 'a':
- case '4':
- WarningLevel = warningLevel_4;
- break;
- case '3':
- WarningLevel = warningLevel_3;
- break;
- case '2':
- WarningLevel = warningLevel_2;
- break;
- case '1':
- WarningLevel = warningLevel_1;
- break;
- case '0':
- WarningLevel = warningLevel_0;
- break;
- case 'L':
- AdditionalOptions += option;
- break;
- case 'X':
- WarnAsError = _True;
- break;
- case 'p':
- if ( third == '6' && fourth == '4' ) {
- Detect64BitPortabilityProblems = _True;
- break;
- }
- // Fallthrough
- default:
- found = FALSE; break;
- }
- break;
- case 'X':
- IgnoreStandardIncludePath = _True;
- break;
- case 'Y':
- switch ( second ) {
- case '\0':
- case '-':
- AdditionalOptions += option;
- break;
- case 'X':
- UsePrecompiledHeader = pchGenerateAuto;
- PrecompiledHeaderFile = option+3;
- break;
- case 'c':
- UsePrecompiledHeader = pchCreateUsingSpecific;
- PrecompiledHeaderFile = option+3;
- break;
- case 'd':
- case 'l':
- AdditionalOptions =+ option;
- break;
- case 'u':
- UsePrecompiledHeader = pchUseUsingSpecific;
- PrecompiledHeaderFile = option+3;
- break;
- default:
- found = FALSE; break;
- }
- break;
- case 'Z':
- switch ( second ) {
- case '7':
- DebugInformationFormat = debugOldStyleInfo;
- break;
- case 'I':
- DebugInformationFormat = debugEditAndContinue;
- break;
- case 'd':
- DebugInformationFormat = debugLineInfoOnly;
- break;
- case 'i':
- DebugInformationFormat = debugEnabled;
- break;
- case 'l':
- DebugInformationFormat = debugEditAndContinue;
- break;
- case 'a':
- DisableLanguageExtensions = _True;
- break;
- case 'e':
- DisableLanguageExtensions = _False;
- break;
- case 'c':
- if ( third == ':' ) {
- if ( fourth == 'f' )
- ForceConformanceInForLoopScope = _True;
- else if ( fourth == 'w' )
- TreatWChar_tAsBuiltInType = _True;
- else
- found = FALSE;
- } else {
- found = FALSE; break;
- }
- break;
- case 'g':
- case 'm':
- case 's':
- AdditionalOptions += option;
- break;
- case 'p':
- switch ( third )
- {
- case '\0':
- case '1':
- StructMemberAlignment = alignSingleByte;
- if ( fourth == '6' )
- StructMemberAlignment = alignSixteenBytes;
- break;
- case '2':
- StructMemberAlignment = alignTwoBytes;
- break;
- case '4':
- StructMemberAlignment = alignFourBytes;
- break;
- case '8':
- StructMemberAlignment = alignEightBytes;
- break;
- default:
- found = FALSE; break;
- }
- break;
- default:
- found = FALSE; break;
- }
- break;
- case 'c':
- if ( second == '\0' ) {
- CompileOnly = _True;
- } else if ( second == 'l' ) {
- if ( *(option+5) == 'n' ) {
- CompileAsManaged = managedAssembly;
- TurnOffAssemblyGeneration = _True;
- } else {
- CompileAsManaged = managedAssembly;
- }
- } else {
- found = FALSE; break;
- }
- break;
- case 'd':
- if ( second != 'r' ) {
- found = FALSE; break;
- }
- CompileAsManaged = managedAssembly;
- break;
- case 'n':
- if ( second == 'o' && third == 'B' && fourth == 'o' ) {
- AdditionalOptions += "/noBool";
- break;
- }
- if ( second == 'o' && third == 'l' && fourth == 'o' ) {
- SuppressStartupBanner = _True;
- break;
- }
- found = FALSE; break;
- case 'o':
- if ( second == 'p' && third == 'e' && fourth == 'n' ) {
- OpenMP = _True;
- break;
- }
- found = FALSE; break;
- case 's':
- if ( second == 'h' && third == 'o' && fourth == 'w' ) {
- ShowIncludes = _True;
- break;
- }
- found = FALSE; break;
- case 'u':
- UndefineAllPreprocessorDefinitions = _True;
- break;
- case 'v':
- if ( second == 'd' || second == 'm' ) {
- AdditionalOptions += option;
- break;
- }
- found = FALSE; break;
- case 'w':
- switch ( second ) {
- case '\0':
- WarningLevel = warningLevel_0;
- break;
- case 'd':
- DisableSpecificWarnings += option+3;
- break;
- default:
- AdditionalOptions += option;
- }
- break;
- default:
- found = FALSE; break;
- }
- if( !found )
- warn_msg( WarnLogic, "Could not parse Compiler option: %s", option );
- return TRUE;
-}
-
-// VCLinkerTool -----------------------------------------------------
-VCLinkerTool::VCLinkerTool()
- : EnableCOMDATFolding( optFoldingDefault ),
- GenerateDebugInformation( unset ),
- GenerateMapFile( unset ),
- HeapCommitSize( -1 ),
- HeapReserveSize( -1 ),
- IgnoreAllDefaultLibraries( unset ),
- IgnoreEmbeddedIDL( unset ),
- IgnoreImportLibrary( _True ),
- LargeAddressAware( addrAwareDefault ),
- LinkDLL( unset ),
- LinkIncremental( linkIncrementalDefault ),
- LinkTimeCodeGeneration( unset ),
- MapExports( unset ),
- MapLines( unset ),
- OptimizeForWindows98( optWin98Default ),
- OptimizeReferences( optReferencesDefault ),
- RegisterOutput( unset ),
- ResourceOnlyDLL( unset ),
- SetChecksum( unset ),
- ShowProgress( linkProgressNotSet ),
- StackCommitSize( -1 ),
- StackReserveSize( -1 ),
- SubSystem( subSystemNotSet ),
- SupportUnloadOfDelayLoadedDLL( unset ),
- SuppressStartupBanner( unset ),
- SwapRunFromCD( unset ),
- SwapRunFromNet( unset ),
- TargetMachine( machineNotSet ),
- TerminalServerAware( termSvrAwareDefault ),
- TurnOffAssemblyGeneration( unset ),
- TypeLibraryResourceID( 0 )
-{
-}
-
-TQTextStream &operator<<( TQTextStream &strm, const VCLinkerTool &tool )
-{
- strm << _begTool3;
- strm << _VCLinkerToolName;
- strm << XPair( _AdditionalDependencies4, tool.AdditionalDependencies, " " );
- strm << XPair( _AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories );
- strm << XPair( _AdditionalOptions, tool.AdditionalOptions, " " );
- strm << XPair( _AddModuleNamesToAssembly, tool.AddModuleNamesToAssembly );
- strm << SPair( _BaseAddress, tool.BaseAddress );
- strm << XPair( _DelayLoadDLLs, tool.DelayLoadDLLs );
- if ( tool.EnableCOMDATFolding != optFoldingDefault ) strm << EPair( _EnableCOMDATFolding, tool.EnableCOMDATFolding );
- strm << SPair( _EntryPointSymbol, tool.EntryPointSymbol );
- strm << XPair( _ForceSymbolReferences, tool.ForceSymbolReferences );
- strm << SPair( _FunctionOrder, tool.FunctionOrder );
- strm << TPair( _GenerateDebugInformation, tool.GenerateDebugInformation );
- strm << TPair( _GenerateMapFile, tool.GenerateMapFile );
- if ( tool.HeapCommitSize != -1 ) strm << LPair( _HeapCommitSize, tool.HeapCommitSize );
- if ( tool.HeapReserveSize != -1 ) strm << LPair( _HeapReserveSize, tool.HeapReserveSize );
- strm << TPair( _IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries );
- strm << XPair( _IgnoreDefaultLibraryNames, tool.IgnoreDefaultLibraryNames );
- strm << TPair( _IgnoreEmbeddedIDL, tool.IgnoreEmbeddedIDL );
- strm << TPair( _IgnoreImportLibrary, tool.IgnoreImportLibrary );
- strm << SPair( _ImportLibrary, tool.ImportLibrary );
- if ( tool.LargeAddressAware != addrAwareDefault ) strm << EPair( _LargeAddressAware, tool.LargeAddressAware );
- strm << TPair( _LinkDLL, tool.LinkDLL );
- if ( tool.LinkIncremental != linkIncrementalDefault ) strm << EPair( _LinkIncremental, tool.LinkIncremental );
- strm << TPair( _LinkTimeCodeGeneration, tool.LinkTimeCodeGeneration );
- strm << SPair( _LinkToManagedResourceFile, tool.LinkToManagedResourceFile );
- strm << TPair( _MapExports, tool.MapExports );
- strm << SPair( _MapFileName, tool.MapFileName );
- strm << TPair( _MapLines, tool.MapLines );
- strm << SPair( _MergedIDLBaseFileName, tool.MergedIDLBaseFileName );
- strm << SPair( _MergeSections, tool.MergeSections );
- strm << SPair( _MidlCommandFile, tool.MidlCommandFile );
- strm << SPair( _ModuleDefinitionFile, tool.ModuleDefinitionFile );
- if ( tool.OptimizeForWindows98 != optWin98Default ) strm << EPair( _OptimizeForWindows98, tool.OptimizeForWindows98 );
- if ( tool.OptimizeReferences != optReferencesDefault ) strm << EPair( _OptimizeReferences, tool.OptimizeReferences );
- strm << SPair( _OutputFile, tool.OutputFile );
- strm << _ProgramDatabaseFile << tool.ProgramDatabaseFile << "\"";
- strm << TPair( _RegisterOutput, tool.RegisterOutput );
- strm << TPair( _ResourceOnlyDLL, tool.ResourceOnlyDLL );
- strm << TPair( _SetChecksum, tool.SetChecksum );
- if ( tool.ShowProgress != linkProgressNotSet ) strm << EPair( _ShowProgress, tool.ShowProgress );
- if ( tool.StackCommitSize != -1 ) strm << LPair( _StackCommitSize, tool.StackCommitSize );
- if ( tool.StackReserveSize != -1 ) strm << LPair( _StackReserveSize, tool.StackReserveSize );
- strm << SPair( _StripPrivateSymbols, tool.StripPrivateSymbols );
- strm << EPair( _SubSystem, tool.SubSystem );
- strm << TPair( _SupportUnloadOfDelayLoadedDLL, tool.SupportUnloadOfDelayLoadedDLL );
- strm << TPair( _SuppressStartupBanner, tool.SuppressStartupBanner );
- strm << TPair( _SwapRunFromCD, tool.SwapRunFromCD );
- strm << TPair( _SwapRunFromNet, tool.SwapRunFromNet );
- if ( tool.TargetMachine != machineNotSet ) strm << EPair( _TargetMachine, tool.TargetMachine );
- if ( tool.TerminalServerAware != termSvrAwareDefault ) strm << EPair( _TerminalServerAware, tool.TerminalServerAware );
- strm << TPair( _TurnOffAssemblyGeneration, tool.TurnOffAssemblyGeneration );
- strm << SPair( _TypeLibraryFile, tool.TypeLibraryFile );
- if ( tool.TypeLibraryResourceID != rcUseDefault ) strm << LPair( _TypeLibraryResourceID, tool.TypeLibraryResourceID );
- strm << SPair( _Version4, tool.Version );
- strm << "/>";
- return strm;
-}
-
-// Hashing routine to do fast option lookups ----
-// Slightly rewritten to stop on ':' ',' and '\0'
-// Original routine in tqtranslator.cpp ----------
-static uint elfHash( const char* name )
-{
- const uchar *k;
- uint h = 0;
- uint g;
-
- if ( name ) {
- k = (const uchar *) name;
- while ( (*k) &&
- (*k)!= ':' &&
- (*k)!=',' &&
- (*k)!=' ' ) {
- h = ( h << 4 ) + *k++;
- if ( (g = (h & 0xf0000000)) != 0 )
- h ^= g >> 24;
- h &= ~g;
- }
- }
- if ( !h )
- h = 1;
- return h;
-}
-
-//#define USE_DISPLAY_HASH
-#ifdef USE_DISPLAY_HASH
-static void displayHash( const char* str )
-{
- printf( "case 0x%07x: // %s\n break;\n", elfHash(str), str );
-}
-#endif
-
-bool VCLinkerTool::parseOption( const char* option )
-{
-#ifdef USE_DISPLAY_HASH
- // Main options
- displayHash( "/ALIGN" ); displayHash( "/ALLOWBIND" ); displayHash( "/ASSEMBLYMODULE" );
- displayHash( "/ASSEMBLYRESOURCE" ); displayHash( "/BASE" ); displayHash( "/DEBUG" );
- displayHash( "/DEF" ); displayHash( "/DEFAULTLIB" ); displayHash( "/DELAY" );
- displayHash( "/DELAYLOAD" ); displayHash( "/DLL" ); displayHash( "/DRIVER" );
- displayHash( "/ENTRY" ); displayHash( "/EXETYPE" ); displayHash( "/EXPORT" );
- displayHash( "/FIXED" ); displayHash( "/FORCE" ); displayHash( "/HEAP" );
- displayHash( "/IDLOUT" ); displayHash( "/IGNOREIDL" ); displayHash( "/IMPLIB" );
- displayHash( "/INCLUDE" ); displayHash( "/INCREMENTAL" ); displayHash( "/LARGEADDRESSAWARE" );
- displayHash( "/LIBPATH" ); displayHash( "/LTCG" ); displayHash( "/MACHINE" );
- displayHash( "/MAP" ); displayHash( "/MAPINFO" ); displayHash( "/MERGE" );
- displayHash( "/MIDL" ); displayHash( "/NOASSEMBLY" ); displayHash( "/NODEFAULTLIB" );
- displayHash( "/NOENTRY" ); displayHash( "/NOLOGO" ); displayHash( "/OPT" );
- displayHash( "/ORDER" ); displayHash( "/OUT" ); displayHash( "/PDB" );
- displayHash( "/PDBSTRIPPED" ); displayHash( "/RELEASE" ); displayHash( "/SECTION" );
- displayHash( "/STACK" ); displayHash( "/STUB" ); displayHash( "/SUBSYSTEM" );
- displayHash( "/SWAPRUN" ); displayHash( "/TLBID" ); displayHash( "/TLBOUT" );
- displayHash( "/TSAWARE" ); displayHash( "/VERBOSE" ); displayHash( "/VERSION" );
- displayHash( "/VXD" ); displayHash( "/WS " );
-#endif
-#ifdef USE_DISPLAY_HASH
- // Sub options
- displayHash( "UNLOAD" ); displayHash( "NOBIND" ); displayHash( "no" ); displayHash( "NOSTATUS" ); displayHash( "STATUS" );
- displayHash( "AM33" ); displayHash( "ARM" ); displayHash( "CEE" ); displayHash( "IA64" ); displayHash( "X86" ); displayHash( "M32R" );
- displayHash( "MIPS" ); displayHash( "MIPS16" ); displayHash( "MIPSFPU" ); displayHash( "MIPSFPU16" ); displayHash( "MIPSR41XX" ); displayHash( "PPC" );
- displayHash( "SH3" ); displayHash( "SH4" ); displayHash( "SH5" ); displayHash( "THUMB" ); displayHash( "TRICORE" ); displayHash( "EXPORTS" );
- displayHash( "LINES" ); displayHash( "REF" ); displayHash( "NOREF" ); displayHash( "ICF" ); displayHash( "WIN98" ); displayHash( "NOWIN98" );
- displayHash( "CONSOLE" ); displayHash( "EFI_APPLICATION" ); displayHash( "EFI_BOOT_SERVICE_DRIVER" ); displayHash( "EFI_ROM" ); displayHash( "EFI_RUNTIME_DRIVER" ); displayHash( "NATIVE" );
- displayHash( "POSIX" ); displayHash( "WINDOWS" ); displayHash( "WINDOWSCE" ); displayHash( "NET" ); displayHash( "CD" ); displayHash( "NO" );
-#endif
- bool found = TRUE;
- switch ( elfHash(option) ) {
- case 0x3360dbe: // /ALIGN[:number]
- case 0x1485c34: // /ALLOWBIND[:NO]
- case 0x6b21972: // /DEFAULTLIB:library
- case 0x396ea92: // /DRIVER[:UPONLY | :WDM]
- case 0xaca9d75: // /EXETYPE[:DYNAMIC | :DEV386]
- case 0x3ad5444: // /EXPORT:entryname[,@ordinal[,NONAME]][,DATA]
- case 0x33aec94: // /FIXED[:NO]
- case 0x33b4675: // /FORCE:[MULTIPLE|UNRESOLVED]
- case 0x7988f7e: // /SECTION:name,[E][R][W][S][D][K][L][P][X][,ALIGN=#]
- case 0x0348992: // /STUB:filename
- case 0x0034bc4: // /VXD
- case 0x0034c50: // /WS
- AdditionalOptions += option;
- break;
- case 0x679c075: // /ASSEMBLYMODULE:filename
- AddModuleNamesToAssembly += option+15;
- break;
- case 0x062d065: // /ASSEMBLYRESOURCE:filename
- LinkToManagedResourceFile = option+18;
- break;
- case 0x0336675: // /BASE:{address | @filename,key}
- // Do we need to do a manual lookup when '@filename,key'?
- // Seems BaseAddress only can contain the location...
- // We don't use it in TQt, so keep it simple for now
- BaseAddress = option+6;
- break;
- case 0x3389797: // /DEBUG
- GenerateDebugInformation = _True;
- break;
- case 0x0033896: // /DEF:filename
- ModuleDefinitionFile = option+5;
- break;
- case 0x338a069: // /DELAY:{UNLOAD | NOBIND}
- // MS documentation does not specify what to do with
- // this option, so we'll put it in AdditionalOptions
- AdditionalOptions += option;
- break;
- case 0x06f4bf4: // /DELAYLOAD:dllname
- DelayLoadDLLs += option+11;
- break;
- // case 0x003390c: // /DLL
- // This option is not used for vcproj files
- // break;
- case 0x33a3979: // /ENTRY:function
- EntryPointSymbol = option+7;
- break;
- case 0x033c960: // /HEAP:reserve[,commit]
- {
- TQStringList both = TQStringList::split( ",", option+6 );
- HeapReserveSize = both[0].toLong();
- if ( both.count() == 2 )
- HeapCommitSize = both[1].toLong();
- }
- break;
- case 0x3d91494: // /IDLOUT:[path\]filename
- MergedIDLBaseFileName = option+8;
- break;
- case 0x345a04c: // /IGNOREIDL
- IgnoreEmbeddedIDL = _True;
- break;
- case 0x3e250e2: // /IMPLIB:filename
- ImportLibrary = option+8;
- break;
- case 0xe281ab5: // /INCLUDE:symbol
- ForceSymbolReferences += option+9;
- break;
- case 0xb28103c: // /INCREMENTAL[:no]
- if ( *(option+12) == ':' &&
- *(option+13) == 'n' )
- LinkIncremental = linkIncrementalNo;
- else
- LinkIncremental = linkIncrementalYes;
- break;
- case 0x26e4675: // /LARGEADDRESSAWARE[:no]
- if ( *(option+18) == ':' &&
- *(option+19) == 'n' )
- LargeAddressAware = addrAwareNoLarge;
- else
- LargeAddressAware = addrAwareLarge;
- break;
- case 0x0d745c8: // /LIBPATH:dir
- AdditionalLibraryDirectories += option+9;
- break;
- case 0x0341877: // /LTCG[:NOSTATUS|:STATUS]
- config->WholeProgramOptimization = _True;
- LinkTimeCodeGeneration = _True;
- if ( *(option+5) == ':' &&
- *(option+6) == 'S' )
- ShowProgress = linkProgressAll;
- break;
- case 0x157cf65: // /MACHINE:{AM33|ARM|CEE|IA64|X86|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|MIPSR41XX|PPC|SH3|SH4|SH5|THUMB|TRICORE}
- switch ( elfHash(option+9) ) {
- // Very limited documentation on all options but X86,
- // so we put the others in AdditionalOptions...
- case 0x0046063: // AM33
- case 0x000466d: // ARM
- case 0x0004795: // CEE
- case 0x004d494: // IA64
- case 0x0050672: // M32R
- case 0x0051e53: // MIPS
- case 0x51e5646: // MIPS16
- case 0x1e57b05: // MIPSFPU
- case 0x57b09a6: // MIPSFPU16
- case 0x5852738: // MIPSR41XX
- case 0x0005543: // PPC
- case 0x00057b3: // SH3
- case 0x00057b4: // SH4
- case 0x00057b5: // SH5
- case 0x058da12: // THUMB
- case 0x96d8435: // TRICORE
- AdditionalOptions += option;
- break;
- case 0x0005bb6: // X86
- TargetMachine = machineX86;
- break;
- default:
- found = FALSE;
- }
- break;
- case 0x0034160: // /MAP[:filename]
- GenerateMapFile = _True;
- MapFileName = option+5;
- break;
- case 0x164e1ef: // /MAPINFO:{EXPORTS|LINES}
- if ( *(option+9) == 'E' )
- MapExports = _True;
- else if ( *(option+9) == 'L' )
- MapLines = _True;
- break;
- case 0x341a6b5: // /MERGE:from=to
- MergeSections = option+7;
- break;
- case 0x0341d8c: // /MIDL:@file
- MidlCommandFile = option+7;
- break;
- case 0x84e2679: // /NOASSEMBLY
- TurnOffAssemblyGeneration = _True;
- break;
- case 0x2b21942: // /NODEFAULTLIB[:library]
- if ( *(option+13) == '\0' )
- IgnoreAllDefaultLibraries = _True;
- else
- IgnoreDefaultLibraryNames += option+14;
- break;
- case 0x33a3a39: // /NOENTRY
- ResourceOnlyDLL = _True;
- break;
- case 0x434138f: // /NOLOGO
- SuppressStartupBanner = _True;
- break;
- case 0x0034454: // /OPT:{REF | NOREF | ICF[=iterations] | NOICF | WIN98 | NOWIN98}
- {
- char third = *(option+7);
- switch ( third ) {
- case 'F': // REF
- if ( *(option+5) == 'R' ) {
- OptimizeReferences = optReferences;
- } else { // ICF[=iterations]
- EnableCOMDATFolding = optFolding;
- // [=iterations] case is not documented
- }
- break;
- case 'R': // NOREF
- OptimizeReferences = optNoReferences;
- break;
- case 'I': // NOICF
- EnableCOMDATFolding = optNoFolding;
- break;
- case 'N': // WIN98
- OptimizeForWindows98 = optWin98Yes;
- break;
- case 'W': // NOWIN98
- OptimizeForWindows98 = optWin98No;
- break;
- default:
- found = FALSE;
- }
- }
- break;
- case 0x34468a2: // /ORDER:@filename
- FunctionOrder = option+8;
- break;
- case 0x00344a4: // /OUT:filename
- OutputFile = option+5;
- break;
- case 0x0034482: // /PDB:filename
- ProgramDatabaseFile = option+5;
- break;
- case 0xa2ad314: // /PDBSTRIPPED:pdb_file_name
- StripPrivateSymbols = option+13;
- break;
- case 0x6a09535: // /RELEASE
- SetChecksum = _True;
- break;
- case 0x348857b: // /STACK:reserve[,commit]
- {
- TQStringList both = TQStringList::split( ",", option+7 );
- StackReserveSize = both[0].toLong();
- if ( both.count() == 2 )
- StackCommitSize = both[1].toLong();
- }
- break;
- case 0x78dc00d: // /SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,major[.minor]]
- {
- // Split up in subsystem, and version number
- TQStringList both = TQStringList::split( ",", option+11 );
- switch ( elfHash(both[0].latin1()) ) {
- case 0x8438445: // CONSOLE
- SubSystem = subSystemConsole;
- break;
- case 0xbe29493: // WINDOWS
- SubSystem = subSystemWindows;
- break;
- // The following are undocumented, so add them to AdditionalOptions
- case 0x240949e: // EFI_APPLICATION
- case 0xe617652: // EFI_BOOT_SERVICE_DRIVER
- case 0x9af477d: // EFI_ROM
- case 0xd34df42: // EFI_RUNTIME_DRIVER
- case 0x5268ea5: // NATIVE
- case 0x05547e8: // POSIX
- case 0x2949c95: // WINDOWSCE
- AdditionalOptions += option;
- break;
- default:
- found = FALSE;
- }
- }
- break;
- case 0x8b654de: // /SWAPRUN:{NET | CD}
- if ( *(option+9) == 'N' )
- SwapRunFromNet = _True;
- else if ( *(option+9) == 'C' )
- SwapRunFromCD = _True;
- else
- found = FALSE;
- break;
- case 0x34906d4: // /TLBID:id
- TypeLibraryResourceID = TQString( option+7 ).toLong();
- break;
- case 0x4907494: // /TLBOUT:[path\]filename
- TypeLibraryFile = option+8;
- break;
- case 0x976b525: // /TSAWARE[:NO]
- if ( *(option+8) == ':' )
- TerminalServerAware = termSvrAwareNo;
- else
- TerminalServerAware = termSvrAwareYes;
- break;
- case 0xaa67735: // /VERBOSE[:lib]
- if ( *(option+9) == ':' ) {
- ShowProgress = linkProgressLibs;
- AdditionalOptions += option;
- } else {
- ShowProgress = linkProgressAll;
- }
- break;
- case 0xaa77f7e: // /VERSION:major[.minor]
- Version = option+9;
- break;
- default:
- found = FALSE;
- }
- if( !found )
- warn_msg( WarnLogic, "Could not parse Linker options: %s", option );
- return found;
-}
-
-// VCMIDLTool -------------------------------------------------------
-VCMIDLTool::VCMIDLTool()
- : DefaultCharType( midlCharUnsigned ),
- EnableErrorChecks( midlDisableAll ),
- ErrorCheckAllocations( unset ),
- ErrorCheckBounds( unset ),
- ErrorCheckEnumRange( unset ),
- ErrorCheckRefPointers( unset ),
- ErrorCheckStubData( unset ),
- GenerateStublessProxies( unset ),
- GenerateTypeLibrary( unset ),
- IgnoreStandardIncludePath( unset ),
- MkTypLibCompatible( unset ),
- StructMemberAlignment( midlAlignNotSet ),
- SuppressStartupBanner( unset ),
- TargetEnvironment( midlTargetNotSet ),
- ValidateParameters( unset ),
- WarnAsError( unset ),
- WarningLevel( midlWarningLevel_0 )
-{
-}
-
-TQTextStream &operator<<( TQTextStream &strm, const VCMIDLTool &tool )
-{
- strm << _begTool3;
- strm << _VCMIDLToolName;
- strm << XPair( _AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories );
- strm << XPair( _AdditionalOptions, tool.AdditionalOptions, " " );
- strm << XPair( _CPreprocessOptions, tool.CPreprocessOptions );
- strm << EPair( _DefaultCharType, tool.DefaultCharType );
- strm << SPair( _DLLDataFileName, tool.DLLDataFileName );
- strm << EPair( _EnableErrorChecks, tool.EnableErrorChecks );
- strm << TPair( _ErrorCheckAllocations, tool.ErrorCheckAllocations );
- strm << TPair( _ErrorCheckBounds, tool.ErrorCheckBounds );
- strm << TPair( _ErrorCheckEnumRange, tool.ErrorCheckEnumRange );
- strm << TPair( _ErrorCheckRefPointers, tool.ErrorCheckRefPointers );
- strm << TPair( _ErrorCheckStubData, tool.ErrorCheckStubData );
- strm << XPair( _FullIncludePath, tool.FullIncludePath );
- strm << TPair( _GenerateStublessProxies, tool.GenerateStublessProxies );
- strm << TPair( _GenerateTypeLibrary, tool.GenerateTypeLibrary );
- strm << SPair( _HeaderFileName, tool.HeaderFileName );
- strm << TPair( _IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath );
- strm << SPair( _InterfaceIdentifierFileName, tool.InterfaceIdentifierFileName );
- strm << TPair( _MkTypLibCompatible, tool.MkTypLibCompatible );
- strm << SPair( _OutputDirectory4, tool.OutputDirectory );
- strm << XPair( _PreprocessorDefinitions, tool.PreprocessorDefinitions );
- strm << SPair( _ProxyFileName, tool.ProxyFileName );
- strm << SPair( _RedirectOutputAndErrors, tool.RedirectOutputAndErrors );
- if ( tool.StructMemberAlignment != midlAlignNotSet) strm << EPair( _StructMemberAlignment, tool.StructMemberAlignment );
- strm << TPair( _SuppressStartupBanner, tool.SuppressStartupBanner );
- if ( tool.TargetEnvironment != midlTargetNotSet ) strm << EPair( _TargetEnvironment, tool.TargetEnvironment );
- strm << SPair( _TypeLibraryName, tool.TypeLibraryName );
- strm << XPair( _UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions );
- strm << TPair( _ValidateParameters, tool.ValidateParameters );
- strm << TPair( _WarnAsError, tool.WarnAsError );
- strm << EPair( _WarningLevel, tool.WarningLevel );
- strm << "/>";
- return strm;
-}
-
-bool VCMIDLTool::parseOption( const char* option )
-{
-#ifdef USE_DISPLAY_HASH
- displayHash( "/D name[=def]" ); displayHash( "/I directory-list" ); displayHash( "/Oi" );
- displayHash( "/Oic" ); displayHash( "/Oicf" ); displayHash( "/Oif" ); displayHash( "/Os" );
- displayHash( "/U name" ); displayHash( "/WX" ); displayHash( "/W{0|1|2|3|4}" );
- displayHash( "/Zp {N}" ); displayHash( "/Zs" ); displayHash( "/acf filename" );
- displayHash( "/align {N}" ); displayHash( "/app_config" ); displayHash( "/c_ext" );
- displayHash( "/char ascii7" ); displayHash( "/char signed" ); displayHash( "/char unsigned" );
- displayHash( "/client none" ); displayHash( "/client stub" ); displayHash( "/confirm" );
- displayHash( "/cpp_cmd cmd_line" ); displayHash( "/cpp_opt options" );
- displayHash( "/cstub filename" ); displayHash( "/dlldata filename" ); displayHash( "/env win32" );
- displayHash( "/env win64" ); displayHash( "/error all" ); displayHash( "/error allocation" );
- displayHash( "/error bounds_check" ); displayHash( "/error enum" ); displayHash( "/error none" );
- displayHash( "/error ref" ); displayHash( "/error stub_data" ); displayHash( "/h filename" );
- displayHash( "/header filename" ); displayHash( "/iid filename" ); displayHash( "/lcid" );
- displayHash( "/mktyplib203" ); displayHash( "/ms_ext" ); displayHash( "/ms_union" );
- displayHash( "/msc_ver " ); displayHash( "/newtlb" ); displayHash( "/no_cpp" );
- displayHash( "/no_def_idir" ); displayHash( "/no_default_epv" ); displayHash( "/no_format_opt" );
- displayHash( "/no_warn" ); displayHash( "/nocpp" ); displayHash( "/nologo" ); displayHash( "/notlb" );
- displayHash( "/o filename" ); displayHash( "/oldnames" ); displayHash( "/oldtlb" );
- displayHash( "/osf" ); displayHash( "/out directory" ); displayHash( "/pack {N}" );
- displayHash( "/prefix all" ); displayHash( "/prefix client" ); displayHash( "/prefix server" );
- displayHash( "/prefix switch" ); displayHash( "/protocol all" ); displayHash( "/protocol dce" );
- displayHash( "/protocol ndr64" ); displayHash( "/proxy filename" ); displayHash( "/robust" );
- displayHash( "/rpcss" ); displayHash( "/savePP" ); displayHash( "/server none" );
- displayHash( "/server stub" ); displayHash( "/sstub filename" ); displayHash( "/syntax_check" );
- displayHash( "/target {system}" ); displayHash( "/tlb filename" ); displayHash( "/use_epv" );
- displayHash( "/win32" ); displayHash( "/win64" );
-#endif
- bool found = TRUE;
- int offset = 0;
- switch( elfHash(option) ) {
- case 0x0000334: // /D name[=def]
- PreprocessorDefinitions += option+3;
- break;
- case 0x0000339: // /I directory-list
- AdditionalIncludeDirectories += option+3;
- break;
- case 0x0345f96: // /Oicf
- case 0x00345f6: // /Oif
- GenerateStublessProxies = _True;
- break;
- case 0x0000345: // /U name
- UndefinePreprocessorDefinitions += option+3;
- break;
- case 0x00034c8: // /WX
- WarnAsError = _True;
- break;
- case 0x3582fde: // /align {N}
- offset = 3; // Fallthrough
- case 0x0003510: // /Zp {N}
- switch ( *(option+offset+4) ) {
- case '1':
- StructMemberAlignment = ( *(option+offset+5) == '\0' ) ? midlAlignSingleByte : midlAlignSixteenBytes;
- break;
- case '2':
- StructMemberAlignment = midlAlignTwoBytes;
- break;
- case '4':
- StructMemberAlignment = midlAlignFourBytes;
- break;
- case '8':
- StructMemberAlignment = midlAlignEightBytes;
- break;
- default:
- found = FALSE;
- }
- break;
- case 0x0359e82: // /char {ascii7|signed|unsigned}
- switch( *(option+6) ) {
- case 'a':
- DefaultCharType = midlCharAscii7;
- break;
- case 's':
- DefaultCharType = midlCharSigned;
- break;
- case 'u':
- DefaultCharType = midlCharUnsigned;
- break;
- default:
- found = FALSE;
- }
- break;
- case 0xa766524: // /cpp_opt options
- CPreprocessOptions += option+9;
- break;
- case 0xb32abf1: // /dlldata filename
- DLLDataFileName = option + 9;
- break;
- case 0x0035c56: // /env {win32|win64}
- TargetEnvironment = ( *(option+8) == '6' ) ? midlTargetWin64 : midlTargetWin32;
- break;
- case 0x35c9962: // /error {all|allocation|bounds_check|enum|none|ref|stub_data}
- EnableErrorChecks = midlEnableCustom;
- switch ( *(option+7) ) {
- case 'a':
- if ( *(option+10) == '\0' )
- EnableErrorChecks = midlEnableAll;
- else
- ErrorCheckAllocations = _True;
- break;
- case 'b':
- ErrorCheckBounds = _True;
- break;
- case 'e':
- ErrorCheckEnumRange = _True;
- break;
- case 'n':
- EnableErrorChecks = midlDisableAll;
- break;
- case 'r':
- ErrorCheckRefPointers = _True;
- break;
- case 's':
- ErrorCheckStubData = _True;
- break;
- default:
- found = FALSE;
- }
- break;
- case 0x5eb7af2: // /header filename
- offset = 5;
- case 0x0000358: // /h filename
- HeaderFileName = option + offset + 3;
- break;
- case 0x0035ff4: // /iid filename
- InterfaceIdentifierFileName = option+5;
- break;
- case 0x64b7933: // /mktyplib203
- MkTypLibCompatible = _True;
- break;
- case 0x8e0b0a2: // /no_def_idir
- IgnoreStandardIncludePath = _True;
- break;
- case 0x65635ef: // /nologo
- SuppressStartupBanner = _True;
- break;
- case 0x3656b22: // /notlb
- GenerateTypeLibrary = _True;
- break;
- case 0x000035f: // /o filename
- RedirectOutputAndErrors = option+3;
- break;
- case 0x00366c4: // /out directory
- OutputDirectory = option+5;
- break;
- case 0x36796f9: // /proxy filename
- ProxyFileName = option+7;
- break;
- case 0x6959c94: // /robust
- ValidateParameters = _True;
- break;
- case 0x6a88df4: // /target {system}
- if ( *(option+11) == '6' )
- TargetEnvironment = midlTargetWin64;
- else
- TargetEnvironment = midlTargetWin32;
- break;
- case 0x0036b22: // /tlb filename
- TypeLibraryName = option+5;
- break;
- case 0x36e0162: // /win32
- TargetEnvironment = midlTargetWin32;
- break;
- case 0x36e0194: // /win64
- TargetEnvironment = midlTargetWin64;
- break;
- case 0x0003459: // /Oi
- case 0x00345f3: // /Oic
- case 0x0003463: // /Os
- case 0x0003513: // /Zs
- case 0x0035796: // /acf filename
- case 0x5b1cb97: // /app_config
- case 0x3595cf4: // /c_ext
- case 0x5a2fc64: // /client {none|stub}
- case 0xa64d3dd: // /confirm
- case 0xa765b64: // /cpp_cmd cmd_line
- case 0x35aabb2: // /cstub filename
- case 0x03629f4: // /lcid
- case 0x6495cc4: // /ms_ext
- case 0x96c7a1e: // /ms_union
- case 0x4996fa2: // /msc_ver
- case 0x64ceb12: // /newtlb
- case 0x6555a40: // /no_cpp
- case 0xf64d6a6: // /no_default_epv
- case 0x6dd9384: // /no_format_opt
- case 0x556dbee: // /no_warn
- case 0x3655a70: // /nocpp
- case 0x2b455a3: // /oldnames
- case 0x662bb12: // /oldtlb
- case 0x0036696: // /osf
- case 0x036679b: // /pack {N}
- case 0x678bd38: // /prefix {all|client|server|switch}
- case 0x96b702c: // /protocol {all|dce|ndr64}
- case 0x3696aa3: // /rpcss
- case 0x698ca60: // /savePP
- case 0x69c9cf2: // /server {none|stub}
- case 0x36aabb2: // /sstub filename
- case 0xce9b12b: // /syntax_check
- case 0xc9b5f16: // /use_epv
- AdditionalOptions += option;
- break;
- default:
- // /W{0|1|2|3|4} case
- if ( *(option+1) == 'W' ) {
- switch ( *(option+2) ) {
- case '0':
- WarningLevel = midlWarningLevel_0;
- break;
- case '1':
- WarningLevel = midlWarningLevel_1;
- break;
- case '2':
- WarningLevel = midlWarningLevel_2;
- break;
- case '3':
- WarningLevel = midlWarningLevel_3;
- break;
- case '4':
- WarningLevel = midlWarningLevel_4;
- break;
- default:
- found = FALSE;
- }
- }
- break;
- }
- if( !found )
- warn_msg( WarnLogic, "Could not parse MIDL option: %s", option );
- return TRUE;
-}
-
-// VCLibrarianTool --------------------------------------------------
-VCLibrarianTool::VCLibrarianTool()
- : IgnoreAllDefaultLibraries( unset ),
- SuppressStartupBanner( _True )
-{
-}
-
-TQTextStream &operator<<( TQTextStream &strm, const VCLibrarianTool &tool )
-{
- strm << _begTool3;
- strm << SPair( _ToolName, TQString( "VCLibrarianTool" ) );
- strm << XPair( _AdditionalDependencies4, tool.AdditionalDependencies );
- strm << XPair( _AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories );
- strm << XPair( _AdditionalOptions, tool.AdditionalOptions, " " );
- strm << XPair( _ExportNamedFunctions, tool.ExportNamedFunctions );
- strm << XPair( _ForceSymbolReferences, tool.ForceSymbolReferences );
- strm << TPair( _IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries );
- strm << XPair( _IgnoreDefaultLibraryNames, tool.IgnoreDefaultLibraryNames );
- strm << SPair( _ModuleDefinitionFile, tool.ModuleDefinitionFile );
- strm << SPair( _OutputFile, tool.OutputFile );
- strm << TPair( _SuppressStartupBanner, tool.SuppressStartupBanner );
- strm << "/>";
- return strm;
-}
-
-// VCCustomBuildTool ------------------------------------------------
-VCCustomBuildTool::VCCustomBuildTool()
-{
- ToolName = "VCCustomBuildTool";
-}
-
-TQTextStream &operator<<( TQTextStream &strm, const VCCustomBuildTool &tool )
-{
- strm << _begTool3;
- strm << SPair( _ToolName, tool.ToolName );
- strm << XPair( _AdditionalDependencies4, tool.AdditionalDependencies, ";" );
-
- if (which_dotnet_version() == NET2005)
- strm << XPair( _CommandLine4, tool.CommandLine, "
" );
- else
- strm << XPair( _CommandLine4, tool.CommandLine, "\n" );
-
- strm << SPair( _Description4, tool.Description );
- strm << XPair( _Outputs4, tool.Outputs, ";" );
- strm << SPair( _ToolPath, tool.ToolPath );
- strm << "/>";
- return strm;
-}
-
-// VCResourceCompilerTool -------------------------------------------
-VCResourceCompilerTool::VCResourceCompilerTool()
- : Culture( rcUseDefault ),
- IgnoreStandardIncludePath( unset ),
- ShowProgress( linkProgressNotSet )
-{
- PreprocessorDefinitions = "NDEBUG";
-}
-
-TQTextStream &operator<<( TQTextStream &strm, const VCResourceCompilerTool &tool )
-{
- strm << _begTool3;
- strm << _VCResourceCompilerToolName;
- strm << SPair( _ToolPath, tool.ToolPath );
- strm << XPair( _AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories );
- strm << XPair( _AdditionalOptions, tool.AdditionalOptions, " " );
- if ( tool.Culture != rcUseDefault ) strm << EPair( _Culture, tool.Culture );
- strm << XPair( _FullIncludePath, tool.FullIncludePath );
- strm << TPair( _IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath );
- strm << XPair( _PreprocessorDefinitions, tool.PreprocessorDefinitions );
- strm << SPair( _ResourceOutputFileName, tool.ResourceOutputFileName );
- if ( tool.ShowProgress != linkProgressNotSet ) strm << EPair( _ShowProgress, tool.ShowProgress );
- strm << "/>";
- return strm;
-}
-
-// VCEventTool -------------------------------------------------
-TQTextStream &operator<<( TQTextStream &strm, const VCEventTool &tool )
-{
- strm << _begTool3;
- strm << SPair( _ToolName, tool.ToolName );
- strm << SPair( _ToolPath, tool.ToolPath );
- strm << SPair( _CommandLine4, tool.CommandLine );
- strm << SPair( _Description4, tool.Description );
- strm << TPair( _ExcludedFromBuild, tool.ExcludedFromBuild );
- strm << "/>";
- return strm;
-}
-
-// VCPostBuildEventTool ---------------------------------------------
-VCPostBuildEventTool::VCPostBuildEventTool()
-{
- ToolName = "VCPostBuildEventTool";
-}
-
-// VCPreBuildEventTool ----------------------------------------------
-VCPreBuildEventTool::VCPreBuildEventTool()
-{
- ToolName = "VCPreBuildEventTool";
-}
-
-// VCPreLinkEventTool -----------------------------------------------
-VCPreLinkEventTool::VCPreLinkEventTool()
-{
- ToolName = "VCPreLinkEventTool";
-}
-
-// VCConfiguration --------------------------------------------------
-
-VCConfiguration::VCConfiguration()
- : ATLMinimizesCRunTimeLibraryUsage( unset ),
- BuildBrowserInformation( unset ),
- CharacterSet( charSetNotSet ),
- ConfigurationType( typeApplication ),
- RegisterOutput( unset ),
- UseOfATL( useATLNotSet ),
- UseOfMfc( useMfcStdWin ),
- WholeProgramOptimization( unset )
-{
- compiler.config = this;
- linker.config = this;
- idl.config = this;
-}
-
-VCConfiguration::VCConfiguration(const VCConfiguration &other)
-{
- *this = other;
- compiler.config = this;
- linker.config = this;
- idl.config = this;
-}
-
-TQTextStream &operator<<( TQTextStream &strm, const VCConfiguration &tool )
-{
- strm << _begConfiguration;
- strm << SPair( _Name3, tool.Name );
- strm << SPair( _OutputDirectory3, tool.OutputDirectory );
- strm << TPair( _ATLMinimizesCRunTimeLibraryUsage, tool.ATLMinimizesCRunTimeLibraryUsage );
- strm << TPair( _BuildBrowserInformation, tool.BuildBrowserInformation );
- if ( tool.CharacterSet != charSetNotSet) strm << EPair( _CharacterSet, tool.CharacterSet );
- strm << EPair( _ConfigurationType, tool.ConfigurationType );
- strm << SPair( _DeleteExtensionsOnClean, tool.DeleteExtensionsOnClean );
- strm << SPair( _ImportLibrary, tool.ImportLibrary );
- strm << SPair( _IntermediateDirectory, tool.IntermediateDirectory );
- strm << SPair( _PrimaryOutput, tool.PrimaryOutput );
- strm << SPair( _ProgramDatabase, tool.ProgramDatabase );
- strm << TPair( _RegisterOutput, tool.RegisterOutput );
- if ( tool.UseOfATL != useATLNotSet) strm << EPair( _UseOfATL, tool.UseOfATL );
- strm << EPair( _UseOfMfc, tool.UseOfMfc );
- strm << TPair( _WholeProgramOptimization, tool.WholeProgramOptimization );
- strm << ">";
- strm << tool.compiler;
- strm << tool.custom;
- if ( tool.ConfigurationType == typeStaticLibrary )
- strm << tool.librarian;
- else
- strm << tool.linker;
- strm << tool.idl;
- strm << tool.postBuild;
- strm << tool.preBuild;
- strm << tool.preLink;
- strm << tool.resource;
- strm << _endConfiguration;
- return strm;
-}
-// VCFilter ---------------------------------------------------------
-VCFilter::VCFilter()
- : ParseFiles( unset )
-{
- useCustomBuildTool = FALSE;
- useCompilerTool = FALSE;
-}
-
-void VCFilter::addMOCstage( TQTextStream & /*strm*/, TQString filename )
-{
- TQString mocOutput = Project->findMocDestination( filename );
- TQString mocApp = Project->var( "QMAKE_MOC" );
-
- bool inputMoc = false;
- if( mocOutput.isEmpty() && filename.endsWith(".moc") ) {
- // In specialcases we DO moc .cpp files
- // when the result is an .moc file
- mocOutput = filename;
- filename = Project->findMocSource( mocOutput );
- inputMoc = true;
- }
-
- if (mocOutput.isEmpty())
- return;
-
- CustomBuildTool = VCCustomBuildTool();
- useCustomBuildTool = TRUE;
- CustomBuildTool.Description = "Moc'ing " + filename + "...";
- CustomBuildTool.CommandLine += (mocApp + " "
- + filename + " -o " + mocOutput);
- CustomBuildTool.AdditionalDependencies = mocApp;
- if (inputMoc)
- CustomBuildTool.AdditionalDependencies += filename;
- CustomBuildTool.Outputs += mocOutput;
-}
-
-void VCFilter::addUICstage( TQTextStream & /*strm*/, TQString str )
-{
- CustomBuildTool = VCCustomBuildTool();
- useCustomBuildTool = TRUE;
-
- TQString uicApp = Project->var("QMAKE_UIC");
- TQString mocApp = Project->var( "QMAKE_MOC" );
- TQString fname = str.section( '\\', -1 );
- TQString mocDir = Project->var( "MOC_DIR" );
- TQString uiDir = Project->var( "UI_DIR" );
- TQString uiHeaders;
- TQString uiSources;
-
- // Determining the paths for the output files.
- int slash = str.findRev( '\\' );
- TQString pname = ( slash != -1 ) ? str.left( slash+1 ) : TQString( ".\\" );
- if( !uiDir.isEmpty() ) {
- uiHeaders = uiDir;
- uiSources = uiDir;
- } else {
- uiHeaders = Project->var( "UI_HEADERS_DIR" );
- uiSources = Project->var( "UI_SOURCES_DIR" );
- if( uiHeaders.isEmpty() )
- uiHeaders = pname;
- if( uiSources.isEmpty() )
- uiSources = pname;
- }
- if( !uiHeaders.endsWith( "\\" ) )
- uiHeaders += "\\";
- if( !uiSources.endsWith( "\\" ) )
- uiSources += "\\";
-
- // Determine the file name.
- int dot = fname.findRev( '.' );
- if( dot != -1 )
- fname.truncate( dot );
-
- if ( mocDir.isEmpty() )
- mocDir = pname;
-
- CustomBuildTool.Description = ("TQUic'ing " + str + "...\"");
- CustomBuildTool.CommandLine += // Create .h from .ui file
- uicApp + " " + str + " -o " + uiHeaders + fname + ".h";
- CustomBuildTool.CommandLine += // Create .cpp from .ui file
- uicApp + " " + str + " -i " + fname + ".h -o " + uiSources + fname + ".cpp";
- CustomBuildTool.CommandLine += // Moc the headerfile
- mocApp + " " + uiHeaders + fname + ".h -o " + mocDir + Option::h_moc_mod + fname + Option::h_moc_ext;
-
- CustomBuildTool.AdditionalDependencies += mocApp;
- CustomBuildTool.AdditionalDependencies += uicApp;
- CustomBuildTool.Outputs +=
- uiHeaders + fname + ".h;" + uiSources + fname + ".cpp;" + mocDir + Option::h_moc_mod + fname + Option::h_moc_ext;
-}
-
-void VCFilter::modifyPCHstage( TQTextStream &/*strm*/, TQString str )
-{
- bool isCFile = str.endsWith(".c");
- bool isHFile = (str.endsWith(".h") && str == Project->precompH);
-
- if (!isCFile && !isHFile)
- return;
-
- CompilerTool = VCCLCompilerTool();
- useCompilerTool = TRUE;
-
- // Unset some default options
- CompilerTool.BufferSecurityCheck = unset;
- CompilerTool.DebugInformationFormat = debugUnknown;
- CompilerTool.ExceptionHandling = unset;
- CompilerTool.GeneratePreprocessedFile = preprocessUnknown;
- CompilerTool.Optimization = optimizeDefault;
- CompilerTool.ProgramDataBaseFileName = TQString::null;
- CompilerTool.RuntimeLibrary = rtUnknown;
- CompilerTool.WarningLevel = warningLevelUnknown;
-
- // Setup PCH options
- CompilerTool.UsePrecompiledHeader = (isCFile ? pchNone : pchCreateUsingSpecific);
- CompilerTool.PrecompiledHeaderThrough = "$(NOINHERIT)";
- CompilerTool.ForcedIncludeFiles = "$(NOINHERIT)";
-}
-
-bool VCFilter::addIMGstage( TQTextStream &/*strm*/, TQString str )
-{
- bool isCorH = FALSE;
- if (str.endsWith(".c") || str.endsWith(".rc"))
- isCorH = TRUE;
- TQStringList::Iterator it;
- for(it = Option::cpp_ext.begin(); it != Option::cpp_ext.end(); ++it)
- if(str.endsWith(*it))
- isCorH = TRUE;
- for(it = Option::h_ext.begin(); it != Option::h_ext.end(); ++it)
- if(str.endsWith(*it))
- isCorH = TRUE;
-
- TQString collectionName = Project->project->first("QMAKE_IMAGE_COLLECTION");
- if (str.isEmpty() || isCorH || collectionName.isEmpty())
- return FALSE;
-
- CustomBuildTool = VCCustomBuildTool();
- useCustomBuildTool = TRUE;
-
- // Some projects (like designer core) may have too many images to
- // call tquic directly. Therefor we have to create a temporary
- // file, with the image list, and call tquic with the -f option.
- TQString tmpFileCmd = "echo ";
- TQString tmpImageFilename = ".imgcol";
- TQStringList& list = Project->project->variables()["IMAGES"];
- bool firstOutput = TRUE;
- it = list.begin();
- while( it!=list.end() ) {
- tmpFileCmd += (*it) + " ";
- ++it;
- if (tmpFileCmd.length()>250 || it==list.end()) {
- CustomBuildTool.CommandLine += tmpFileCmd
- + (firstOutput?"> ":">> ")
- + tmpImageFilename;
- tmpFileCmd = "echo ";
- firstOutput = FALSE;
- }
- }
-
- TQString uicApp = Project->var("QMAKE_UIC");
- TQString commandLine = uicApp + " -embed " + Project->project->first("QMAKE_ORIG_TARGET")
- + " -f .imgcol -o " + collectionName;
-
- // The loop below is to avoid the resulting CommandLine buffer
- // from being a size of between 2071-#char_replaced and 2102,
- // as this triggers a buffer overflow bug in VS2003. As we only
- // the only replacement we use in this buffer is one $(TQTDIR),
- // we assume this can be upto 256 characters long, making the
- // lower-bound to be 1814 characters. So, if the buffer is
- // between 1814 and 2103 bytes, the buffer is "padded" til it's
- // over 2103 bytes in size.
- int totalSize = CustomBuildTool.CommandLine.join(" ").length();
- while (totalSize > 1814 && totalSize < 2103) {
- CustomBuildTool.CommandLine +=
- "echo \"Padding\" the Custom Build Step buffer to avoid a potentional "
- "buffer overflow issue with VS2003 for buffer of 1814-2103 bytes > nul";
- totalSize = CustomBuildTool.CommandLine.join(" ").length();
- }
-
- CustomBuildTool.Description = ("Generate imagecollection");
- CustomBuildTool.CommandLine += commandLine;
- CustomBuildTool.AdditionalDependencies += uicApp;
- CustomBuildTool.AdditionalDependencies += list;
- CustomBuildTool.Outputs = collectionName;
- CustomBuildTool.Outputs += tmpImageFilename;
- return TRUE;
-}
-
-bool VCFilter::addLexYaccStage( TQTextStream &/*strm*/, TQString str )
-{
- bool doLex = str.endsWith(".l");
- if (!doLex && !str.endsWith(".y"))
- return FALSE;
-
- TQString fname = "$(InputName)";
- if (doLex) {
- fname += Option::lex_mod + Option::cpp_ext.first();
- TQString lexpath = Project->var("QMAKE_LEX")
- + Project->varGlue("QMAKE_LEXFLAGS", " ", " ", "") + " ";
-
- CustomBuildTool.Description = "Lex'ing $(InputFileName)";
- CustomBuildTool.CommandLine = lexpath + " $(InputFileName)";
- CustomBuildTool.CommandLine += "del " + fname;
- CustomBuildTool.CommandLine += "move lex.yy.c " + fname;
- CustomBuildTool.Outputs = fname;
- } else {
- fname +=Option::yacc_mod;
- TQString yaccpath = Project->var("QMAKE_YACC")
- + Project->varGlue("QMAKE_YACCFLAGS", " ", " ", "") + " ";
-
- CustomBuildTool.Description = "Yacc'ing $(InputFileName)";
- CustomBuildTool.CommandLine = yaccpath + " $(InputFileName)";
- CustomBuildTool.CommandLine += "del " + fname + Option::h_ext.first();
- CustomBuildTool.CommandLine += "move y.tab.h " + fname + Option::h_ext.first();
- CustomBuildTool.Outputs = fname + Option::h_ext.first();
- CustomBuildTool.CommandLine += "del " + fname + Option::cpp_ext.first();
- CustomBuildTool.CommandLine += "move y.tab.c " + fname + Option::cpp_ext.first();
- CustomBuildTool.Outputs += fname + Option::cpp_ext.first();
- }
- useCustomBuildTool = TRUE;
- return TRUE;
-}
-
-TQTextStream &operator<<( TQTextStream &strm, VCFilter &tool )
-{
- if ( tool.Files.count() == 0 )
- return strm;
-
- strm << _begFilter;
- strm << SPair( _Name3, tool.Name );
- strm << TPair( _ParseFiles, tool.ParseFiles );
- strm << SPair( _Filter, tool.Filter );
- strm << ">";
-
- bool resourceBuild = FALSE;
- int currentLevels = 0;
- TQStringList currentDirs;
- for ( TQStringList::ConstIterator it = tool.Files.begin(); it != tool.Files.end(); ++it ) {
- if ( !tool.flat_files ) {
- TQStringList newDirs = TQStringList::split('\\',(*it));
- newDirs.pop_back(); // Skip the filename
-
- int newLevels = int(newDirs.count());
- int equalLevels = 0;
- for (int i = 0; i"; // Blank filter
- ++newLevels;
- }
- currentDirs = newDirs;
- currentLevels = int(newDirs.count());
- }
-
- tool.useCustomBuildTool = FALSE;
- tool.useCompilerTool = FALSE;
- // Add TQUIC, MOC and PCH stages to file
- if ( tool.CustomBuild == moc )
- tool.addMOCstage( strm, *it );
- else if ( tool.CustomBuild == tquic )
- tool.addUICstage( strm, *it );
- else if ( tool.CustomBuild == lexyacc )
- tool.addLexYaccStage( strm, *it );
- else if ( tool.CustomBuild == resource ) {
- if (!resourceBuild)
- resourceBuild = tool.addIMGstage(strm, *it);
- }
- if (tool.Project->usePCH)
- tool.modifyPCHstage( strm, *it );
-
- strm << _begFile;
- strm << SPair( _RelativePath, *it );
- strm << ">";
- // Output custom build and compiler options
- // for all configurations
- if (tool.useCustomBuildTool || tool.useCompilerTool) {
- for ( uint i = 0; i < tool.Config->count(); i++ ) {
- strm << _begFileConfiguration;
- strm << _Name5;
- strm << (*tool.Config)[i].Name;
- strm << "\">";
- if (tool.useCustomBuildTool)
- strm << tool.CustomBuildTool;
- if (tool.useCompilerTool)
- strm << tool.CompilerTool;
- strm << _endFileConfiguration;
- }
- }
- strm << _endFile;
- }
- // close remaining open filters, in non-flat mode
- while ( !tool.flat_files && currentLevels-- ) {
- strm << _endFilter;
- }
- strm << _endFilter;
- return strm;
-}
-
-// VCProject --------------------------------------------------------
-VCProject::VCProject()
-{
- VCConfiguration conf;
- Configuration += conf ; // Release
- //Configuration += conf ; // Debug added later, after Release init
-}
-
-TQTextStream &operator<<( TQTextStream &strm, const VCProject &tool )
-{
- strm << _xmlInit;
- strm << _begVisualStudioProject;
- strm << _ProjectType;
- strm << SPair( _Version1, tool.Version );
- strm << SPair( _Name1, tool.Name );
- strm << SPair( _ProjectGUID, tool.ProjectGUID );
- strm << SPair( _SccProjectName, tool.SccProjectName );
- strm << SPair( _SccLocalPath, tool.SccLocalPath );
- strm << ">";
- strm << _begPlatforms;
- strm << _begPlatform;
- strm << SPair( _Name3, tool.PlatformName );
- strm << "/>";
- strm << _endPlatforms;
- strm << _begConfigurations;
- for ( uint i = 0; i < tool.Configuration.count(); i++ )
- strm << tool.Configuration[i];
- strm << _endConfigurations;
- strm << _begFiles;
- strm << (VCFilter&)tool.SourceFiles;
- strm << (VCFilter&)tool.HeaderFiles;
- strm << (VCFilter&)tool.MOCFiles;
- strm << (VCFilter&)tool.UICFiles;
- strm << (VCFilter&)tool.FormFiles;
- strm << (VCFilter&)tool.TranslationFiles;
- strm << (VCFilter&)tool.LexYaccFiles;
- strm << (VCFilter&)tool.ResourceFiles;
- strm << _endFiles;
- strm << _begGlobals;
- strm << _endGlobals;
- strm << _endVisualStudioProject;
- return strm;
-}
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
deleted file mode 100644
index 1141e8a9c..000000000
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ /dev/null
@@ -1,801 +0,0 @@
-/****************************************************************************
-**
-** Definition of VCProject class.
-**
-** Copyright (C) 2002-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __MSVC_OBJECTMODEL_H__
-#define __MSVC_OBJECTMODEL_H__
-
-#include "project.h"
-#include
-#include
-
-enum DotNET {
- NETUnknown = 0,
- NET2002 = 0x70,
- NET2003 = 0x71,
- NET2005 = 0x80
-};
-
-/*
- This Object model is of course VERY simplyfied,
- and does not actually follow the original MSVC
- object model. However, it fulfilles the basic
- needs for qmake
-*/
-
-/*
- If a triState value is 'unset' then the
- corresponding property is not in the output,
- forcing the tool to utilize default values.
- False/True values will be in the output...
-*/
-enum customBuildCheck {
- none,
- moc,
- tquic,
- lexyacc,
- resource
-};
-enum triState {
- unset = -1,
- _False = 0,
- _True = 1
-};
-enum addressAwarenessType {
- addrAwareDefault,
- addrAwareNoLarge,
- addrAwareLarge
-};
-enum asmListingOption {
- asmListingNone,
- asmListingAssemblyOnly,
- asmListingAsmMachineSrc,
- asmListingAsmMachine,
- asmListingAsmSrc
-};
-enum basicRuntimeCheckOption {
- runtimeBasicCheckNone,
- runtimeCheckStackFrame,
- runtimeCheckUninitVariables,
- runtimeBasicCheckAll
-};
-enum browseInfoOption {
- brInfoNone,
- brAllInfo,
- brNoLocalSymbols
-};
-enum callingConventionOption {
- callConventionDefault = -1,
- callConventionCDecl,
- callConventionFastCall,
- callConventionStdCall
-};
-enum charSet {
- charSetNotSet,
- charSetUnicode,
- charSetMBCS
-};
-enum compileAsManagedOptions {
- managedDefault = -1,
- managedAssembly = 2
-};
-enum CompileAsOptions{
- compileAsDefault,
- compileAsC,
- compileAsCPlusPlus
-};
-enum ConfigurationTypes {
- typeUnknown = 0,
- typeApplication = 1,
- typeDynamicLibrary = 2,
- typeStaticLibrary = 4,
- typeGeneric = 10
-};
-enum debugOption {
- debugUnknown = -1,
- debugDisabled,
- debugOldStyleInfo,
- debugLineInfoOnly,
- debugEnabled,
- debugEditAndContinue
-};
-enum eAppProtectionOption {
- eAppProtectUnchanged,
- eAppProtectLow,
- eAppProtectMedium,
- eAppProtectHigh
-};
-enum enumResourceLangID {
- rcUseDefault = 0,
- rcAfrikaans = 1078,
- rcAlbanian = 1052,
- rcArabicAlgeria = 5121,
- rcArabicBahrain = 15361,
- rcArabicEgypt = 3073,
- rcArabicIraq = 2049,
- rcArabicJordan = 11265,
- rcArabicKuwait = 13313,
- rcArabicLebanon = 12289,
- rcArabicLibya = 4097,
- rcArabicMorocco = 6145,
- rcArabicOman = 8193,
- rcArabicQatar = 16385,
- rcArabicSaudi = 1025,
- rcArabicSyria = 10241,
- rcArabicTunisia = 7169,
- rcArabicUnitedArabEmirates = 14337,
- rcArabicYemen = 9217,
- rcBasque = 1069,
- rcBulgarian = 1026,
- rcByelorussian = 1059,
- rcCatalan = 1027,
- rcChineseHongKong = 3076,
- rcChinesePRC = 2052,
- rcChineseSingapore = 4100,
- rcChineseTaiwan = 1028,
- rcCroatian = 1050,
- rcCzech = 1029,
- rcDanish = 1030,
- rcDutchBelgium = 2067,
- rcDutchStandard = 1043,
- rcEnglishAustralia = 3081,
- rcEnglishBritain = 2057,
- rcEnglishCanada = 4105,
- RcEnglishCaribbean = 9225,
- rcEnglishIreland = 6153,
- rcEnglishJamaica = 8201,
- rcEnglishNewZealand = 5129,
- rcEnglishSouthAfrica = 7177,
- rcEnglishUS = 1033,
- rcEstonian = 1061,
- rcFarsi = 1065,
- rcFinnish = 1035,
- rcFrenchBelgium = 2060,
- rcFrenchCanada = 3084,
- rcFrenchLuxembourg = 5132,
- rcFrenchStandard = 1036,
- rcFrenchSwitzerland = 4108,
- rcGermanAustria = 3079,
- rcGermanLichtenstein = 5127,
- rcGermanLuxembourg = 4103,
- rcGermanStandard = 1031,
- rcGermanSwitzerland = 2055,
- rcGreek = 1032,
- rcHebrew = 1037,
- rcHungarian = 1038,
- rcIcelandic = 1039,
- rcIndonesian = 1057,
- rcItalianStandard = 1040,
- rcItalianSwitzerland = 2064,
- rcJapanese = 1041,
- rcKorean = 1042,
- rcKoreanJohab = 2066,
- rcLatvian = 1062,
- rcLithuanian = 1063,
- rcNorwegianBokmal = 1044,
- rcNorwegianNynorsk = 2068,
- rcPolish = 1045,
- rcPortugueseBrazilian = 1046,
- rcPortugueseStandard = 2070,
- rcRomanian = 1048,
- rcRussian = 1049,
- rcSerbian = 2074,
- rcSlovak = 1051,
- rcSpanishArgentina = 11274,
- rcSpanishBolivia = 16394,
- rcSpanishChile = 13322,
- rcSpanishColombia = 9226,
- rcSpanishCostaRica = 5130,
- rcSpanishDominicanRepublic = 7178,
- rcSpanishEcuador = 12298,
- rcSpanishGuatemala = 4106,
- rcSpanishMexico = 2058,
- rcSpanishModern = 3082,
- rcSpanishPanama = 6154,
- rcSpanishParaguay = 15370,
- rcSpanishPeru = 10250,
- rcSpanishTraditional = 1034,
- rcSpanishUruguay = 14346,
- rcSpanishVenezuela = 8202,
- rcSwedish = 1053,
- rcThai = 1054,
- rcTurkish = 1055,
- rcUkrainian = 1058,
- rcUrdu = 1056
-};
-enum enumSccEvent {
- eProjectInScc,
- ePreDirtyNotification
-};
-enum favorSizeOrSpeedOption {
- favorNone,
- favorSpeed,
- favorSize
-};
-enum genProxyLanguage {
- genProxyNative,
- genProxyManaged
-};
-enum inlineExpansionOption {
- expandDisable,
- expandOnlyInline,
- expandAnySuitable,
- expandDefault // Not useful number, but stops the output
-};
-enum linkIncrementalType {
- linkIncrementalDefault,
- linkIncrementalNo,
- linkIncrementalYes
-};
-enum linkProgressOption {
- linkProgressNotSet,
- linkProgressAll,
- linkProgressLibs
-};
-enum machineTypeOption {
- machineNotSet,
- machineX86
-};
-enum midlCharOption {
- midlCharUnsigned,
- midlCharSigned,
- midlCharAscii7
-};
-enum midlErrorCheckOption {
- midlEnableCustom,
- midlDisableAll,
- midlEnableAll
-};
-enum midlStructMemberAlignOption {
- midlAlignNotSet,
- midlAlignSingleByte,
- midlAlignTwoBytes,
- midlAlignFourBytes,
- midlAlignEightBytes,
- midlAlignSixteenBytes
-};
-enum midlTargetEnvironment {
- midlTargetNotSet,
- midlTargetWin32,
- midlTargetWin64
-};
-enum midlWarningLevelOption {
- midlWarningLevel_0,
- midlWarningLevel_1,
- midlWarningLevel_2,
- midlWarningLevel_3,
- midlWarningLevel_4
-};
-enum optFoldingType {
- optFoldingDefault,
- optNoFolding,
- optFolding
-};
-enum optimizeOption {
- optimizeDisabled,
- optimizeMinSpace,
- optimizeMaxSpeed,
- optimizeFull,
- optimizeCustom,
- optimizeDefault // Not useful number, but stops the output
-};
-enum optRefType {
- optReferencesDefault,
- optNoReferences,
- optReferences
-};
-enum optWin98Type {
- optWin98Default,
- optWin98No,
- optWin98Yes
-};
-enum pchOption {
- pchNone,
- pchCreateUsingSpecific,
- pchGenerateAuto,
- pchUseUsingSpecific
-};
-enum preprocessOption {
- preprocessUnknown = -1,
- preprocessNo,
- preprocessYes,
- preprocessNoLineNumbers
-};
-enum ProcessorOptimizeOption {
- procOptimizeBlended,
- procOptimizePentium,
- procOptimizePentiumProAndAbove
-};
-enum RemoteDebuggerType {
- DbgLocal,
- DbgRemote,
- DbgRemoteTCPIP
-};
-enum runtimeLibraryOption {
- rtUnknown = -1,
- rtMultiThreaded,
- rtMultiThreadedDebug,
- rtMultiThreadedDLL,
- rtMultiThreadedDebugDLL,
- rtSingleThreaded,
- rtSingleThreadedDebug
-};
-enum structMemberAlignOption {
- alignNotSet,
- alignSingleByte,
- alignTwoBytes,
- alignFourBytes,
- alignEightBytes,
- alignSixteenBytes
-};
-enum subSystemOption {
- subSystemNotSet,
- subSystemConsole,
- subSystemWindows
-};
-enum termSvrAwarenessType {
- termSvrAwareDefault,
- termSvrAwareNo,
- termSvrAwareYes
-};
-enum toolSetType {
- toolSetUtility,
- toolSetMakefile,
- toolSetLinker,
- toolSetLibrarian,
- toolSetAll
-};
-enum TypeOfDebugger {
- DbgNativeOnly,
- DbgManagedOnly,
- DbgMixed,
- DbgAuto
-};
-enum useOfATL {
- useATLNotSet,
- useATLStatic,
- useATLDynamic
-};
-enum useOfMfc {
- useMfcStdWin,
- useMfcStatic,
- useMfcDynamic
-};
-enum warningLevelOption {
- warningLevelUnknown = -1,
- warningLevel_0,
- warningLevel_1,
- warningLevel_2,
- warningLevel_3,
- warningLevel_4
-};
-
-class VCToolBase {
-protected:
- // Functions
- VCToolBase(){};
- virtual ~VCToolBase(){}
- virtual bool parseOption( const char* option ) = 0;
-public:
- void parseOptions( TQStringList& options ) {
- for ( TQStringList::ConstIterator it=options.begin(); (it!=options.end()); it++ )
- parseOption( (*it).latin1() );
- }
-};
-
-class VCConfiguration;
-class VCProject;
-
-class VCCLCompilerTool : public VCToolBase
-{
-public:
- // Functions
- VCCLCompilerTool();
- virtual ~VCCLCompilerTool(){}
- bool parseOption( const char* option );
-
- // Variables
- TQStringList AdditionalIncludeDirectories;
- TQStringList AdditionalOptions;
- TQStringList AdditionalUsingDirectories;
- TQString AssemblerListingLocation;
- asmListingOption AssemblerOutput;
- basicRuntimeCheckOption BasicRuntimeChecks;
- browseInfoOption BrowseInformation;
- TQString BrowseInformationFile;
- triState BufferSecurityCheck;
- callingConventionOption CallingConvention;
- CompileAsOptions CompileAs;
- compileAsManagedOptions CompileAsManaged;
- triState CompileOnly;
- debugOption DebugInformationFormat;
- triState DefaultCharIsUnsigned;
- triState Detect64BitPortabilityProblems;
- triState DisableLanguageExtensions;
- TQStringList DisableSpecificWarnings;
- triState EnableFiberSafeOptimizations;
- triState EnableFunctionLevelLinking;
- triState EnableIntrinsicFunctions;
- triState ExceptionHandling;
- triState ExpandAttributedSource;
- favorSizeOrSpeedOption FavorSizeOrSpeed;
- triState ForceConformanceInForLoopScope;
- TQStringList ForcedIncludeFiles;
- TQStringList ForcedUsingFiles;
- preprocessOption GeneratePreprocessedFile;
- triState GlobalOptimizations;
- triState IgnoreStandardIncludePath;
- triState ImproveFloatingPointConsistency;
- inlineExpansionOption InlineFunctionExpansion;
- triState KeepComments;
- triState MinimalRebuild;
- TQString ObjectFile;
- triState OmitFramePointers;
- triState OpenMP;
- optimizeOption Optimization;
- ProcessorOptimizeOption OptimizeForProcessor;
- triState OptimizeForWindowsApplication;
- TQString OutputFile;
- TQString PrecompiledHeaderFile;
- TQString PrecompiledHeaderThrough;
- TQStringList PreprocessorDefinitions;
- TQString ProgramDataBaseFileName;
- runtimeLibraryOption RuntimeLibrary;
- triState RuntimeTypeInfo;
- triState ShowIncludes;
- triState SmallerTypeCheck;
- triState StringPooling;
- structMemberAlignOption StructMemberAlignment;
- triState SuppressStartupBanner;
- triState TreatWChar_tAsBuiltInType;
- triState TurnOffAssemblyGeneration;
- triState UndefineAllPreprocessorDefinitions;
- TQStringList UndefinePreprocessorDefinitions;
- pchOption UsePrecompiledHeader;
- triState WarnAsError;
- warningLevelOption WarningLevel;
- triState WholeProgramOptimization;
- VCConfiguration* config;
-};
-
-class VCLinkerTool : public VCToolBase
-{
-public:
- // Functions
- VCLinkerTool();
- virtual ~VCLinkerTool(){}
- bool parseOption( const char* option );
-
- // Variables
- TQStringList AdditionalDependencies;
- TQStringList AdditionalLibraryDirectories;
- TQStringList AdditionalOptions;
- TQStringList AddModuleNamesToAssembly;
- TQString BaseAddress;
- TQStringList DelayLoadDLLs;
- optFoldingType EnableCOMDATFolding;
- TQString EntryPointSymbol;
- TQStringList ForceSymbolReferences;
- TQString FunctionOrder;
- triState GenerateDebugInformation;
- triState GenerateMapFile;
- long HeapCommitSize;
- long HeapReserveSize;
- triState IgnoreAllDefaultLibraries;
- TQStringList IgnoreDefaultLibraryNames;
- triState IgnoreEmbeddedIDL;
- triState IgnoreImportLibrary;
- TQString ImportLibrary;
- addressAwarenessType LargeAddressAware;
- triState LinkDLL;
- linkIncrementalType LinkIncremental;
- triState LinkTimeCodeGeneration;
- TQString LinkToManagedResourceFile;
- triState MapExports;
- TQString MapFileName;
- triState MapLines;
- TQString MergedIDLBaseFileName;
- TQString MergeSections; // Should be list?
- TQString MidlCommandFile;
- TQString ModuleDefinitionFile; // Should be list?
- optWin98Type OptimizeForWindows98;
- optRefType OptimizeReferences;
- TQString OutputFile;
- TQString ProgramDatabaseFile;
- triState RegisterOutput;
- triState ResourceOnlyDLL;
- triState SetChecksum;
- linkProgressOption ShowProgress;
- long StackCommitSize;
- long StackReserveSize;
- TQString StripPrivateSymbols; // Should be list?
- subSystemOption SubSystem;
- triState SupportUnloadOfDelayLoadedDLL;
- triState SuppressStartupBanner;
- triState SwapRunFromCD;
- triState SwapRunFromNet;
- machineTypeOption TargetMachine;
- termSvrAwarenessType TerminalServerAware;
- triState TurnOffAssemblyGeneration;
- TQString TypeLibraryFile;
- long TypeLibraryResourceID;
- TQString Version;
- VCConfiguration* config;
-};
-
-class VCMIDLTool : public VCToolBase
-{
-public:
- // Functions
- VCMIDLTool();
- virtual ~VCMIDLTool(){}
- bool parseOption( const char* option );
-
- // Variables
- TQStringList AdditionalIncludeDirectories;
- TQStringList AdditionalOptions;
- TQStringList CPreprocessOptions;
- midlCharOption DefaultCharType;
- TQString DLLDataFileName; // Should be list?
- midlErrorCheckOption EnableErrorChecks;
- triState ErrorCheckAllocations;
- triState ErrorCheckBounds;
- triState ErrorCheckEnumRange;
- triState ErrorCheckRefPointers;
- triState ErrorCheckStubData;
- TQStringList FullIncludePath;
- triState GenerateStublessProxies;
- triState GenerateTypeLibrary;
- TQString HeaderFileName;
- triState IgnoreStandardIncludePath;
- TQString InterfaceIdentifierFileName;
- triState MkTypLibCompatible;
- TQString OutputDirectory;
- TQStringList PreprocessorDefinitions;
- TQString ProxyFileName;
- TQString RedirectOutputAndErrors;
- midlStructMemberAlignOption StructMemberAlignment;
- triState SuppressStartupBanner;
- midlTargetEnvironment TargetEnvironment;
- TQString TypeLibraryName;
- TQStringList UndefinePreprocessorDefinitions;
- triState ValidateParameters;
- triState WarnAsError;
- midlWarningLevelOption WarningLevel;
- VCConfiguration* config;
-};
-
-class VCLibrarianTool : public VCToolBase
-{
-public:
- // Functions
- VCLibrarianTool();
- virtual ~VCLibrarianTool(){}
- bool parseOption( const char* ){ return FALSE; };
-
- // Variables
- TQStringList AdditionalDependencies;
- TQStringList AdditionalLibraryDirectories;
- TQStringList AdditionalOptions;
- TQStringList ExportNamedFunctions;
- TQStringList ForceSymbolReferences;
- triState IgnoreAllDefaultLibraries;
- TQStringList IgnoreDefaultLibraryNames;
- TQString ModuleDefinitionFile;
- TQString OutputFile;
- triState SuppressStartupBanner;
-};
-
-class VCCustomBuildTool : public VCToolBase
-{
-public:
- // Functions
- VCCustomBuildTool();
- virtual ~VCCustomBuildTool(){}
- bool parseOption( const char* ){ return FALSE; };
-
- // Variables
- TQStringList AdditionalDependencies;
- TQStringList CommandLine;
- TQString Description;
- TQStringList Outputs;
- TQString ToolName;
- TQString ToolPath;
-};
-
-class VCResourceCompilerTool : public VCToolBase
-{
-public:
- // Functions
- VCResourceCompilerTool();
- virtual ~VCResourceCompilerTool(){}
- bool parseOption( const char* ){ return FALSE; };
-
- // Variables
- TQStringList AdditionalIncludeDirectories;
- TQStringList AdditionalOptions;
- enumResourceLangID Culture;
- TQStringList FullIncludePath;
- triState IgnoreStandardIncludePath;
- TQStringList PreprocessorDefinitions;
- TQString ResourceOutputFileName;
- linkProgressOption ShowProgress;
- TQString ToolPath;
-};
-
-class VCEventTool : public VCToolBase
-{
-protected:
- // Functions
- VCEventTool() : ExcludedFromBuild( unset ){};
- virtual ~VCEventTool(){}
- bool parseOption( const char* ){ return FALSE; };
-
-public:
- // Variables
- TQString CommandLine;
- TQString Description;
- triState ExcludedFromBuild;
- TQString ToolName;
- TQString ToolPath;
-};
-
-class VCPostBuildEventTool : public VCEventTool
-{
-public:
- VCPostBuildEventTool();
- ~VCPostBuildEventTool(){}
-};
-
-class VCPreBuildEventTool : public VCEventTool
-{
-public:
- VCPreBuildEventTool();
- ~VCPreBuildEventTool(){}
-};
-
-class VCPreLinkEventTool : public VCEventTool
-{
-public:
- VCPreLinkEventTool();
- ~VCPreLinkEventTool(){}
-};
-
-class VCConfiguration
-{
-public:
- // Functions
- VCConfiguration();
- VCConfiguration(const VCConfiguration &other);
- ~VCConfiguration() {}
-
- // Variables
- triState ATLMinimizesCRunTimeLibraryUsage;
- triState BuildBrowserInformation;
- charSet CharacterSet;
- ConfigurationTypes ConfigurationType;
- TQString DeleteExtensionsOnClean;
- TQString ImportLibrary;
- TQString IntermediateDirectory;
- TQString Name;
- TQString OutputDirectory;
- TQString PrimaryOutput;
- TQString ProgramDatabase;
- triState RegisterOutput;
- useOfATL UseOfATL;
- useOfMfc UseOfMfc;
- triState WholeProgramOptimization;
-
- // XML sub-parts
- VCCLCompilerTool compiler;
- VCLinkerTool linker;
- VCLibrarianTool librarian;
- VCCustomBuildTool custom;
- VCMIDLTool idl;
- VCPostBuildEventTool postBuild;
- VCPreBuildEventTool preBuild;
- VCPreLinkEventTool preLink;
- VCResourceCompilerTool resource;
-};
-
-class VcprojGenerator;
-class VCFilter
-{
-public:
- // Functions
- VCFilter();
- ~VCFilter(){}
- void addMOCstage( TQTextStream &strm, TQString str );
- void addUICstage( TQTextStream &strm, TQString str );
- bool addIMGstage( TQTextStream &strm, TQString str );
- void modifyPCHstage( TQTextStream &strm, TQString str );
- bool addLexYaccStage( TQTextStream &strm, TQString str );
-
- // Variables
- TQString Name;
- TQString Filter;
- triState ParseFiles;
- TQStringList Files;
- VcprojGenerator* Project;
- TQValueList *Config;
- customBuildCheck CustomBuild;
- bool useCustomBuildTool;
- VCCustomBuildTool CustomBuildTool;
- bool useCompilerTool;
- VCCLCompilerTool CompilerTool;
- bool flat_files;
-};
-
-class VCProject
-{
-public:
- // Functions
- VCProject();
- ~VCProject(){}
-
- // Variables
- TQString Name;
- TQString Version;
- TQString ProjectGUID;
- TQString SccProjectName;
- TQString SccLocalPath;
- TQString PlatformName;
-
- // XML sub-parts
- TQValueList Configuration;
- VCFilter SourceFiles;
- VCFilter HeaderFiles;
- VCFilter MOCFiles;
- VCFilter UICFiles;
- VCFilter FormFiles;
- VCFilter TranslationFiles;
- VCFilter LexYaccFiles;
- VCFilter ResourceFiles;
-};
-
-TQTextStream &operator<<( TQTextStream &, const VCCLCompilerTool & );
-TQTextStream &operator<<( TQTextStream &, const VCLinkerTool & );
-TQTextStream &operator<<( TQTextStream &, const VCMIDLTool & );
-TQTextStream &operator<<( TQTextStream &, const VCCustomBuildTool & );
-TQTextStream &operator<<( TQTextStream &, const VCLibrarianTool & );
-TQTextStream &operator<<( TQTextStream &, const VCResourceCompilerTool & );
-TQTextStream &operator<<( TQTextStream &, const VCEventTool & );
-TQTextStream &operator<<( TQTextStream &, const VCConfiguration & );
-TQTextStream &operator<<( TQTextStream &, VCFilter & );
-TQTextStream &operator<<( TQTextStream &, const VCProject & );
-
-#endif //__MSVC_OBJECTMODEL_H__
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
deleted file mode 100644
index 128811ef9..000000000
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ /dev/null
@@ -1,1455 +0,0 @@
-/****************************************************************************
-**
-** Implementation of VcprojGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "msvc_vcproj.h"
-#include "option.h"
-#include "qtmd5.h" // SG's MD5 addon
-#include
-#include
-#include
-#include
-#include
-#include
-
-//#define DEBUG_SOLUTION_GEN
-//#define DEBUG_PROJECT_GEN
-
-// .NET version detection -------------------------
-struct DotNetStrings {
- DotNET version;
- const char *versionStr;
- const char *regKey;
-} dotNetCombo[] = {
-#ifdef Q_OS_WIN64
- {NET2005, "MSVC.NET 2005 (8.0)", "Wow6432Node\\Microsoft\\VisualStudio\\8.0\\Setup\\VC\\ProductDir"},
- {NET2005, "MSVC 2005 Express Edition(8.0)", "Wow6432Node\\Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir"},
- {NET2003, "MSVC.NET 2003 (7.1)", "Wow6432Node\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir"},
- {NET2002, "MSVC.NET 2002 (7.0)", "Wow6432Node\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir"},
-#else
- {NET2005, "MSVC.NET 2005 (8.0)", "Microsoft\\VisualStudio\\8.0\\Setup\\VC\\ProductDir"},
- {NET2005, "MSVC 2005 Express Edition(8.0)", "Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir"},
- {NET2003, "MSVC.NET 2003 (7.1)", "Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir"},
- {NET2002, "MSVC.NET 2002 (7.0)", "Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir"},
-#endif
- {NETUnknown, "", ""}
-};
-
-DotNET which_dotnet_version()
-{
-#ifndef Q_OS_WIN32
- return NET2002; // Always generate 7.0 versions on other platforms
-#else
- // Only search for the version once
- static DotNET current_version = NETUnknown;
- if(current_version != NETUnknown)
- return current_version;
-
- // Fallback to .NET 2002
- current_version = NET2002;
-
- TQSettings setting;
- TQStringList warnPath;
- int installed = 0;
- int i = 0;
- for(; dotNetCombo[i].version; ++i) {
- TQString path = setting.readEntry(dotNetCombo[i].regKey);
- if(!path.isNull()) {
- ++installed;
- current_version = dotNetCombo[i].version;
- warnPath += TQString("%1").arg(dotNetCombo[i].versionStr);
- }
- }
-
- if (installed < 2)
- return current_version;
-
- // More than one version installed, search directory path
- TQString paths = getenv("PATH");
- TQStringList pathlist = TQStringList::split(";", paths.lower());
-
- i = installed = 0;
- for(; dotNetCombo[i].version; ++i) {
- TQString productPath = setting.readEntry(dotNetCombo[i].regKey).lower();
- if (productPath.isNull())
- continue;
- TQStringList::iterator it;
- for(it = pathlist.begin(); it != pathlist.end(); ++it) {
- if((*it).contains(productPath)) {
- ++installed;
- current_version = dotNetCombo[i].version;
- warnPath += TQString("%1 in path").arg(dotNetCombo[i].versionStr);
- break;
- }
- }
- }
-
- switch(installed) {
- case 1:
- break;
- case 0:
- warn_msg(WarnLogic, "Generator: MSVC.NET: Found more than one version of Visual Studio, but"
- " none in your path! Fallback to lowest version (%s)", warnPath.join(", ").latin1());
- break;
- default:
- warn_msg(WarnLogic, "Generator: MSVC.NET: Found more than one version of Visual Studio in"
- " your path! Fallback to lowest version (%s)", warnPath.join(", ").latin1());
- break;
- }
-
- return current_version;
-#endif
-};
-
-// Flatfile Tags ----------------------------------------------------
-const char* _slnHeader70 = "Microsoft Visual Studio Solution File, Format Version 7.00";
-const char* _slnHeader71 = "Microsoft Visual Studio Solution File, Format Version 8.00";
-const char* _slnHeader80 = "Microsoft Visual Studio Solution File, Format Version 9.00";
- // The following UUID _may_ change for later servicepacks...
- // If so we need to search through the registry at
- // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects
- // to find the subkey that contains a "PossibleProjectExtension"
- // containing "vcproj"...
- // Use the hardcoded value for now so projects generated on other
- // platforms are actually usable.
-const char* _slnMSVCvcprojGUID = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}";
-const char* _slnProjectBeg = "\nProject(\"";
-const char* _slnProjectMid = "\") = ";
-const char* _slnProjectEnd = "\nEndProject";
-const char* _slnGlobalBeg = "\nGlobal";
-const char* _slnGlobalEnd = "\nEndGlobal";
-const char* _slnSolutionConf = "\n\tGlobalSection(SolutionConfiguration) = preSolution"
- "\n\t\tConfigName.0 = Debug"
- "\n\t\tConfigName.1 = Release"
- "\n\tEndGlobalSection";
-const char* _slnProjDepBeg = "\n\tGlobalSection(ProjectDependencies) = postSolution";
-const char* _slnProjDepEnd = "\n\tEndGlobalSection";
-const char* _slnProjConfBeg = "\n\tGlobalSection(ProjectConfiguration) = postSolution";
-const char* _slnProjRelConfTag1 = ".Release.ActiveCfg = Release|Win32";
-const char* _slnProjRelConfTag2 = ".Release.Build.0 = Release|Win32";
-const char* _slnProjDbgConfTag1 = ".Debug.ActiveCfg = Debug|Win32";
-const char* _slnProjDbgConfTag2 = ".Debug.Build.0 = Debug|Win32";
-const char* _slnProjConfEnd = "\n\tEndGlobalSection";
-const char* _slnExtSections = "\n\tGlobalSection(ExtensibilityGlobals) = postSolution"
- "\n\tEndGlobalSection"
- "\n\tGlobalSection(ExtensibilityAddIns) = postSolution"
- "\n\tEndGlobalSection";
-// ------------------------------------------------------------------
-
-VcprojGenerator::VcprojGenerator(TQMakeProject *p) : Win32MakefileGenerator(p), init_flag(FALSE)
-{
-}
-
-/* \internal
- Generates a project file for the given profile.
- Options are either a Visual Studio projectfiles, or
- solutionfiles by parsing recursive projectdirectories.
-*/
-bool VcprojGenerator::writeMakefile(TQTextStream &t)
-{
- // Check if all requirements are fullfilled
- if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
- fprintf(stderr, "Project file not generated because all requirements not met:\n\t%s\n",
- var("QMAKE_FAILED_REQUIREMENTS").latin1());
- return TRUE;
- }
-
- // Generate project file
- if(project->first("TEMPLATE") == "vcapp" ||
- project->first("TEMPLATE") == "vclib") {
- debug_msg(1, "Generator: MSVC.NET: Writing project file" );
- t << vcProject;
- return TRUE;
- }
- // Generate solution file
- else if(project->first("TEMPLATE") == "vcsubdirs") {
- debug_msg(1, "Generator: MSVC.NET: Writing solution file" );
- writeSubDirs(t);
- return TRUE;
- }
- return FALSE;
-
-}
-
-struct VcsolutionDepend {
- TQString uuid;
- TQString vcprojFile, orig_target, target;
- ::target targetType;
- bool debugBuild;
- TQStringList dependencies;
-};
-
-TQUuid VcprojGenerator::getProjectUUID(const TQString &filename)
-{
- bool validUUID = TRUE;
-
- // Read GUID from variable-space
- TQUuid uuid = project->first("GUID");
-
- // If none, create one based on the MD5 of absolute project path
- if (uuid.isNull() || !filename.isNull()) {
- TQString abspath = filename.isNull()?project->first("QMAKE_MAKEFILE"):filename;
- qtMD5(abspath.utf8(), (unsigned char*)(&uuid));
- validUUID = !uuid.isNull();
- uuid.data4[0] = (uuid.data4[0] & 0x3F) | 0x80; // UV_DCE variant
- uuid.data3 = (uuid.data3 & 0x0FFF) | (TQUuid::Name<<12);
- }
-
- // If still not valid, generate new one, and suggest adding to .pro
- if (uuid.isNull() || !validUUID) {
- uuid = TQUuid::createUuid();
- fprintf(stderr,
- "qmake couldn't create a GUID based on filepath, and we couldn't\nfind a valid GUID in the .pro file (Consider adding\n'GUID = %s' to the .pro file)\n",
- uuid.toString().upper().latin1());
- }
-
- // Store GUID in variable-space
- project->values("GUID") = uuid.toString().upper();
- return uuid;
-}
-
-TQUuid VcprojGenerator::increaseUUID( const TQUuid &id )
-{
- TQUuid result( id );
- TQ_LONG dataFirst = (result.data4[0] << 24) +
- (result.data4[1] << 16) +
- (result.data4[2] << 8) +
- result.data4[3];
- TQ_LONG dataLast = (result.data4[4] << 24) +
- (result.data4[5] << 16) +
- (result.data4[6] << 8) +
- result.data4[7];
-
- if ( !(dataLast++) )
- dataFirst++;
-
- result.data4[0] = uchar((dataFirst >> 24) & 0xff);
- result.data4[1] = uchar((dataFirst >> 16) & 0xff);
- result.data4[2] = uchar((dataFirst >> 8) & 0xff);
- result.data4[3] = uchar( dataFirst & 0xff);
- result.data4[4] = uchar((dataLast >> 24) & 0xff);
- result.data4[5] = uchar((dataLast >> 16) & 0xff);
- result.data4[6] = uchar((dataLast >> 8) & 0xff);
- result.data4[7] = uchar( dataLast & 0xff);
- return result;
-}
-
-void VcprojGenerator::writeSubDirs(TQTextStream &t)
-{
- if(project->first("TEMPLATE") == "subdirs") {
- writeHeader(t);
- Win32MakefileGenerator::writeSubDirs(t);
- return;
- }
-
- switch(which_dotnet_version()) {
- case NET2005:
- t << _slnHeader80;
- break;
- case NET2003:
- t << _slnHeader71;
- break;
- case NET2002:
- t << _slnHeader70;
- break;
- default:
- t << _slnHeader70;
- warn_msg(WarnLogic, "Generator: MSVC.NET: Unknown version (%d) of MSVC detected for .sln", which_dotnet_version());
- break;
- }
-
- TQDict solution_depends;
-
- TQPtrList solution_cleanup;
- solution_cleanup.setAutoDelete(TRUE);
-
-
- TQStringList subdirs = project->variables()["SUBDIRS"];
- TQString oldpwd = TQDir::currentDirPath();
-
- for(TQStringList::Iterator it = subdirs.begin(); it != subdirs.end(); ++it) {
- TQFileInfo fi(Option::fixPathToLocalOS((*it), TRUE));
- if(fi.exists()) {
- if(fi.isDir()) {
- TQString profile = (*it);
- if(!profile.endsWith(Option::dir_sep))
- profile += Option::dir_sep;
- profile += fi.baseName() + ".pro";
- subdirs.append(profile);
- } else {
- TQMakeProject tmp_proj;
- TQString dir = fi.dirPath(), fn = fi.fileName();
- if(!dir.isEmpty()) {
- if(!TQDir::setCurrent(dir))
- fprintf(stderr, "Cannot find directory: %s\n", dir.latin1());
- }
- if(tmp_proj.read(fn, oldpwd)) {
- if(tmp_proj.first("TEMPLATE") == "vcsubdirs") {
- subdirs += fileFixify(tmp_proj.variables()["SUBDIRS"]);
- } else if(tmp_proj.first("TEMPLATE") == "vcapp" || tmp_proj.first("TEMPLATE") == "vclib") {
- // Initialize a 'fake' project to get the correct variables
- // and to be able to extract all the dependencies
- VcprojGenerator tmp_vcproj(&tmp_proj);
- tmp_vcproj.setNoIO(TRUE);
- tmp_vcproj.init();
- if(Option::debug_level) {
- TQMap &vars = tmp_proj.variables();
- for(TQMap::Iterator it = vars.begin();
- it != vars.end(); ++it) {
- if(it.key().left(1) != "." && !it.data().isEmpty())
- debug_msg(1, "%s: %s === %s", fn.latin1(), it.key().latin1(),
- it.data().join(" :: ").latin1());
- }
- }
-
- // We assume project filename is [QMAKE_ORIG_TARGET].vcproj
- TQString vcproj = fixFilename(tmp_vcproj.project->first("QMAKE_ORIG_TARGET")) + project->first("VCPROJ_EXTENSION");
-
- // If file doesn't exsist, then maybe the users configuration
- // doesn't allow it to be created. Skip to next...
- if(!TQFile::exists(TQDir::currentDirPath() + Option::dir_sep + vcproj)) {
- warn_msg(WarnLogic, "Ignored (not found) '%s'", TQString(TQDir::currentDirPath() + Option::dir_sep + vcproj).latin1() );
- goto nextfile; // # Dirty!
- }
-
- VcsolutionDepend *newDep = new VcsolutionDepend;
- newDep->vcprojFile = fileFixify(vcproj);
- newDep->orig_target = tmp_proj.first("QMAKE_ORIG_TARGET");
- newDep->target = tmp_proj.first("MSVCPROJ_TARGET").section(Option::dir_sep, -1);
- newDep->targetType = tmp_vcproj.projectTarget;
- newDep->debugBuild = tmp_proj.isActiveConfig("debug");
- newDep->uuid = getProjectUUID(Option::fixPathToLocalOS(TQDir::currentDirPath() + TQDir::separator() + vcproj)).toString().upper();
-
- // We want to store it as the .lib name.
- if(newDep->target.endsWith(".dll"))
- newDep->target = newDep->target.left(newDep->target.length()-3) + "lib";
-
- // All projects using Forms are dependent on tquic.exe
- if(!tmp_proj.isEmpty("FORMS"))
- newDep->dependencies << "tquic.exe";
-
- // Add all unknown libs to the deps
- TQStringList where("QMAKE_LIBS");
- if(!tmp_proj.isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- where = tmp_proj.variables()["QMAKE_INTERNAL_PRL_LIBS"];
- for(TQStringList::iterator wit = where.begin();
- wit != where.end(); ++wit) {
- TQStringList &l = tmp_proj.variables()[(*wit)];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString opt = (*it);
- if(!opt.startsWith("/") && // Not a switch
- opt != newDep->target && // Not self
- opt != "opengl32.lib" && // We don't care about these libs
- opt != "glu32.lib" && // to make depgen alittle faster
- opt != "kernel32.lib" &&
- opt != "user32.lib" &&
- opt != "gdi32.lib" &&
- opt != "comdlg32.lib" &&
- opt != "advapi32.lib" &&
- opt != "shell32.lib" &&
- opt != "ole32.lib" &&
- opt != "oleaut32.lib" &&
- opt != "uuid.lib" &&
- opt != "imm32.lib" &&
- opt != "winmm.lib" &&
- opt != "wsock32.lib" &&
- opt != "winspool.lib" &&
- opt != "delayimp.lib" )
- {
- newDep->dependencies << opt.section(Option::dir_sep, -1);
- }
- }
- }
-#ifdef DEBUG_SOLUTION_GEN
- tqDebug( "Deps for %20s: [%s]", newDep->target.latin1(), newDep->dependencies.join(" :: " ).latin1() );
-#endif
- solution_cleanup.append(newDep);
- solution_depends.insert(newDep->target, newDep);
- t << _slnProjectBeg << _slnMSVCvcprojGUID << _slnProjectMid
- << "\"" << newDep->orig_target << "\", \"" << newDep->vcprojFile
- << "\", \"" << newDep->uuid << "\"";
- t << _slnProjectEnd;
- }
- }
-nextfile:
- TQDir::setCurrent(oldpwd);
- }
- }
- }
- t << _slnGlobalBeg;
- t << _slnSolutionConf;
- t << _slnProjDepBeg;
-
- // Figure out dependencies
- for(solution_cleanup.first(); solution_cleanup.current(); solution_cleanup.next()) {
- int cnt = 0;
- for(TQStringList::iterator dit = solution_cleanup.current()->dependencies.begin();
- dit != solution_cleanup.current()->dependencies.end();
- ++dit)
- {
- VcsolutionDepend *vc = solution_depends[*dit];
- if(vc)
- t << "\n\t\t" << solution_cleanup.current()->uuid << "." << cnt++ << " = " << vc->uuid;
- }
- }
- t << _slnProjDepEnd;
- t << _slnProjConfBeg;
- for(solution_cleanup.first(); solution_cleanup.current(); solution_cleanup.next()) {
- t << "\n\t\t" << solution_cleanup.current()->uuid << _slnProjDbgConfTag1;
- t << "\n\t\t" << solution_cleanup.current()->uuid << _slnProjDbgConfTag2;
- t << "\n\t\t" << solution_cleanup.current()->uuid << _slnProjRelConfTag1;
- t << "\n\t\t" << solution_cleanup.current()->uuid << _slnProjRelConfTag2;
- }
- t << _slnProjConfEnd;
- t << _slnExtSections;
- t << _slnGlobalEnd;
-}
-
-// ------------------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------
-
-void VcprojGenerator::init()
-{
- if( init_flag )
- return;
- if(project->first("TEMPLATE") == "vcsubdirs") { //too much work for subdirs
- init_flag = TRUE;
- return;
- }
-
- debug_msg(1, "Generator: MSVC.NET: Initializing variables" );
-
-/*
- // Once to be nice and clean code...
- // Wouldn't life be great?
-
- // Are we building TQt?
- bool is_qt =
- ( project->first("TARGET") == "qt" TQTDLL_POSTFIX ||
- project->first("TARGET") == "tqt-mt" TQTDLL_POSTFIX );
-
- // Are we using TQt?
- bool isTQtActive = project->isActiveConfig("qt");
-
- if ( isTQtActive ) {
- project->variables()["CONFIG"] += "moc";
- project->variables()["CONFIG"] += "windows";
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQT"];
- project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_TQT"];
-
- if( projectTarget == SharedLib )
- project->variables()["DEFINES"] += "QT_DLL";
-
- if( project->isActiveConfig("accessibility" ) )
- project->variables()["DEFINES"] += "QT_ACCESSIBILITY_SUPPORT";
-
- if ( project->isActiveConfig("plugin")) {
- project->variables()["DEFINES"] += "QT_PLUGIN";
- project->variables()["CONFIG"] += "dll";
- }
-
- if( project->isActiveConfig("thread") ) {
- project->variables()["DEFINES"] += "TQT_THREAD_SUPPORT";
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_THREAD"];
- } else {
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];
- }
- }
-
- if ( project->isActiveConfig("opengl") ) {
- project->variables()["CONFIG"] += "windows"; // <-- Also in 'qt' above
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_OPENGL"];
-
- }
-*/
- initOld(); // Currently calling old DSP code to set variables. CLEAN UP!
-
- // Figure out what we're trying to build
- if ( project->first("TEMPLATE") == "vcapp" ) {
- projectTarget = Application;
- } else if ( project->first("TEMPLATE") == "vclib") {
- if ( project->isActiveConfig( "staticlib" ) )
- projectTarget = StaticLib;
- else
- projectTarget = SharedLib;
- }
-
- // Setup PCH variables
- precompH = project->first("PRECOMPILED_HEADER");
- usePCH = !precompH.isEmpty() && project->isActiveConfig("precompile_header");
- if (usePCH) {
- precompHFilename = TQFileInfo(precompH).fileName();
- // Created files
- TQString origTarget = project->first("QMAKE_ORIG_TARGET");
- precompObj = origTarget + Option::obj_ext;
- precompPch = origTarget + ".pch";
- // Add PRECOMPILED_HEADER to HEADERS
- if (!project->variables()["HEADERS"].contains(precompH))
- project->variables()["HEADERS"] += precompH;
- // Return to variable pool
- project->variables()["PRECOMPILED_OBJECT"] = precompObj;
- project->variables()["PRECOMPILED_PCH"] = precompPch;
- }
-
- initProject(); // Fills the whole project with proper data
-}
-
-void VcprojGenerator::initProject()
-{
- // Initialize XML sub elements
- // - Do this first since project elements may need
- // - to know of certain configuration options
- initConfiguration();
- initSourceFiles();
- initHeaderFiles();
- initMOCFiles();
- initUICFiles();
- initFormsFiles();
- initTranslationFiles();
- initLexYaccFiles();
- initResourceFiles();
-
- // Own elements -----------------------------
- vcProject.Name = project->first("QMAKE_ORIG_TARGET");
-
- switch(which_dotnet_version()) {
- case NET2005:
- vcProject.Version = "8.00";
- break;
- case NET2003:
- vcProject.Version = "7.10";
- break;
- case NET2002:
- vcProject.Version = "7.00";
- break;
- default:
- vcProject.Version = "7.00";
- break;
- }
-
- vcProject.ProjectGUID = getProjectUUID().toString().upper();
- vcProject.PlatformName = ( vcProject.Configuration[0].idl.TargetEnvironment == midlTargetWin64 ? "Win64" : "Win32" );
- // These are not used by TQt, but may be used by customers
- vcProject.SccProjectName = project->first("SCCPROJECTNAME");
- vcProject.SccLocalPath = project->first("SCCLOCALPATH");
-}
-
-void VcprojGenerator::initConfiguration()
-{
- // Initialize XML sub elements
- // - Do this first since main configuration elements may need
- // - to know of certain compiler/linker options
- initCompilerTool();
- if ( projectTarget == StaticLib )
- initLibrarianTool();
- else
- initLinkerTool();
- initIDLTool();
-
- // Own elements -----------------------------
- TQString temp = project->first("BuildBrowserInformation");
- switch ( projectTarget ) {
- case SharedLib:
- vcProject.Configuration[0].ConfigurationType = typeDynamicLibrary;
- break;
- case StaticLib:
- vcProject.Configuration[0].ConfigurationType = typeStaticLibrary;
- break;
- case Application:
- default:
- vcProject.Configuration[0].ConfigurationType = typeApplication;
- break;
- }
-
- // Release version of the Configuration ---------------
- VCConfiguration &RConf = vcProject.Configuration[0];
- RConf.Name = "Release";
- RConf.Name += ( RConf.idl.TargetEnvironment == midlTargetWin64 ? "|Win64" : "|Win32" );
- RConf.ATLMinimizesCRunTimeLibraryUsage = ( project->first("ATLMinimizesCRunTimeLibraryUsage").isEmpty() ? _False : _True );
- RConf.BuildBrowserInformation = triState( temp.isEmpty() ? (short)unset : temp.toShort() );
- temp = project->first("CharacterSet");
- RConf.CharacterSet = charSet( temp.isEmpty() ? (short)charSetNotSet : temp.toShort() );
- RConf.DeleteExtensionsOnClean = project->first("DeleteExtensionsOnClean");
- RConf.ImportLibrary = RConf.linker.ImportLibrary;
- RConf.IntermediateDirectory = project->first("OBJECTS_DIR");
- RConf.OutputDirectory = ".";
- RConf.PrimaryOutput = project->first("PrimaryOutput");
- RConf.WholeProgramOptimization = RConf.compiler.WholeProgramOptimization;
- temp = project->first("UseOfATL");
- if ( !temp.isEmpty() )
- RConf.UseOfATL = useOfATL( temp.toShort() );
- temp = project->first("UseOfMfc");
- if ( !temp.isEmpty() )
- RConf.UseOfMfc = useOfMfc( temp.toShort() );
-
- // Configuration does not need parameters from
- // these sub XML items;
- initCustomBuildTool();
- initPreBuildEventTools();
- initPostBuildEventTools();
- initPreLinkEventTools();
-
- // Debug version of the Configuration -----------------
- VCConfiguration DConf = vcProject.Configuration[0]; // Create copy configuration for debug
- DConf.Name = "Debug";
- DConf.Name += ( DConf.idl.TargetEnvironment == midlTargetWin64 ? "|Win64" : "|Win32" );
-
- // Set definite values in both configurations
- DConf.compiler.PreprocessorDefinitions.remove("NDEBUG");
- RConf.compiler.PreprocessorDefinitions += "NDEBUG";
- RConf.linker.GenerateDebugInformation = _False;
- DConf.linker.GenerateDebugInformation = _True;
-
- // Modify configurations, based on TQt build
- if ( !project->isActiveConfig("debug") ) {
- RConf.IntermediateDirectory =
- RConf.compiler.AssemblerListingLocation =
- RConf.compiler.ObjectFile = "Release\\";
- RConf.librarian.OutputFile =
- RConf.linker.OutputFile = RConf.IntermediateDirectory + "\\" + project->first("MSVCPROJ_TARGET");
- RConf.linker.parseOptions(project->variables()["QMAKE_LFLAGS_RELEASE"]);
- RConf.compiler.parseOptions(project->variables()["QMAKE_CFLAGS_RELEASE"]);
- RConf.compiler.parseOptions(project->variables()["QMAKE_CXXFLAGS_RELEASE"]);
- if (!project->variables()["QMAKE_CXXFLAGS_RELEASE"].contains("Gm")
- && project->variables()["QMAKE_CXXFLAGS_DEBUG"].contains("Gm"))
- RConf.compiler.parseOption("-Gm-");
- if (RConf.compiler.PreprocessorDefinitions.findIndex("TQT_NO_DEBUG") == -1)
- RConf.compiler.PreprocessorDefinitions += "TQT_NO_DEBUG";
- } else {
- DConf.IntermediateDirectory =
- DConf.compiler.AssemblerListingLocation =
- DConf.compiler.ObjectFile = "Debug\\";
- DConf.librarian.OutputFile =
- DConf.linker.OutputFile = DConf.IntermediateDirectory + "\\" + project->first("MSVCPROJ_TARGET");
- DConf.linker.DelayLoadDLLs.clear();
- DConf.compiler.parseOptions(project->variables()["QMAKE_CFLAGS_DEBUG"]);
- DConf.compiler.parseOptions(project->variables()["QMAKE_CXXFLAGS_DEBUG"]);
- DConf.compiler.PreprocessorDefinitions.remove("TQT_NO_DEBUG");
- }
-
- // Add Debug configuration to project
- vcProject.Configuration += DConf;
-}
-
-void VcprojGenerator::initCompilerTool()
-{
- TQString placement = project->first("OBJECTS_DIR");
- if ( placement.isEmpty() )
- placement = ".\\";
-
- VCConfiguration &RConf = vcProject.Configuration[0];
- RConf.compiler.AssemblerListingLocation = placement ;
- RConf.compiler.ProgramDataBaseFileName = ".\\" ;
- RConf.compiler.ObjectFile = placement ;
- // PCH
- if ( usePCH ) {
- RConf.compiler.UsePrecompiledHeader = pchUseUsingSpecific;
- RConf.compiler.PrecompiledHeaderFile = "$(IntDir)\\" + precompPch;
- RConf.compiler.PrecompiledHeaderThrough = precompHFilename;
- RConf.compiler.ForcedIncludeFiles = precompHFilename;
- // Minimal build option triggers an Internal Compiler Error
- // when used in conjunction with /FI and /Yu, so remove it
- project->variables()["QMAKE_CFLAGS_DEBUG"].remove("-Gm");
- project->variables()["QMAKE_CFLAGS_DEBUG"].remove("/Gm");
- project->variables()["QMAKE_CXXFLAGS_DEBUG"].remove("-Gm");
- project->variables()["QMAKE_CXXFLAGS_DEBUG"].remove("/Gm");
- }
-
- if ( project->isActiveConfig("debug") ){
- // Debug version
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS"] );
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_DEBUG"] );
- if ( project->isActiveConfig("thread") ) {
- if ( (projectTarget == Application) || (projectTarget == StaticLib) )
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_MT_DBG"] );
- else
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_MT_DLLDBG"] );
- }
- } else {
- // Release version
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS"] );
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_RELEASE"] );
- RConf.compiler.PreprocessorDefinitions += "TQT_NO_DEBUG";
- RConf.compiler.PreprocessorDefinitions += "NDEBUG";
- if ( project->isActiveConfig("thread") ) {
- if ( (projectTarget == Application) || (projectTarget == StaticLib) )
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_MT"] );
- else
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_MT_DLL"] );
- }
- }
-
- // Common for both release and debug
- if ( project->isActiveConfig("warn_off") )
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_WARN_OFF"] );
- else if ( project->isActiveConfig("warn_on") )
- RConf.compiler.parseOptions( project->variables()["QMAKE_CXXFLAGS_WARN_ON"] );
- if ( project->isActiveConfig("windows") )
- RConf.compiler.PreprocessorDefinitions += project->variables()["MSVCPROJ_WINCONDEF"];
-
- // Can this be set for ALL configs?
- // If so, use qmake.conf!
- if ( projectTarget == SharedLib )
- RConf.compiler.PreprocessorDefinitions += "_WINDOWS";
-
- RConf.compiler.PreprocessorDefinitions += project->variables()["DEFINES"];
- RConf.compiler.PreprocessorDefinitions += project->variables()["PRL_EXPORT_DEFINES"];
- TQStringList::iterator it;
- for(it=RConf.compiler.PreprocessorDefinitions.begin();
- it!=RConf.compiler.PreprocessorDefinitions.end();
- ++it)
- (*it).replace('\"', """);
-
- RConf.compiler.parseOptions( project->variables()["MSVCPROJ_INCPATH"] );
-}
-
-void VcprojGenerator::initLibrarianTool()
-{
- VCConfiguration &RConf = vcProject.Configuration[0];
- RConf.librarian.OutputFile = project->first( "DESTDIR" ).replace("&", "&");
- if( RConf.librarian.OutputFile.isEmpty() )
- RConf.librarian.OutputFile = ".\\";
-
- if( !RConf.librarian.OutputFile.endsWith("\\") )
- RConf.librarian.OutputFile += '\\';
-
- RConf.librarian.OutputFile += project->first("MSVCPROJ_TARGET");
-}
-
-void VcprojGenerator::initLinkerTool()
-{
- VCConfiguration &RConf = vcProject.Configuration[0];
- RConf.linker.parseOptions( project->variables()["MSVCPROJ_LFLAGS"] );
- RConf.linker.AdditionalDependencies += project->variables()["MSVCPROJ_LIBS"];
-
- switch ( projectTarget ) {
- case Application:
- RConf.linker.OutputFile = project->first( "DESTDIR" );
- break;
- case SharedLib:
- RConf.linker.parseOptions( project->variables()["MSVCPROJ_LIBOPTIONS"] );
- RConf.linker.OutputFile = project->first( "DESTDIR" );
- break;
- case StaticLib: //unhandled - added to remove warnings..
- break;
- }
-
- if( RConf.linker.OutputFile.isEmpty() )
- RConf.linker.OutputFile = ".\\";
-
- if( !RConf.linker.OutputFile.endsWith("\\") )
- RConf.linker.OutputFile += '\\';
-
- RConf.linker.OutputFile += project->first("MSVCPROJ_TARGET");
-
- if ( project->isActiveConfig("debug") ){
- RConf.linker.parseOptions( project->variables()["QMAKE_LFLAGS_DEBUG"] );
- } else {
- RConf.linker.parseOptions( project->variables()["QMAKE_LFLAGS_RELEASE"] );
- }
-
- if ( project->isActiveConfig("dll") ){
- RConf.linker.parseOptions( project->variables()["QMAKE_LFLAGS_QT_DLL"] );
- }
-
- if ( project->isActiveConfig("console") ){
- RConf.linker.parseOptions( project->variables()["QMAKE_LFLAGS_CONSOLE"] );
- } else {
- RConf.linker.parseOptions( project->variables()["QMAKE_LFLAGS_WINDOWS"] );
- }
-
-}
-
-void VcprojGenerator::initIDLTool()
-{
-}
-
-void VcprojGenerator::initCustomBuildTool()
-{
-}
-
-void VcprojGenerator::initPreBuildEventTools()
-{
-}
-
-void VcprojGenerator::initPostBuildEventTools()
-{
- VCConfiguration &RConf = vcProject.Configuration[0];
- if ( !project->variables()["QMAKE_POST_LINK"].isEmpty() ) {
- RConf.postBuild.Description = var("QMAKE_POST_LINK");
- RConf.postBuild.CommandLine = var("QMAKE_POST_LINK");
- RConf.postBuild.Description.replace(" && ", " && ");
- RConf.postBuild.CommandLine.replace(" && ", " && ");
- }
- if ( !project->variables()["MSVCPROJ_COPY_DLL"].isEmpty() ) {
- if ( !RConf.postBuild.CommandLine.isEmpty() )
- RConf.postBuild.CommandLine += " && ";
- RConf.postBuild.Description += var("MSVCPROJ_COPY_DLL_DESC");
- RConf.postBuild.CommandLine += var("MSVCPROJ_COPY_DLL");
- }
-}
-
-void VcprojGenerator::initPreLinkEventTools()
-{
-}
-
-
-// ------------------------------------------------------------------
-// Helper functions to do proper sorting of the
-// tqstringlists, for both flat and non-flat modes.
-inline bool XLessThanY( TQString &x, TQString &y, bool flat_mode )
-{
- if ( flat_mode ) {
- TQString subX = x.mid( x.findRev('\\')+1 );
- TQString subY = y.mid( y.findRev('\\')+1 );
- return TQString::compare(subX, subY) < 0;
- }
-
- int xPos = 0;
- int yPos = 0;
- int xSlashPos;
- int ySlashPos;
- for (;;) {
- xSlashPos = x.find('\\', xPos);
- ySlashPos = y.find('\\', yPos);
-
- if (xSlashPos == -1 && ySlashPos != -1) {
- return FALSE;
- } else if (xSlashPos != -1 && ySlashPos == -1) {
- return TRUE;
- } else if (xSlashPos == -1 /* && yySlashPos == -1 */) {
- TQString subX = x.mid(xPos);
- TQString subY = y.mid(yPos);
- return TQString::compare(subX, subY) < 0;
- } else {
- TQString subX = x.mid(xPos, xSlashPos - xPos);
- TQString subY = y.mid(yPos, ySlashPos - yPos);
- int cmp = TQString::compare(subX, subY);
- if (cmp != 0)
- return cmp < 0;
- }
- xPos = xSlashPos + 1;
- yPos = ySlashPos + 1;
- }
- return FALSE;
-}
-void nonflatDir_BubbleSort( TQStringList& list, bool flat_mode )
-{
- TQStringList::Iterator b = list.begin();
- TQStringList::Iterator e = list.end();
- TQStringList::Iterator last = e;
- --last; // goto last
- if ( last == b ) // shortcut
- return;
- while( b != last ) {// sort them
- bool swapped = FALSE;
- TQStringList::Iterator swap_pos = b;
- TQStringList::Iterator x = e;
- TQStringList::Iterator y = x;
- --y;
- TQString swap_str;
- do {
- --x;
- --y;
- if ( XLessThanY(*x,*y, flat_mode) ) {
- swapped = TRUE;
- swap_str = (*x); // Swap -------
- (*x) = (*y);
- (*y) = swap_str; // ------------
- swap_pos = y;
- }
- } while( y != b );
- if ( !swapped )
- return;
- b = swap_pos;
- ++b;
- }
-}
-// ------------------------------------------------------------------
-
-void VcprojGenerator::initSourceFiles()
-{
- vcProject.SourceFiles.flat_files = project->isActiveConfig("flat");
- vcProject.SourceFiles.Name = "Source Files";
- vcProject.SourceFiles.Filter = "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat";
- vcProject.SourceFiles.Files += project->variables()["SOURCES"].gres("&", "&");
- nonflatDir_BubbleSort( vcProject.SourceFiles.Files,
- vcProject.SourceFiles.flat_files );
- vcProject.SourceFiles.Project = this;
- vcProject.SourceFiles.Config = &(vcProject.Configuration);
- vcProject.SourceFiles.CustomBuild = none;
-}
-
-void VcprojGenerator::initHeaderFiles()
-{
- vcProject.HeaderFiles.flat_files = project->isActiveConfig("flat");
- vcProject.HeaderFiles.Name = "Header Files";
- vcProject.HeaderFiles.Filter = "h;hpp;hxx;hm;inl";
- vcProject.HeaderFiles.Files += project->variables()["HEADERS"];
- if (usePCH) { // Generated PCH cpp file
- if (!vcProject.HeaderFiles.Files.contains(precompH))
- vcProject.HeaderFiles.Files += precompH;
- }
- nonflatDir_BubbleSort( vcProject.HeaderFiles.Files,
- vcProject.HeaderFiles.flat_files );
- vcProject.HeaderFiles.Project = this;
- vcProject.HeaderFiles.Config = &(vcProject.Configuration);
- vcProject.HeaderFiles.CustomBuild = moc;
-}
-
-void VcprojGenerator::initMOCFiles()
-{
- vcProject.MOCFiles.flat_files = project->isActiveConfig("flat");
- vcProject.MOCFiles.Name = "Generated MOC Files";
- vcProject.MOCFiles.Filter = "cpp;c;cxx;moc";
- vcProject.MOCFiles.Files += project->variables()["SRCMOC"].gres("&", "&");
- nonflatDir_BubbleSort( vcProject.MOCFiles.Files,
- vcProject.MOCFiles.flat_files );
- vcProject.MOCFiles.Project = this;
- vcProject.MOCFiles.Config = &(vcProject.Configuration);
- vcProject.MOCFiles.CustomBuild = moc;
-}
-
-void VcprojGenerator::initUICFiles()
-{
- vcProject.UICFiles.flat_files = project->isActiveConfig("flat");
- vcProject.UICFiles.Name = "Generated Form Files";
- vcProject.UICFiles.Filter = "cpp;c;cxx;h;hpp;hxx;";
- vcProject.UICFiles.Project = this;
- vcProject.UICFiles.Files += project->variables()["UICDECLS"].gres("&", "&");
- vcProject.UICFiles.Files += project->variables()["UICIMPLS"].gres("&", "&");
- nonflatDir_BubbleSort( vcProject.UICFiles.Files,
- vcProject.UICFiles.flat_files );
- vcProject.UICFiles.Config = &(vcProject.Configuration);
- vcProject.UICFiles.CustomBuild = none;
-}
-
-void VcprojGenerator::initFormsFiles()
-{
- vcProject.FormFiles.flat_files = project->isActiveConfig("flat");
- vcProject.FormFiles.Name = "Forms";
- vcProject.FormFiles.ParseFiles = _False;
- vcProject.FormFiles.Filter = "ui";
- vcProject.FormFiles.Files += project->variables()["FORMS"].gres("&", "&");
- nonflatDir_BubbleSort( vcProject.FormFiles.Files,
- vcProject.FormFiles.flat_files );
- vcProject.FormFiles.Project = this;
- vcProject.FormFiles.Config = &(vcProject.Configuration);
- vcProject.FormFiles.CustomBuild = tquic;
-}
-
-void VcprojGenerator::initTranslationFiles()
-{
- vcProject.TranslationFiles.flat_files = project->isActiveConfig("flat");
- vcProject.TranslationFiles.Name = "Translations Files";
- vcProject.TranslationFiles.ParseFiles = _False;
- vcProject.TranslationFiles.Filter = "ts";
- vcProject.TranslationFiles.Files += project->variables()["TRANSLATIONS"].gres("&", "&");
- nonflatDir_BubbleSort( vcProject.TranslationFiles.Files,
- vcProject.TranslationFiles.flat_files );
- vcProject.TranslationFiles.Project = this;
- vcProject.TranslationFiles.Config = &(vcProject.Configuration);
- vcProject.TranslationFiles.CustomBuild = none;
-}
-
-void VcprojGenerator::initLexYaccFiles()
-{
- vcProject.LexYaccFiles.flat_files = project->isActiveConfig("flat");
- vcProject.LexYaccFiles.Name = "Lex / Yacc Files";
- vcProject.LexYaccFiles.ParseFiles = _False;
- vcProject.LexYaccFiles.Filter = "l;y";
- vcProject.LexYaccFiles.Files += project->variables()["LEXSOURCES"].gres("&", "&");
- vcProject.LexYaccFiles.Files += project->variables()["YACCSOURCES"].gres("&", "&");
- nonflatDir_BubbleSort( vcProject.LexYaccFiles.Files,
- vcProject.LexYaccFiles.flat_files );
- vcProject.LexYaccFiles.Project = this;
- vcProject.LexYaccFiles.Config = &(vcProject.Configuration);
- vcProject.LexYaccFiles.CustomBuild = lexyacc;
-}
-
-void VcprojGenerator::initResourceFiles()
-{
- vcProject.ResourceFiles.flat_files = project->isActiveConfig("flat");
- vcProject.ResourceFiles.Name = "Resources";
- vcProject.ResourceFiles.ParseFiles = _False;
- vcProject.ResourceFiles.Filter = "cpp;ico;png;jpg;jpeg;gif;xpm;bmp;rc;ts";
- if (!project->variables()["RC_FILE"].isEmpty())
- vcProject.ResourceFiles.Files += project->variables()["RC_FILE"].gres("&", "&");
- if (!project->variables()["RES_FILE"].isEmpty())
- vcProject.ResourceFiles.Files += project->variables()["RES_FILE"].gres("&", "&");
- vcProject.ResourceFiles.Files += project->variables()["QMAKE_IMAGE_COLLECTION"].gres("&", "&");
- vcProject.ResourceFiles.Files += project->variables()["IMAGES"].gres("&", "&");
- vcProject.ResourceFiles.Files += project->variables()["IDLSOURCES"].gres("&", "&");
- nonflatDir_BubbleSort( vcProject.ResourceFiles.Files,
- vcProject.ResourceFiles.flat_files );
- vcProject.ResourceFiles.Project = this;
- vcProject.ResourceFiles.Config = &(vcProject.Configuration);
- vcProject.ResourceFiles.CustomBuild = resource;
-}
-
-/* \internal
- Sets up all needed variables from the environment and all the different caches and .conf files
-*/
-
-void VcprojGenerator::initOld()
-{
- if( init_flag )
- return;
-
- init_flag = TRUE;
- TQStringList::Iterator it;
-
- if ( project->isActiveConfig("stl") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_OFF"];
- }
- if ( project->isActiveConfig("exceptions") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_OFF"];
- }
- if ( project->isActiveConfig("rtti") ) {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_ON"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_ON"];
- } else {
- project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_OFF"];
- project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_OFF"];
- }
-
- // this should probably not be here, but I'm using it to wrap the .t files
- if(project->first("TEMPLATE") == "vcapp" )
- project->variables()["QMAKE_APP_FLAG"].append("1");
- else if(project->first("TEMPLATE") == "vclib")
- project->variables()["QMAKE_LIB_FLAG"].append("1");
- if ( project->variables()["QMAKESPEC"].isEmpty() )
- project->variables()["QMAKESPEC"].append( getenv("QMAKESPEC") );
-
- bool is_qt =
- ( project->first("TARGET") == "qt" TQTDLL_POSTFIX ||
- project->first("TARGET") == "tqt-mt" TQTDLL_POSTFIX );
-
- TQStringList &configs = project->variables()["CONFIG"];
-
- if ( project->isActiveConfig( "shared" ) )
- project->variables()["DEFINES"].append( "QT_DLL" );
-
- if ( project->isActiveConfig( "qt_dll" ) &&
- configs.findIndex("qt") == -1 )
- configs.append("qt");
-
- if ( project->isActiveConfig( "qt" ) ) {
- if ( project->isActiveConfig( "plugin" ) ) {
- project->variables()["CONFIG"].append( "dll" );
- project->variables()["DEFINES"].append( "QT_PLUGIN" );
- }
- if ( ( project->variables()["DEFINES"].findIndex( "QT_NODLL" ) == -1 ) &&
- (( project->variables()["DEFINES"].findIndex( "QT_MAKEDLL" ) != -1 ||
- project->variables()["DEFINES"].findIndex( "QT_DLL" ) != -1 ) ||
- ( getenv( "QT_DLL" ) && !getenv( "QT_NODLL" ))) ) {
- project->variables()["QMAKE_QT_DLL"].append( "1" );
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() )
- project->variables()["CONFIG"].append( "dll" );
- }
- }
-
- // If we are a dll, then we cannot be a staticlib at the same time...
- if ( project->isActiveConfig( "dll" ) || !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
- project->variables()["CONFIG"].remove( "staticlib" );
- project->variables()["QMAKE_APP_OR_DLL"].append( "1" );
- } else {
- project->variables()["CONFIG"].append( "staticlib" );
- }
-
- // If we need 'qt' and/or 'opengl', then we need windows and not console
- if ( project->isActiveConfig( "qt" ) || project->isActiveConfig( "opengl" ) ) {
- project->variables()["CONFIG"].append( "windows" );
- }
-
- // Decode version, and add it to $$MSVCPROJ_VERSION --------------
- if ( !project->variables()["VERSION"].isEmpty() ) {
- TQString version = project->variables()["VERSION"][0];
- int firstDot = version.find( "." );
- TQString major = version.left( firstDot );
- TQString minor = version.right( version.length() - firstDot - 1 );
- minor.replace( TQRegExp( "\\." ), "" );
- project->variables()["MSVCPROJ_VERSION"].append( "/VERSION:" + major + "." + minor );
- }
-
- // QT ------------------------------------------------------------
- if ( project->isActiveConfig("qt") ) {
- project->variables()["CONFIG"].append("moc");
- project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_TQT"];
- project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_TQT"];
-
- if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {
- project->variables()["DEFINES"].append("QT_MAKEDLL");
- project->variables()["QMAKE_LFLAGS"].append("/BASE:0x39D00000");
- }
- } else {
- if(project->isActiveConfig("thread"))
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_THREAD"];
- else
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];
- if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {
- int hver = findHighestVersion(project->first("QMAKE_LIBDIR_TQT"), "qt");
- if( hver==-1 ) {
- hver = findHighestVersion( project->first("QMAKE_LIBDIR_TQT"), "tqt-mt" );
- }
-
- if(hver != -1) {
- TQString ver;
- ver.sprintf("qt%s" TQTDLL_POSTFIX "%d.lib", (project->isActiveConfig("thread") ? "-mt" : ""), hver);
- TQStringList &libs = project->variables()["QMAKE_LIBS"];
- for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit)
- (*libit).replace(TQRegExp("qt(-mt)?\\.lib"), ver);
- }
- }
- if ( !project->isActiveConfig("dll") && !project->isActiveConfig("plugin") ) {
- project->variables()["QMAKE_LIBS"] +=project->variables()["QMAKE_LIBS_QT_ENTRY"];
- }
- }
- }
-
- // Set target directories ----------------------------------------
- // if ( !project->first("OBJECTS_DIR").isEmpty() )
- //project->variables()["MSVCPROJ_OBJECTSDIR"] = project->first("OBJECTS_DIR");
- // else
- //project->variables()["MSVCPROJ_OBJECTSDIR"] = project->isActiveConfig( "release" )?"Release":"Debug";
- // if ( !project->first("DESTDIR").isEmpty() )
- //project->variables()["MSVCPROJ_TARGETDIR"] = project->first("DESTDIR");
- // else
- //project->variables()["MSVCPROJ_TARGETDIR"] = project->isActiveConfig( "release" )?"Release":"Debug";
-
- // OPENGL --------------------------------------------------------
- if ( project->isActiveConfig("opengl") ) {
- project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];
- project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_OPENGL"];
- }
-
- // THREAD --------------------------------------------------------
- if ( project->isActiveConfig("thread") ) {
- if(project->isActiveConfig("qt"))
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_THREAD_SUPPORT" );
- if ( !project->variables()["DEFINES"].contains("QT_DLL") && is_qt
- && project->first("TARGET") != "qtmain" )
- project->variables()["QMAKE_LFLAGS"].append("/NODEFAULTLIB:libc");
- }
-
- // ACCESSIBILITY -------------------------------------------------
- if(project->isActiveConfig("qt")) {
- if ( project->isActiveConfig("accessibility" ) )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_ACCESSIBILITY_SUPPORT");
- if ( project->isActiveConfig("tablet") )
- project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_TABLET_SUPPORT");
- }
-
- // DLL -----------------------------------------------------------
- if ( project->isActiveConfig("dll") ) {
- if ( !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {
- TQString ver_xyz(project->first("VERSION"));
- ver_xyz.replace(TQRegExp("\\."), "");
- project->variables()["TARGET_EXT"].append(ver_xyz + ".dll");
- } else {
- project->variables()["TARGET_EXT"].append(".dll");
- }
- }
- // EXE / LIB -----------------------------------------------------
- else {
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() )
- project->variables()["TARGET_EXT"].append(".exe");
- else
- project->variables()["TARGET_EXT"].append(".lib");
- }
-
- project->variables()["MSVCPROJ_VER"] = "7.00";
- project->variables()["MSVCPROJ_DEBUG_OPT"] = "/GZ /ZI";
-
- // INCREMENTAL:NO ------------------------------------------------
- if(!project->isActiveConfig("incremental")) {
- project->variables()["QMAKE_LFLAGS"].append(TQString("/INCREMENTAL:no"));
- if ( is_qt )
- project->variables()["MSVCPROJ_DEBUG_OPT"] = "/GZ /Zi";
- }
-
- // MOC -----------------------------------------------------------
- if ( project->isActiveConfig("moc") )
- setTQMocAware(TRUE);
-
- // /VERSION:x.yz -------------------------------------------------
- if ( !project->variables()["VERSION"].isEmpty() ) {
- TQString version = project->variables()["VERSION"][0];
- int firstDot = version.find( "." );
- TQString major = version.left( firstDot );
- TQString minor = version.right( version.length() - firstDot - 1 );
- minor.replace( ".", "" );
- project->variables()["QMAKE_LFLAGS"].append( "/VERSION:" + major + "." + minor );
- }
-
- project->variables()["QMAKE_LIBS"] += project->variables()["LIBS"];
- // Update -lname to name.lib, and -Ldir to
- TQStringList &libList = project->variables()["QMAKE_LIBS"];
- for( it = libList.begin(); it != libList.end(); ) {
- TQString s = *it;
- s.replace("&", "&");
- if( s.startsWith( "-l" ) ) {
- it = libList.remove( it );
- it = libList.insert( it, s.mid( 2 ) + ".lib" );
- } else if( s.startsWith( "-L" ) ) {
- project->variables()["QMAKE_LIBDIR"] += (*it).mid(2);
- it = libList.remove( it );
- } else {
- it++;
- }
- }
-
- // Run through all variables containing filepaths, and -----------
- // slash-slosh them correctly depending on current OS -----------
- project->variables()["QMAKE_FILETAGS"] += TQStringList::split(' ', "HEADERS SOURCES DEF_FILE RC_FILE TARGET QMAKE_LIBS DESTDIR DLLDESTDIR INCLUDEPATH");
- TQStringList &l = project->variables()["QMAKE_FILETAGS"];
- for(it = l.begin(); it != l.end(); ++it) {
- TQStringList &gdmf = project->variables()[(*it)];
- for(TQStringList::Iterator inner = gdmf.begin(); inner != gdmf.end(); ++inner)
- (*inner) = Option::fixPathToTargetOS((*inner), FALSE);
- }
-
- // Get filename w/o extention -----------------------------------
- TQString msvcproj_project = "";
- TQString targetfilename = "";
- if ( project->variables()["TARGET"].count() ) {
- msvcproj_project = project->variables()["TARGET"].first();
- targetfilename = msvcproj_project;
- }
-
- // Save filename w/o extention in $$QMAKE_ORIG_TARGET ------------
- project->variables()["QMAKE_ORIG_TARGET"] = project->variables()["TARGET"];
-
- // TARGET (add extention to $$TARGET)
- //project->variables()["MSVCPROJ_DEFINES"].append(varGlue(".first() += project->first("TARGET_EXT");
-
- // Init base class too -------------------------------------------
- MakefileGenerator::init();
-
-
- if ( msvcproj_project.isEmpty() )
- msvcproj_project = Option::output.name();
-
- msvcproj_project = msvcproj_project.right( msvcproj_project.length() - msvcproj_project.findRev( "\\" ) - 1 );
- msvcproj_project = msvcproj_project.left( msvcproj_project.findRev( "." ) );
- msvcproj_project.replace(TQRegExp("-"), "");
-
- project->variables()["MSVCPROJ_PROJECT"].append(msvcproj_project);
- TQStringList &proj = project->variables()["MSVCPROJ_PROJECT"];
-
- for(it = proj.begin(); it != proj.end(); ++it)
- (*it).replace(TQRegExp("\\.[a-zA-Z0-9_]*$"), "");
-
- // SUBSYSTEM -----------------------------------------------------
- if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {
- project->variables()["MSVCPROJ_TEMPLATE"].append("win32app" + project->first( "VCPROJ_EXTENSION" ) );
- if ( project->isActiveConfig("console") ) {
- project->variables()["MSVCPROJ_CONSOLE"].append("CONSOLE");
- project->variables()["MSVCPROJ_WINCONDEF"].append("_CONSOLE");
- project->variables()["MSVCPROJ_VCPROJTYPE"].append("0x0103");
- project->variables()["MSVCPROJ_SUBSYSTEM"].append("CONSOLE");
- } else {
- project->variables()["MSVCPROJ_CONSOLE"].clear();
- project->variables()["MSVCPROJ_WINCONDEF"].append("_WINDOWS");
- project->variables()["MSVCPROJ_VCPROJTYPE"].append("0x0101");
- project->variables()["MSVCPROJ_SUBSYSTEM"].append("WINDOWS");
- }
- } else {
- if ( project->isActiveConfig("dll") ) {
- project->variables()["MSVCPROJ_TEMPLATE"].append("win32dll" + project->first( "VCPROJ_EXTENSION" ) );
- } else {
- project->variables()["MSVCPROJ_TEMPLATE"].append("win32lib" + project->first( "VCPROJ_EXTENSION" ) );
- }
- }
-
- // $$QMAKE.. -> $$MSVCPROJ.. -------------------------------------
- project->variables()["MSVCPROJ_LIBS"] += project->variables()["QMAKE_LIBS"];
- project->variables()["MSVCPROJ_LIBS"] += project->variables()["QMAKE_LIBS_WINDOWS"];
- project->variables()["MSVCPROJ_LFLAGS" ] += project->variables()["QMAKE_LFLAGS"];
- if ( !project->variables()["QMAKE_LIBDIR"].isEmpty() ) {
- TQStringList strl = project->variables()["QMAKE_LIBDIR"];
- TQStringList::iterator stri;
- for ( stri = strl.begin(); stri != strl.end(); ++stri ) {
- (*stri).replace("&", "&");
- if ( !(*stri).startsWith("/LIBPATH:") )
- (*stri).prepend( "/LIBPATH:" );
- }
- project->variables()["MSVCPROJ_LFLAGS"] += strl;
- }
- project->variables()["MSVCPROJ_CXXFLAGS" ] += project->variables()["QMAKE_CXXFLAGS"];
- // We don't use this... Direct manipulation of compiler object
- //project->variables()["MSVCPROJ_DEFINES"].append(varGlue("DEFINES","/D ","" " /D ",""));
- //project->variables()["MSVCPROJ_DEFINES"].append(varGlue("PRL_EXPORT_DEFINES","/D ","" " /D ",""));
- TQStringList &incs = project->variables()["INCLUDEPATH"];
- for(TQStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) {
- TQString inc = (*incit);
- inc.replace("&", "&");
- inc.replace(TQRegExp("\""), "");
- project->variables()["MSVCPROJ_INCPATH"].append("/I" + inc );
- }
- project->variables()["MSVCPROJ_INCPATH"].append("/I" + specdir());
-
- TQString dest;
- project->variables()["MSVCPROJ_TARGET"] = project->first("TARGET");
- Option::fixPathToTargetOS(project->first("TARGET"));
- dest = project->first("TARGET") + project->first( "TARGET_EXT" );
- if ( project->first("TARGET").startsWith("$(TQTDIR)") )
- dest.replace( TQRegExp("\\$\\(TQTDIR\\)"), getenv("TQTDIR") );
- project->variables()["MSVCPROJ_TARGET"] = dest;
-
- // DLL COPY ------------------------------------------------------
- if ( project->isActiveConfig("dll") && !project->variables()["DLLDESTDIR"].isEmpty() ) {
- TQStringList dlldirs = project->variables()["DLLDESTDIR"].gres("&", "&");
- TQString copydll("");
- TQStringList::Iterator dlldir;
- for ( dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir ) {
- if ( !copydll.isEmpty() )
- copydll += " && ";
- copydll += "copy "$(TargetPath)" "" + *dlldir + """;
- }
-
- TQString deststr( "Copy " + dest + " to " );
- for ( dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ) {
- deststr += *dlldir;
- ++dlldir;
- if ( dlldir != dlldirs.end() )
- deststr += ", ";
- }
-
- project->variables()["MSVCPROJ_COPY_DLL"].append( copydll );
- project->variables()["MSVCPROJ_COPY_DLL_DESC"].append( deststr );
- }
-
- if ( !project->variables()["DEF_FILE"].isEmpty() )
- project->variables()["MSVCPROJ_LFLAGS"].append("/DEF:"+project->first("DEF_FILE"));
-
- // FORMS ---------------------------------------------------------
- TQStringList &list = project->variables()["FORMS"];
- for( it = list.begin(); it != list.end(); ++it ) {
- if ( TQFile::exists( *it + ".h" ) )
- project->variables()["SOURCES"].append( *it + ".h" );
- }
-
- project->variables()["QMAKE_INTERNAL_PRL_LIBS"] << "MSVCPROJ_LFLAGS" << "MSVCPROJ_LIBS";
-
- // Verbose output if "-d -d"...
- outputVariables();
-}
-
-// ------------------------------------------------------------------------------------------------
-// ------------------------------------------------------------------------------------------------
-
-bool VcprojGenerator::openOutput(TQFile &file) const
-{
- TQString outdir;
- if(!file.name().isEmpty()) {
- TQFileInfo fi(file);
- if(fi.isDir())
- outdir = file.name() + TQDir::separator();
- }
- if(!outdir.isEmpty() || file.name().isEmpty()) {
- TQString ext = project->first("VCPROJ_EXTENSION");
- if(project->first("TEMPLATE") == "vcsubdirs")
- ext = project->first("VCSOLUTION_EXTENSION");
- file.setName(outdir + project->first("TARGET") + ext);
- }
- if(TQDir::isRelativePath(file.name())) {
- file.setName( Option::fixPathToLocalOS(TQDir::currentDirPath() + Option::dir_sep + fixFilename(file.name())) );
- }
- return Win32MakefileGenerator::openOutput(file);
-}
-
-TQString VcprojGenerator::fixFilename(TQString ofile) const
-{
- int slashfind = ofile.findRev('\\');
- if (slashfind == -1) {
- ofile = ofile.replace('-', '_');
- } else {
- int hypenfind = ofile.find('-', slashfind);
- while (hypenfind != -1 && slashfind < hypenfind) {
- ofile = ofile.replace(hypenfind, 1, '_');
- hypenfind = ofile.find('-', hypenfind + 1);
- }
- }
- return ofile;
-}
-
-TQString VcprojGenerator::findTemplate(TQString file)
-{
- TQString ret;
- if(!TQFile::exists((ret = file)) &&
- !TQFile::exists((ret = TQString(Option::mkfile::qmakespec + "/" + file))) &&
- !TQFile::exists((ret = TQString(getenv("TQTDIR")) + "/mkspecs/win32-msvc.net/" + file)) &&
- !TQFile::exists((ret = (TQString(getenv("HOME")) + "/.tmake/" + file))))
- return "";
- debug_msg(1, "Generator: MSVC.NET: Found template \'%s\'", ret.latin1() );
- return ret;
-}
-
-
-void VcprojGenerator::processPrlVariable(const TQString &var, const TQStringList &l)
-{
- if(var == "QMAKE_PRL_DEFINES") {
- TQStringList &out = project->variables()["MSVCPROJ_DEFINES"];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- if(out.findIndex((*it)) == -1)
- out.append((" /D " + *it ));
- }
- } else {
- MakefileGenerator::processPrlVariable(var, l);
- }
-}
-
-void VcprojGenerator::outputVariables()
-{
-#if 0
- tqDebug( "Generator: MSVC.NET: List of current variables:" );
- for ( TQMap::ConstIterator it = project->variables().begin(); it != project->variables().end(); ++it) {
- tqDebug( "Generator: MSVC.NET: %s => %s", it.key().latin1(), it.data().join(" | ").latin1() );
- }
-#endif
-}
diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h
deleted file mode 100644
index 9e5488045..000000000
--- a/qmake/generators/win32/msvc_vcproj.h
+++ /dev/null
@@ -1,122 +0,0 @@
-
-/****************************************************************************
-**
-** Definition of VcprojGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __MSVC_VCPROJ_H__
-#define __MSVC_VCPROJ_H__
-
-#include "winmakefile.h"
-#include "msvc_objectmodel.h"
-
-enum target {
- Application,
- SharedLib,
- StaticLib
-};
-
-struct TQUuid;
-class VcprojGenerator : public Win32MakefileGenerator
-{
- bool init_flag;
- bool writeVcprojParts(TQTextStream &);
-
- bool writeMakefile(TQTextStream &);
- virtual void writeSubDirs(TQTextStream &t);
- TQString findTemplate(TQString file);
- void init();
-
-public:
- VcprojGenerator(TQMakeProject *p);
- ~VcprojGenerator();
-
- TQString defaultMakefile() const;
- virtual bool doDepends() const { return FALSE; } //never necesary
- TQString precompH, precompHFilename,
- precompObj, precompPch;
- bool usePCH;
-
-protected:
- virtual bool openOutput(TQFile &file) const;
- virtual void processPrlVariable(const TQString &, const TQStringList &);
- virtual bool findLibraries();
- virtual void outputVariables();
- TQString fixFilename(TQString ofile) const;
-
- void initOld();
- void initProject();
- void initConfiguration();
- void initCompilerTool();
- void initLinkerTool();
- void initLibrarianTool();
- void initIDLTool();
- void initCustomBuildTool();
- void initPreBuildEventTools();
- void initPostBuildEventTools();
- void initPreLinkEventTools();
- void initSourceFiles();
- void initHeaderFiles();
- void initMOCFiles();
- void initUICFiles();
- void initFormsFiles();
- void initTranslationFiles();
- void initLexYaccFiles();
- void initResourceFiles();
-
- VCProject vcProject;
- target projectTarget;
-
-private:
- TQUuid getProjectUUID(const TQString &filename=TQString::null);
- TQUuid increaseUUID(const TQUuid &id);
- friend class VCFilter;
-};
-
-inline VcprojGenerator::~VcprojGenerator()
-{ }
-
-inline TQString VcprojGenerator::defaultMakefile() const
-{
- return project->first("TARGET") + project->first("VCPROJ_EXTENSION");
-}
-
-inline bool VcprojGenerator::findLibraries()
-{
- return Win32MakefileGenerator::findLibraries("MSVCVCPROJ_LIBS");
-}
-
-#endif /* __MSVC_VCPROJ_H__ */
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
deleted file mode 100644
index 7c635d32c..000000000
--- a/qmake/generators/win32/winmakefile.cpp
+++ /dev/null
@@ -1,487 +0,0 @@
-/****************************************************************************
-**
-** Implementation of Win32MakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "winmakefile.h"
-#include "option.h"
-#include "project.h"
-#include "meta.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-Win32MakefileGenerator::Win32MakefileGenerator(TQMakeProject *p) : MakefileGenerator(p)
-{
-
-}
-
-
-struct SubDir
-{
- TQString directory, profile, target, makefile;
-};
-
-void
-Win32MakefileGenerator::writeSubDirs(TQTextStream &t)
-{
- TQPtrList subdirs;
- {
- TQStringList subdirs_in = project->variables()["SUBDIRS"];
- for(TQStringList::Iterator it = subdirs_in.begin(); it != subdirs_in.end(); ++it) {
- TQString file = (*it);
- file = fileFixify(file);
- SubDir *sd = new SubDir;
- subdirs.append(sd);
- sd->makefile = "$(MAKEFILE)";
- if((*it).right(4) == ".pro") {
- int slsh = file.findRev(Option::dir_sep);
- if(slsh != -1) {
- sd->directory = file.left(slsh+1);
- sd->profile = file.mid(slsh+1);
- } else {
- sd->profile = file;
- }
- } else {
- sd->directory = file;
- }
- while(sd->directory.right(1) == Option::dir_sep)
- sd->directory = sd->directory.left(sd->directory.length() - 1);
- if(!sd->profile.isEmpty()) {
- TQString basename = sd->directory;
- int new_slsh = basename.findRev(Option::dir_sep);
- if(new_slsh != -1)
- basename = basename.mid(new_slsh+1);
- if(sd->profile != basename + ".pro")
- sd->makefile += "." + sd->profile.left(sd->profile.length() - 4); //no need for the .pro
- }
- sd->target = "sub-" + (*it);
- sd->target.replace('/', '-');
- sd->target.replace('.', '_');
- }
- }
- TQPtrListIterator it(subdirs);
-
- t << "MAKEFILE = " << (project->isEmpty("MAKEFILE") ? TQString("Makefile") : var("MAKEFILE")) << endl;
- t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") : var("QMAKE_QMAKE")) << endl;
- t << "SUBTARGETS = ";
- for( it.toFirst(); it.current(); ++it)
- t << " \\\n\t\t" << it.current()->target;
- t << endl << endl;
- t << "all: $(MAKEFILE) $(SUBTARGETS)" << endl << endl;
-
- for( it.toFirst(); it.current(); ++it) {
- bool have_dir = !(*it)->directory.isEmpty();
-
- //make the makefile
- TQString mkfile = (*it)->makefile;
- if(have_dir)
- mkfile.prepend((*it)->directory + Option::dir_sep);
- t << mkfile << ":";
- if(have_dir)
- t << "\n\t" << "cd " << (*it)->directory;
- t << "\n\t" << "$(QMAKE) " << (*it)->profile << " " << buildArgs();
- t << " -o " << (*it)->makefile;
- if(have_dir) {
- int subLevels = it.current()->directory.contains(Option::dir_sep) + 1;
- t << "\n\t" << "@cd ..";
- for(int i = 1; i < subLevels; i++ )
- t << Option::dir_sep << "..";
- }
- t << endl;
-
- //now actually build
- t << (*it)->target << ": " << mkfile;
- if(project->variables()["QMAKE_NOFORCE"].isEmpty())
- t << " FORCE";
- if(have_dir)
- t << "\n\t" << "cd " << (*it)->directory;
- t << "\n\t" << "$(MAKE)";
- t << " -f " << (*it)->makefile;
- if(have_dir) {
- int subLevels = it.current()->directory.contains(Option::dir_sep) + 1;
- t << "\n\t" << "@cd ..";
- for(int i = 1; i < subLevels; i++ )
- t << Option::dir_sep << "..";
- }
- t << endl << endl;
- }
-
- if (project->isActiveConfig("ordered")) { // generate dependencies
- for( it.toFirst(); it.current(); ) {
- TQString tar = it.current()->target;
- ++it;
- if (it.current())
- t << it.current()->target << ": " << tar << endl;
- }
- t << endl;
- }
-
- if(project->variables()["QMAKE_INTERNAL_QMAKE_DEPS"].findIndex("qmake_all") == -1)
- project->variables()["QMAKE_INTERNAL_QMAKE_DEPS"].append("qmake_all");
- writeMakeQmake(t);
-
- t << "qmake_all:";
- if ( !subdirs.isEmpty() ) {
- for( it.toFirst(); it.current(); ++it) {
- bool have_dir = !(*it)->directory.isEmpty();
- TQString subdir = (*it)->directory;
- TQString profile = (*it)->profile;
- int subLevels = subdir.contains(Option::dir_sep) + 1;
- t << "\n\t";
- if(have_dir)
- t << "cd " << subdir << "\n\t";
- int lastSlash = subdir.findRev(Option::dir_sep);
- if(lastSlash != -1)
- subdir = subdir.mid( lastSlash + 1 );
- t << "$(QMAKE) "
- << ( !profile.isEmpty() ? profile : subdir + ".pro" )
- << " -o " << (*it)->makefile
- << " " << buildArgs() << "\n\t";
- if(have_dir) {
- t << "@cd ..";
- for(int i = 1; i < subLevels; i++ )
- t << Option::dir_sep << "..";
- }
- }
- } else {
- // Borland make does not like empty an empty command section, so insert
- // a dummy command.
- t << "\n\t" << "@cd .";
- }
- t << endl << endl;
-
- TQStringList targs;
- targs << "clean" << "install_subdirs" << "mocables" << "uicables" << "uiclean" << "mocclean";
- targs += project->values("SUBDIR_TARGETS");
- for(TQStringList::Iterator targ_it = targs.begin(); targ_it != targs.end(); ++targ_it) {
- t << (*targ_it) << ": qmake_all";
- TQString targ = (*targ_it);
- if(targ == "install_subdirs")
- targ = "install";
- else if(targ == "uninstall_subdirs")
- targ = "uninstall";
- if(targ == "clean")
- t << varGlue("QMAKE_CLEAN","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ", "");
- if (!subdirs.isEmpty()) {
- for( it.toFirst(); it.current(); ++it) {
- int subLevels = (*it)->directory.contains(Option::dir_sep) + 1;
- bool have_dir = !(*it)->directory.isEmpty();
- if(have_dir)
- t << "\n\t" << "cd " << (*it)->directory;
- TQString in_file = " -f " + (*it)->makefile;
- t << "\n\t" << "$(MAKE) " << in_file << " " << targ;
- if(have_dir) {
- t << "\n\t" << "@cd ..";
- for(int i = 1; i < subLevels; i++ )
- t << Option::dir_sep << "..";
- }
- }
- } else {
- // Borland make does not like empty an empty command section, so
- // insert a dummy command.
- t << "\n\t" << "@cd .";
- }
- t << endl << endl;
- }
-
- //installations
- project->variables()["INSTALLDEPS"] += "install_subdirs";
- project->variables()["UNINSTALLDEPS"] += "uninstall_subdirs";
- writeInstalls(t, "INSTALLS");
-
- // user defined targets
- TQStringList &qut = project->variables()["QMAKE_EXTRA_WIN_TARGETS"];
- for(TQStringList::Iterator sit = qut.begin(); sit != qut.end(); ++sit) {
- TQString targ = var((*sit) + ".target"),
- cmd = var((*sit) + ".commands"), deps;
- if(targ.isEmpty())
- targ = (*sit);
- TQStringList &deplist = project->variables()[(*sit) + ".depends"];
- for(TQStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
- TQString dep = var((*dep_it) + ".target");
- if(dep.isEmpty())
- dep = (*dep_it);
- deps += " " + dep;
- }
- if(!project->variables()["QMAKE_NOFORCE"].isEmpty() &&
- project->variables()[(*sit) + ".CONFIG"].findIndex("phony") != -1)
- deps += TQString(" ") + "FORCE";
- t << targ << ":" << deps << "\n";
- if(!cmd.isEmpty())
- t << "\t" << cmd << endl;
- t << endl;
- }
- t << endl << endl;
-
- if(project->variables()["QMAKE_NOFORCE"].isEmpty())
- t << "FORCE:" << endl << endl;
-}
-
-
-int
-Win32MakefileGenerator::findHighestVersion(const TQString &d, const TQString &stem)
-{
- TQString bd = Option::fixPathToLocalOS(d, TRUE);
- if(!TQFile::exists(bd))
- return -1;
- if(!project->variables()["QMAKE_" + stem.upper() + "_VERSION_OVERRIDE"].isEmpty())
- return project->variables()["QMAKE_" + stem.upper() + "_VERSION_OVERRIDE"].first().toInt();
-
- TQDir dir(bd);
- int biggest=-1;
- TQStringList entries = dir.entryList();
- TQString dllStem = stem + TQTDLL_POSTFIX;
- TQRegExp regx( "(" + dllStem + "([0-9]*)).lib", FALSE );
- for(TQStringList::Iterator it = entries.begin(); it != entries.end(); ++it) {
- if(regx.exactMatch((*it)))
- biggest = TQMAX(biggest, (regx.cap(1) == dllStem ||
- regx.cap(2).isEmpty()) ? -1 : regx.cap(2).toInt());
- }
- TQMakeMetaInfo libinfo;
- if(libinfo.readLib(bd + dllStem)) {
- if(!libinfo.isEmpty("QMAKE_PRL_VERSION"))
- biggest = TQMAX(biggest, libinfo.first("QMAKE_PRL_VERSION").replace(".", "").toInt());
- }
- return biggest;
-}
-
-TQString
-Win32MakefileGenerator::findDependency(const TQString &dep)
-{
- {
- TQStringList &qut = project->variables()["QMAKE_EXTRA_WIN_TARGETS"];
- for(TQStringList::Iterator it = qut.begin(); it != qut.end(); ++it) {
- TQString targ = var((*it) + ".target");
- if(targ.isEmpty())
- targ = (*it);
- if(targ.endsWith(dep))
- return targ;
- }
- }
- {
- TQStringList &quc = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];
- for(TQStringList::Iterator it = quc.begin(); it != quc.end(); ++it) {
- TQString tmp_out = project->variables()[(*it) + ".output"].first();
- TQString tmp_cmd = project->variables()[(*it) + ".commands"].join(" ");
- if(tmp_out.isEmpty() || tmp_cmd.isEmpty())
- continue;
- TQStringList &tmp = project->variables()[(*it) + ".input"];
- for(TQStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- TQStringList &inputs = project->variables()[(*it2)];
- for(TQStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
- TQString out = tmp_out;
- TQFileInfo fi(Option::fixPathToLocalOS((*input)));
- out.replace("${QMAKE_FILE_BASE}", fi.baseName());
- out.replace("${QMAKE_FILE_NAME}", fi.filePath());
- if(out.endsWith(dep))
- return out;
- }
- }
- }
- }
- return MakefileGenerator::findDependency(dep);
-}
-
-bool
-Win32MakefileGenerator::findLibraries(const TQString &where)
-{
-
- TQStringList &l = project->variables()[where];
- TQPtrList dirs;
- {
- TQStringList &libpaths = project->variables()["QMAKE_LIBDIR"];
- for(TQStringList::Iterator libpathit = libpaths.begin(); libpathit != libpaths.end(); ++libpathit) {
- TQString r = (*libpathit), l = r;
- fixEnvVariables(l);
- dirs.append(new MakefileDependDir(r.replace("\"",""), l.replace("\"","")));
- }
- }
- dirs.setAutoDelete(TRUE);
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ) {
- TQChar quote;
- bool modified_opt = FALSE, remove = FALSE;
- TQString opt = (*it).stripWhiteSpace();
- if((opt[0] == '\'' || opt[0] == '"') && opt[(int)opt.length()-1] == opt[0]) {
- quote = opt[0];
- opt = opt.mid(1, opt.length()-2);
- }
- if(opt.startsWith("/LIBPATH:")) {
- TQString r = opt.mid(9), l = Option::fixPathToLocalOS(r);
- dirs.append(new MakefileDependDir(r.replace("\"",""),
- l.replace("\"","")));
- } else if(opt.startsWith("-L") || opt.startsWith("/L")) {
- TQString r = opt.mid(2), l = Option::fixPathToLocalOS(r);
- dirs.append(new MakefileDependDir(r.replace("\"",""),
- l.replace("\"","")));
- remove = TRUE; //we eat this switch
- } else if(opt.startsWith("-l") || opt.startsWith("/l")) {
- TQString lib = opt.right(opt.length() - 2), out;
- if(!lib.isEmpty()) {
- for(MakefileDependDir *mdd = dirs.first(); mdd; mdd = dirs.next() ) {
- TQString extension;
- int ver = findHighestVersion(mdd->local_dir, lib);
- if(ver > 0)
- extension += TQString::number(ver);
- extension += ".lib";
- if(TQMakeMetaInfo::libExists(mdd->local_dir + Option::dir_sep + lib) ||
- TQFile::exists(mdd->local_dir + Option::dir_sep + lib + extension)) {
- out = mdd->real_dir + Option::dir_sep + lib + extension;
- break;
- }
- }
- }
- if(out.isEmpty()) {
- remove = TRUE; //just eat it since we cannot find one..
- } else {
- modified_opt = TRUE;
- (*it) = out;
- }
- } else if(!TQFile::exists(Option::fixPathToLocalOS(opt))) {
- TQPtrList lib_dirs;
- TQString file = opt;
- int slsh = file.findRev(Option::dir_sep);
- if(slsh != -1) {
- TQString r = file.left(slsh+1), l = r;
- fixEnvVariables(l);
- lib_dirs.append(new MakefileDependDir(r.replace("\"",""), l.replace("\"","")));
- file = file.right(file.length() - slsh - 1);
- } else {
- lib_dirs = dirs;
- }
-#if 0
- if (!project->variables()["QMAKE_QT_DLL"].isEmpty()) {
- if(file.endsWith(".lib")) {
- file = file.left(file.length() - 4);
- if(!file.at(file.length()-1).isNumber()) {
- for(MakefileDependDir *mdd = lib_dirs.first(); mdd; mdd = lib_dirs.next() ) {
- TQString lib_tmpl(file + "%1" + ".lib");
- int ver = findHighestVersion(mdd->local_dir, file);
- if(ver != -1) {
- if(ver)
- lib_tmpl = lib_tmpl.arg(ver);
- else
- lib_tmpl = lib_tmpl.arg("");
- if(slsh != -1) {
- TQString dir = mdd->real_dir;
- if(!dir.endsWith(Option::dir_sep))
- dir += Option::dir_sep;
- lib_tmpl.prepend(dir);
- }
- modified_opt = TRUE;
- (*it) = lib_tmpl;
- break;
- }
- }
- }
- }
- }
-#endif
- }
- if(remove) {
- it = l.remove(it);
- } else {
- if(!quote.isNull() && modified_opt)
- (*it) = quote + (*it) + quote;
- ++it;
- }
- }
- return TRUE;
-}
-
-void
-Win32MakefileGenerator::processPrlFiles()
-{
- TQDict processed;
- TQPtrList libdirs;
- libdirs.setAutoDelete(TRUE);
- {
- TQStringList &libpaths = project->variables()["QMAKE_LIBDIR"];
- for(TQStringList::Iterator libpathit = libpaths.begin(); libpathit != libpaths.end(); ++libpathit) {
- TQString r = (*libpathit), l = r;
- fixEnvVariables(l);
- libdirs.append(new MakefileDependDir(r.replace("\"",""),
- l.replace("\"","")));
- }
- }
- for(bool ret = FALSE; TRUE; ret = FALSE) {
- //read in any prl files included..
- TQStringList l_out;
- TQString where = "QMAKE_LIBS";
- if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- where = project->first("QMAKE_INTERNAL_PRL_LIBS");
- TQStringList &l = project->variables()[where];
- for(TQStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- TQString opt = (*it);
- if(opt.startsWith("/")) {
- if(opt.startsWith("/LIBPATH:")) {
- TQString r = opt.mid(9), l = r;
- fixEnvVariables(l);
- libdirs.append(new MakefileDependDir(r.replace("\"",""),
- l.replace("\"","")));
- }
- } else {
- if(!processed[opt]) {
- if(processPrlFile(opt)) {
- processed.insert(opt, (void*)1);
- ret = TRUE;
- } else {
- for(MakefileDependDir *mdd = libdirs.first(); mdd; mdd = libdirs.next() ) {
- TQString prl = mdd->local_dir + Option::dir_sep + opt;
- if(processed[prl]) {
- break;
- } else if(processPrlFile(prl)) {
- processed.insert(prl, (void*)1);
- ret = TRUE;
- break;
- }
- }
- }
- }
- }
- if(!opt.isEmpty())
- l_out.append(opt);
- }
- if(ret)
- l = l_out;
- else
- break;
- }
-}
diff --git a/qmake/generators/win32/winmakefile.h b/qmake/generators/win32/winmakefile.h
deleted file mode 100644
index cde18cea4..000000000
--- a/qmake/generators/win32/winmakefile.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Definition of Win32MakefileGenerator class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __WINMAKEFILE_H__
-#define __WINMAKEFILE_H__
-
-#include "makefile.h"
-
-// In the TQt evaluation and educational version, we have a postfix in the
-// library name (e.g. qtmteval301.dll). TQTDLL_POSTFIX is used for this.
-// A script modifies these lines when building eval/edu version, so be careful
-// when changing them.
-#ifndef TQTDLL_POSTFIX
-#define TQTDLL_POSTFIX ""
-#endif
-
-class Win32MakefileGenerator : public MakefileGenerator
-{
-protected:
- virtual void writeSubDirs(TQTextStream &t);
- int findHighestVersion(const TQString &dir, const TQString &stem);
- bool findLibraries(const TQString &);
- TQString findDependency(const TQString &);
- virtual bool findLibraries();
- virtual void processPrlFiles();
-
-public:
- Win32MakefileGenerator(TQMakeProject *p);
- ~Win32MakefileGenerator();
-};
-
-inline Win32MakefileGenerator::~Win32MakefileGenerator()
-{ }
-
-inline bool Win32MakefileGenerator::findLibraries()
-{ return findLibraries("QMAKE_LIBS"); }
-
-
-
-#endif /* __WINMAKEFILE_H__ */
diff --git a/qmake/main.cpp b/qmake/main.cpp
deleted file mode 100644
index 9ba3cd8ce..000000000
--- a/qmake/main.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/****************************************************************************
-**
-** ???
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "project.h"
-#include "property.h"
-#include "option.h"
-#include "makefile.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#ifdef Q_OS_MAC
-// for tqurl
-bool tqt_resolve_symlinks = FALSE;
-#endif
-
-#if defined(TQ_WS_WIN)
-extern TQ_EXPORT int qt_ntfs_permission_lookup;
-#endif
-
-int main(int argc, char **argv)
-{
-#if defined(TQ_WS_WIN)
- // Workaround for TQFileInfo::isReadable() failing for certain users. See task: 54320
- qt_ntfs_permission_lookup = 0;
-#endif
-
- /* parse command line */
- if(!Option::parseCommandLine(argc, argv))
- return 666;
-
- TQDir sunworkshop42workaround = TQDir::current();
- TQString oldpwd = sunworkshop42workaround.currentDirPath();
-#ifdef TQ_WS_WIN
- if(!(oldpwd.length() == 3 && oldpwd[0].isLetter() && oldpwd.endsWith(":/") ) )
-#endif
- {
- if(oldpwd.right(1) != TQString(TQChar(TQDir::separator())))
- oldpwd += TQDir::separator();
- }
- Option::output_dir = oldpwd; //for now this is the output dir
-
- if(Option::output.name() != "-") {
- TQFileInfo fi(Option::output);
- TQString dir;
- if(fi.isDir()) {
- dir = fi.filePath();
- } else {
- TQString tmp_dir = fi.dirPath();
- if(!tmp_dir.isEmpty() && TQFile::exists(tmp_dir))
- dir = tmp_dir;
- }
- if(!dir.isNull() && dir != ".")
- Option::output_dir = dir;
- if(TQDir::isRelativePath(Option::output_dir))
- Option::output_dir.prepend(oldpwd);
- }
-
- TQMakeProperty prop;
- if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY || Option::qmake_mode == Option::QMAKE_SET_PROPERTY)
- return prop.exec() ? 0 : 101;
-
- TQMakeProject proj(&prop);
- int exit_val = 0;
- TQStringList files;
- if(Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT)
- files << "(*hack*)"; //we don't even use files, but we do the for() body once
- else
- files = Option::mkfile::project_files;
- for(TQStringList::Iterator pfile = files.begin(); pfile != files.end(); pfile++) {
- if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
- Option::qmake_mode == Option::QMAKE_GENERATE_PRL) {
- TQString fn = Option::fixPathToLocalOS((*pfile));
-
- //setup pwd properly
- debug_msg(1, "Resetting dir to: %s", oldpwd.latin1());
- TQDir::setCurrent(oldpwd); //reset the old pwd
- int di = fn.findRev(Option::dir_sep);
- if(di != -1) {
- debug_msg(1, "Changing dir to: %s", fn.left(di).latin1());
- if(!TQDir::setCurrent(fn.left(di)))
- fprintf(stderr, "Cannot find directory: %s\n", fn.left(di).latin1());
- fn = fn.right(fn.length() - di - 1);
- }
-
- /* read project.. */
- if(!proj.read(fn, oldpwd)) {
- fprintf(stderr, "Error processing project file: %s\n",
- fn == "-" ? "(stdin)" : (*pfile).latin1());
- exit_val = 2;
- continue;
- }
- if(Option::mkfile::do_preprocess) //no need to create makefile
- continue;
-
- /* let Option post-process */
- if(!Option::postProcessProject(&proj)) {
- fprintf(stderr, "Error post-processing project file: %s",
- fn == "-" ? "(stdin)" : (*pfile).latin1());
- exit_val = 8;
- continue;
- }
- }
-
- bool using_stdout = FALSE;
- MakefileGenerator *mkfile = MakefileGenerator::create(&proj); //figure out generator
- if(mkfile && (Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
- Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT)) {
- //open output
- if(!(Option::output.state() & IO_Open)) {
- if(Option::output.name() == "-") {
- Option::output.setName("");
- Option::output_dir = TQDir::currentDirPath();
- Option::output.open(IO_WriteOnly | IO_Translate, stdout);
- using_stdout = TRUE;
- } else {
- if(Option::output.name().isEmpty() && Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE)
- Option::output.setName(proj.first("QMAKE_MAKEFILE"));
- Option::output_dir = oldpwd;
- if(!mkfile->openOutput(Option::output)) {
- fprintf(stderr, "Failure to open file: %s\n",
- Option::output.name().isEmpty() ? "(stdout)" : Option::output.name().latin1());
- return 5;
- }
- }
- }
- } else {
- using_stdout = TRUE; //kind of..
- }
- if(mkfile && !mkfile->write()) {
- if(Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT)
- fprintf(stderr, "Unable to generate project file.\n");
- else
- fprintf(stderr, "Unable to generate makefile for: %s\n", (*pfile).latin1());
- if(!using_stdout)
- TQFile::remove(Option::output.name());
- exit_val = 6;
- }
- delete mkfile;
- mkfile = NULL;
-
- /* debugging */
- if(Option::debug_level) {
- TQMap &vars = proj.variables();
- for(TQMap::Iterator it = vars.begin(); it != vars.end(); ++it) {
- if(!it.key().startsWith(".") && !it.data().isEmpty())
- debug_msg(1, "%s === %s", it.key().latin1(), it.data().join(" :: ").latin1());
- }
- }
- }
- return exit_val;
-}
diff --git a/qmake/meta.cpp b/qmake/meta.cpp
deleted file mode 100644
index 9770a7972..000000000
--- a/qmake/meta.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQMakeMetaInfo class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "meta.h"
-#include "project.h"
-#include "option.h"
-#include
-
-TQMap > TQMakeMetaInfo::cache_vars;
-
-TQMakeMetaInfo::TQMakeMetaInfo()
-{
-
-}
-
-
-bool
-TQMakeMetaInfo::readLib(const TQString &lib)
-{
- clear();
- TQString meta_file = findLib(lib);
-
- if(cache_vars.contains(meta_file)) {
- vars = cache_vars[meta_file];
- return TRUE;
- }
-
- bool ret = FALSE;
- if(!meta_file.isNull()) {
- if(meta_file.endsWith(Option::pkgcfg_ext)) {
- if((ret=readPkgCfgFile(meta_file)))
- meta_type = "pkgcfg";
- } else if(meta_file.endsWith(Option::libtool_ext)) {
- if((ret=readLibtoolFile(meta_file)))
- meta_type = "libtool";
- } else if(meta_file.endsWith(Option::prl_ext)) {
- TQMakeProject proj;
- if(!proj.read(Option::fixPathToLocalOS(meta_file),
- TQDir::currentDirPath(), TQMakeProject::ReadProFile))
- return FALSE;
- meta_type = "tqmake";
- vars = proj.variables();
- ret = TRUE;
- } else {
- warn_msg(WarnLogic, "TQMakeMetaInfo: unknown file format for %s", meta_file.latin1());
- }
- }
- if(ret)
- cache_vars.insert(meta_file, vars);
- return ret;
-}
-
-
-void
-TQMakeMetaInfo::clear()
-{
- vars.clear();
-}
-
-
-TQString
-TQMakeMetaInfo::findLib(const TQString &lib)
-{
- TQString ret = TQString::null;
- TQString extns[] = { Option::prl_ext, /*Option::pkgcfg_ext, Option::libtool_ext,*/ TQString::null };
- for(int extn = 0; !extns[extn].isNull(); extn++) {
- if(lib.endsWith(extns[extn]))
- ret = TQFile::exists(lib) ? lib : TQString::null;
- }
- if(ret.isNull()) {
- for(int extn = 0; !extns[extn].isNull(); extn++) {
- if(TQFile::exists(lib + extns[extn])) {
- ret = lib + extns[extn];
- break;
- }
- }
- }
- if(ret.isNull())
- debug_msg(2, "TQMakeMetaInfo: Cannot find info file for %s", lib.latin1());
- else
- debug_msg(2, "TQMakeMetaInfo: Found info file %s for %s", ret.latin1(), lib.latin1());
- return ret;
-}
-
-
-bool
-TQMakeMetaInfo::readLibtoolFile(const TQString &f)
-{
- /* I can just run the .la through the .pro parser since they are compatible.. */
- TQMakeProject proj;
- if(!proj.read(Option::fixPathToLocalOS(f), TQDir::currentDirPath(), TQMakeProject::ReadProFile))
- return FALSE;
- TQString dirf = Option::fixPathToTargetOS(f).section(Option::dir_sep, 0, -2);
- if(dirf == f)
- dirf = "";
- else if(!dirf.isEmpty() && !dirf.endsWith(Option::output_dir))
- dirf += Option::dir_sep;
- TQMap &v = proj.variables();
- for(TQMap::Iterator it = v.begin(); it != v.end(); ++it) {
- TQStringList lst = it.data();
- if(lst.count() == 1 && (lst.first().startsWith("'") || lst.first().startsWith("\"")) &&
- lst.first().endsWith(TQString(lst.first()[0])))
- lst = lst.first().mid(1, lst.first().length() - 2);
- if(!vars.contains("QMAKE_PRL_TARGET") &&
- (it.key() == "dlname" || it.key() == "library_names" || it.key() == "old_library")) {
- TQString dir = v["libdir"].first();
- if((dir.startsWith("'") || dir.startsWith("\"")) && dir.endsWith(TQString(dir[0])))
- dir = dir.mid(1, dir.length() - 2);
- dir = dir.stripWhiteSpace();
- if(!dir.isEmpty() && !dir.endsWith(Option::dir_sep))
- dir += Option::dir_sep;
- if(lst.count() == 1)
- lst = TQStringList::split(" ", lst.first());
- for(TQStringList::Iterator lst_it = lst.begin(); lst_it != lst.end(); ++lst_it) {
- bool found = FALSE;
- TQString dirs[] = { "", dir, dirf, dirf + ".libs" + TQDir::separator(), "(term)" };
- for(int i = 0; !found && dirs[i] != "(term)"; i++) {
- if(TQFile::exists(dirs[i] + (*lst_it))) {
- TQString targ = dirs[i] + (*lst_it);
- if(TQDir::isRelativePath(targ))
- targ.prepend(TQDir::currentDirPath() + TQDir::separator());
- vars["QMAKE_PRL_TARGET"] << targ;
- found = TRUE;
- }
- }
- if(found)
- break;
- }
- } else if(it.key() == "dependency_libs") {
- if(lst.count() == 1) {
- TQString dep = lst.first();
- if((dep.startsWith("'") || dep.startsWith("\"")) && dep.endsWith(TQString(dep[0])))
- dep = dep.mid(1, dep.length() - 2);
- lst = TQStringList::split(" ", dep.stripWhiteSpace());
- }
- TQMakeProject *conf = NULL;
- for(TQStringList::Iterator lit = lst.begin(); lit != lst.end(); ++lit) {
- if((*lit).startsWith("-R")) {
- if(!conf) {
- conf = new TQMakeProject;
- conf->read(TQMakeProject::ReadAll ^ TQMakeProject::ReadProFile);
- }
- if(!conf->isEmpty("QMAKE_RPATH"))
- (*lit) = conf->first("QMAKE_RPATH") + (*lit).mid(2);
- }
- }
- if(conf)
- delete conf;
- vars["QMAKE_PRL_LIBS"] += lst;
- }
- }
- return TRUE;
-}
-
-bool
-TQMakeMetaInfo::readPkgCfgFile(const TQString &f)
-{
- fprintf(stderr, "Must implement reading in pkg-config files (%s)!!!\n", f.latin1());
- return FALSE;
-}
diff --git a/qmake/meta.h b/qmake/meta.h
deleted file mode 100644
index 1e29487f7..000000000
--- a/qmake/meta.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Definition of TQMakeMetaInfo class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __META_H__
-#define __META_H__
-
-#include
-#include
-#include
-
-class TQMakeMetaInfo
-{
- bool readLibtoolFile(const TQString &f);
- bool readPkgCfgFile(const TQString &f);
- TQMap vars;
- TQString meta_type;
- static TQMap > cache_vars;
- void clear();
-public:
- TQMakeMetaInfo();
-
- bool readLib(const TQString &lib);
- static TQString findLib(const TQString &lib);
- static bool libExists(const TQString &lib);
- TQString type() const;
-
- bool isEmpty(const TQString &v);
- TQStringList &values(const TQString &v);
- TQString first(const TQString &v);
- TQMap &variables();
-};
-
-inline bool TQMakeMetaInfo::isEmpty(const TQString &v)
-{ return !vars.contains(v) || vars[v].isEmpty(); }
-
-inline TQString TQMakeMetaInfo::type() const
-{ return meta_type; }
-
-inline TQStringList &TQMakeMetaInfo::values(const TQString &v)
-{ return vars[v]; }
-
-inline TQString TQMakeMetaInfo::first(const TQString &v)
-{
-#if defined(Q_CC_SUN) && (__SUNPRO_CC == 0x500) || defined(Q_CC_HP)
- // workaround for Sun WorkShop 5.0 bug fixed in Forte 6
- if (isEmpty(v))
- return TQString("");
- else
- return vars[v].first();
-#else
- return isEmpty(v) ? TQString("") : vars[v].first();
-#endif
-}
-
-inline TQMap &TQMakeMetaInfo::variables()
-{ return vars; }
-
-inline bool TQMakeMetaInfo::libExists(const TQString &lib)
-{ return !findLib(lib).isNull(); }
-
-#endif /* __META_H__ */
diff --git a/qmake/option.cpp b/qmake/option.cpp
deleted file mode 100644
index b3a4a3917..000000000
--- a/qmake/option.cpp
+++ /dev/null
@@ -1,548 +0,0 @@
-/****************************************************************************
-**
-** Implementation of Option class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "option.h"
-#include
-#include
-#include
-#include
-
-//convenience
-TQString Option::prf_ext;
-TQString Option::prl_ext;
-TQString Option::libtool_ext;
-TQString Option::pkgcfg_ext;
-TQString Option::ui_ext;
-TQStringList Option::h_ext;
-TQString Option::cpp_moc_ext;
-TQString Option::h_moc_ext;
-TQStringList Option::cpp_ext;
-TQString Option::obj_ext;
-TQString Option::lex_ext;
-TQString Option::yacc_ext;
-TQString Option::dir_sep;
-TQString Option::h_moc_mod;
-TQString Option::cpp_moc_mod;
-TQString Option::yacc_mod;
-TQString Option::lex_mod;
-
-//mode
-Option::QMAKE_MODE Option::qmake_mode = Option::QMAKE_GENERATE_NOTHING;
-
-//all modes
-int Option::warn_level = WarnLogic;
-int Option::debug_level = 0;
-TQFile Option::output("");
-TQString Option::output_dir;
-TQStringList Option::before_user_vars;
-TQStringList Option::after_user_vars;
-TQString Option::user_template;
-TQString Option::user_template_prefix;
-#if defined(Q_OS_WIN32)
-Option::TARG_MODE Option::target_mode = Option::TARG_WIN_MODE;
-#elif defined(Q_OS_MAC9)
-Option::TARG_MODE Option::target_mode = Option::TARG_MAC9_MODE;
-#elif defined(Q_OS_MACX)
-Option::TARG_MODE Option::target_mode = Option::TARG_MACX_MODE;
-#elif defined(Q_OS_QNX6)
-Option::TARG_MODE Option::target_mode = Option::TARG_QNX6_MODE;
-#else
-Option::TARG_MODE Option::target_mode = Option::TARG_UNIX_MODE;
-#endif
-
-//QMAKE_*_PROPERTY stuff
-TQStringList Option::prop::properties;
-
-//QMAKE_GENERATE_PROJECT stuff
-bool Option::projfile::do_pwd = TRUE;
-bool Option::projfile::do_recursive = TRUE;
-TQStringList Option::projfile::project_dirs;
-
-//QMAKE_GENERATE_MAKEFILE stuff
-TQString Option::mkfile::qmakespec;
-int Option::mkfile::cachefile_depth = -1;
-bool Option::mkfile::do_deps = TRUE;
-bool Option::mkfile::do_mocs = TRUE;
-bool Option::mkfile::do_dep_heuristics = TRUE;
-bool Option::mkfile::do_preprocess = FALSE;
-bool Option::mkfile::do_cache = TRUE;
-TQString Option::mkfile::cachefile;
-TQStringList Option::mkfile::project_files;
-TQString Option::mkfile::qmakespec_commandline;
-
-static Option::QMAKE_MODE default_mode(TQString progname)
-{
- int s = progname.findRev(Option::dir_sep);
- if(s != -1)
- progname = progname.right(progname.length() - (s + 1));
- if(progname == "qmakegen")
- return Option::QMAKE_GENERATE_PROJECT;
- else if(progname == "qt-config")
- return Option::QMAKE_QUERY_PROPERTY;
- return Option::QMAKE_GENERATE_MAKEFILE;
-}
-
-TQString project_builtin_regx();
-bool usage(const char *a0)
-{
- fprintf(stdout, "Usage: %s [mode] [options] [files]\n"
- "\n"
- " TQMake has two modes, one mode for generating project files based on\n"
- "some heuristics, and the other for generating makefiles. Normally you\n"
- "shouldn't need to specify a mode, as makefile generation is the default\n"
- "mode for qmake, but you may use this to test qmake on an existing project\n"
- "\n"
- "Mode:\n"
- "\t-project Put qmake into project file generation mode%s\n"
- "\t In this mode qmake interprets files as files to\n"
- "\t be built,\n"
- "\t defaults to %s\n"
- "\t-makefile Put qmake into makefile generation mode%s\n"
- "\t In this mode qmake interprets files as project files to\n"
- "\t be processed, if skipped qmake will try to find a project\n"
- "\t file in your current working directory\n"
- "\n"
- "Warnings Options:\n"
- "\t-Wnone Turn off all warnings\n"
- "\t-Wall Turn on all warnings\n"
- "\t-Wparser Turn on parser warnings\n"
- "\t-Wlogic Turn on logic warnings\n"
- "\n"
- "Options:\n"
- "\t * You can place any variable assignment in options and it will be *\n"
- "\t * processed as if it was in [files]. These assignments will be parsed *\n"
- "\t * before [files]. *\n"
- "\t-o file Write output to file\n"
- "\t-unix Run in unix mode\n"
- "\t-win32 Run in win32 mode\n"
- "\t-macx Run in Mac OS X mode\n"
- "\t-d Increase debug level\n"
- "\t-t templ Overrides TEMPLATE as templ\n"
- "\t-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value\n"
- "\t-help This help\n"
- "\t-v Version information\n"
- "\t-after All variable assignments after this will be\n"
- "\t parsed after [files]\n"
- "\t-cache file Use file as cache [makefile mode only]\n"
- "\t-spec spec Use spec as QMAKESPEC [makefile mode only]\n"
- "\t-nocache Don't use a cache file [makefile mode only]\n"
- "\t-nodepend Don't generate dependencies [makefile mode only]\n"
- "\t-nomoc Don't generate moc targets [makefile mode only]\n"
- "\t-nopwd Don't look for files in pwd [ project mode only]\n"
- "\t-norecursive Don't do a recursive search [ project mode only]\n"
- ,a0,
- default_mode(a0) == Option::QMAKE_GENERATE_PROJECT ? " (default)" : "", project_builtin_regx().latin1(),
- default_mode(a0) == Option::QMAKE_GENERATE_MAKEFILE ? " (default)" : "");
- return FALSE;
-}
-
-enum {
- QMAKE_CMDLINE_SUCCESS,
- QMAKE_CMDLINE_SHOW_USAGE,
- QMAKE_CMDLINE_BAIL
-};
-int
-Option::internalParseCommandLine(int argc, char **argv, int skip)
-{
- bool before = TRUE;
- for(int x = skip; x < argc; x++) {
- if(*argv[x] == '-' && strlen(argv[x]) > 1) { /* options */
- TQString opt = argv[x] + 1;
-
- //first param is a mode, or we default
- if(x == 1) {
- bool specified = TRUE;
- if(opt == "project") {
- Option::qmake_mode = Option::QMAKE_GENERATE_PROJECT;
- } else if(opt == "prl") {
- Option::mkfile::do_deps = FALSE;
- Option::mkfile::do_mocs = FALSE;
- Option::qmake_mode = Option::QMAKE_GENERATE_PRL;
- } else if(opt == "set") {
- Option::qmake_mode = Option::QMAKE_SET_PROPERTY;
- } else if(opt == "query") {
- Option::qmake_mode = Option::QMAKE_QUERY_PROPERTY;
- } else if(opt == "makefile") {
- Option::qmake_mode = Option::QMAKE_GENERATE_MAKEFILE;
- } else {
- specified = FALSE;
- }
- if(specified)
- continue;
- }
- //all modes
- if(opt == "o" || opt == "output") {
- Option::output.setName(argv[++x]);
- } else if(opt == "after") {
- before = FALSE;
- } else if(opt == "t" || opt == "template") {
- Option::user_template = argv[++x];
- } else if(opt == "tp" || opt == "template_prefix") {
- Option::user_template_prefix = argv[++x];
- } else if(opt == "mac9") {
- Option::target_mode = TARG_MAC9_MODE;
- } else if(opt == "macx") {
- Option::target_mode = TARG_MACX_MODE;
- } else if(opt == "unix") {
- Option::target_mode = TARG_UNIX_MODE;
- } else if(opt == "win32") {
- Option::target_mode = TARG_WIN_MODE;
- } else if(opt == "d") {
- Option::debug_level++;
- } else if(opt == "version" || opt == "v" || opt == "-version") {
- fprintf(stderr, "Qmake version: %s (TQt %s)\n", qmake_version(), TQT_VERSION_STR);
- fprintf(stderr, "Qmake is free software from Trolltech ASA.\n");
- return QMAKE_CMDLINE_BAIL;
- } else if(opt == "h" || opt == "help") {
- return QMAKE_CMDLINE_SHOW_USAGE;
- } else if(opt == "Wall") {
- Option::warn_level |= WarnAll;
- } else if(opt == "Wparser") {
- Option::warn_level |= WarnParser;
- } else if(opt == "Wlogic") {
- Option::warn_level |= WarnLogic;
- } else if(opt == "Wnone") {
- Option::warn_level = WarnNone;
- } else {
- if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
- Option::qmake_mode == Option::QMAKE_GENERATE_PRL) {
- if(opt == "nodepend") {
- Option::mkfile::do_deps = FALSE;
- } else if(opt == "nomoc") {
- Option::mkfile::do_mocs = FALSE;
- } else if(opt == "nocache") {
- Option::mkfile::do_cache = FALSE;
- } else if(opt == "nodependheuristics") {
- Option::mkfile::do_dep_heuristics = FALSE;
- } else if(opt == "E") {
- Option::mkfile::do_preprocess = TRUE;
- } else if(opt == "cache") {
- Option::mkfile::cachefile = argv[++x];
- } else if(opt == "platform" || opt == "spec") {
- Option::mkfile::qmakespec = argv[++x];
- Option::mkfile::qmakespec_commandline = argv[x];
- } else {
- fprintf(stderr, "***Unknown option -%s\n", opt.latin1());
- return QMAKE_CMDLINE_SHOW_USAGE;
- }
- } else if(Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT) {
- if(opt == "nopwd") {
- Option::projfile::do_pwd = FALSE;
- } else if(opt == "r") {
- Option::projfile::do_recursive = TRUE;
- } else if(opt == "norecursive") {
- Option::projfile::do_recursive = FALSE;
- } else {
- fprintf(stderr, "***Unknown option -%s\n", opt.latin1());
- return QMAKE_CMDLINE_SHOW_USAGE;
- }
- }
- }
- } else {
- TQString arg = argv[x];
- if(arg.find('=') != -1) {
- if(before)
- Option::before_user_vars.append(arg);
- else
- Option::after_user_vars.append(arg);
- } else {
- bool handled = TRUE;
- if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY ||
- Option::qmake_mode == Option::QMAKE_SET_PROPERTY) {
- Option::prop::properties.append(arg);
- } else {
- TQFileInfo fi(arg);
- if(!fi.convertToAbs()) //strange
- arg = fi.filePath();
- if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
- Option::qmake_mode == Option::QMAKE_GENERATE_PRL)
- Option::mkfile::project_files.append(arg);
- else if(Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT)
- Option::projfile::project_dirs.append(arg);
- else
- handled = FALSE;
- }
- if(!handled)
- return QMAKE_CMDLINE_SHOW_USAGE;
- }
- }
- }
- return QMAKE_CMDLINE_SUCCESS;
-}
-
-
-bool
-Option::parseCommandLine(int argc, char **argv)
-{
- Option::cpp_moc_mod = "";
- Option::h_moc_mod = "moc_";
- Option::lex_mod = "_lex";
- Option::yacc_mod = "_yacc";
- Option::prl_ext = ".prl";
- Option::libtool_ext = ".la";
- Option::pkgcfg_ext = ".pc";
- Option::prf_ext = ".prf";
- Option::ui_ext = ".ui";
- Option::h_ext << ".h" << ".hpp" << ".hh" << ".H" << ".hxx";
- Option::cpp_moc_ext = ".moc";
- Option::h_moc_ext = ".cpp";
- Option::cpp_ext << ".cpp" << ".cc" << ".cxx" << ".C";
- Option::lex_ext = ".l";
- Option::yacc_ext = ".y";
-
- if(Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING)
- Option::qmake_mode = default_mode(argv[0]);
- if(const char *envflags = getenv("QMAKEFLAGS")) {
- int env_argc = 0, env_size = 0, currlen=0;
- char quote = 0, **env_argv = NULL;
- for(int i = 0; envflags[i]; i++) {
- if(!quote && (envflags[i] == '\'' || envflags[i] == '"')) {
- quote = envflags[i];
- } else if(envflags[i] == quote) {
- quote = 0;
- } else if(!quote && envflags[i] == ' ') {
- if(currlen && env_argv && env_argv[env_argc]) {
- env_argv[env_argc][currlen] = '\0';
- currlen = 0;
- env_argc++;
- }
- } else {
- if(!env_argv || env_argc > env_size) {
- env_argv = (char **)realloc(env_argv, sizeof(char *)*(env_size+=10));
- for(int i2 = env_argc; i2 < env_size; i2++)
- env_argv[i2] = NULL;
- }
- if(!env_argv[env_argc]) {
- currlen = 0;
- env_argv[env_argc] = (char*)malloc(255);
- }
- if(currlen < 255)
- env_argv[env_argc][currlen++] = envflags[i];
- }
- }
- if(env_argv[env_argc]) {
- env_argv[env_argc][currlen] = '\0';
- currlen = 0;
- env_argc++;
- }
- internalParseCommandLine(env_argc, env_argv);
- for(int i2 = 0; i2 < env_size; i2++) {
- if(env_argv[i2])
- free(env_argv[i2]);
- }
- free(env_argv);
- }
- {
- int ret = internalParseCommandLine(argc, argv, 1);
- if(ret != QMAKE_CMDLINE_SUCCESS)
- return ret == QMAKE_CMDLINE_SHOW_USAGE ? usage(argv[0]) : FALSE;
- }
-
- //last chance for defaults
- if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
- Option::qmake_mode == Option::QMAKE_GENERATE_PRL) {
- if(Option::mkfile::qmakespec.isNull() || Option::mkfile::qmakespec.isEmpty())
- Option::mkfile::qmakespec = getenv("QMAKESPEC");
-
- //try REALLY hard to do it for them, lazy..
- if(Option::mkfile::project_files.isEmpty()) {
- TQString pwd = TQDir::currentDirPath(),
- proj = pwd + "/" + pwd.right(pwd.length() - (pwd.findRev('/') + 1)) + ".pro";
- if(TQFile::exists(proj)) {
- Option::mkfile::project_files.append(proj);
- } else { //last try..
- TQDir d(pwd, "*.pro");
- if(d.count() != 1)
- return usage(argv[0]);
- Option::mkfile::project_files.append(pwd + "/" + d[0]);
- }
- }
- }
-
- //defaults for globals
- if(Option::target_mode == Option::TARG_WIN_MODE) {
- Option::dir_sep = "\\";
- Option::obj_ext = ".obj";
- } else {
- if(Option::target_mode == Option::TARG_MAC9_MODE)
- Option::dir_sep = ":";
- else
- Option::dir_sep = "/";
- Option::obj_ext = ".o";
- }
- return TRUE;
-}
-
-bool Option::postProcessProject(TQMakeProject *project)
-{
- Option::cpp_ext = project->variables()["QMAKE_EXT_CPP"];
- if(cpp_ext.isEmpty())
- cpp_ext << ".cpp"; //something must be there
- Option::h_ext = project->variables()["QMAKE_EXT_H"];
- if(h_ext.isEmpty())
- h_ext << ".h";
-
- if(!project->isEmpty("QMAKE_EXT_PKGCONFIG"))
- Option::pkgcfg_ext = project->first("QMAKE_EXT_PKGCONFIG");
- if(!project->isEmpty("QMAKE_EXT_LIBTOOL"))
- Option::libtool_ext = project->first("QMAKE_EXT_LIBTOOL");
- if(!project->isEmpty("QMAKE_EXT_PRL"))
- Option::prl_ext = project->first("QMAKE_EXT_PRL");
- if(!project->isEmpty("QMAKE_EXT_PRF"))
- Option::prf_ext = project->first("QMAKE_EXT_PRF");
- if(!project->isEmpty("QMAKE_EXT_UI"))
- Option::ui_ext = project->first("QMAKE_EXT_UI");
- if(!project->isEmpty("QMAKE_EXT_CPP_MOC"))
- Option::cpp_moc_ext = project->first("QMAKE_EXT_CPP_MOC");
- if(!project->isEmpty("QMAKE_EXT_H_MOC"))
- Option::h_moc_ext = project->first("QMAKE_EXT_H_MOC");
- if(!project->isEmpty("QMAKE_EXT_LEX"))
- Option::lex_ext = project->first("QMAKE_EXT_LEX");
- if(!project->isEmpty("QMAKE_EXT_YACC"))
- Option::yacc_ext = project->first("QMAKE_EXT_YACC");
- if(!project->isEmpty("QMAKE_EXT_OBJ"))
- Option::obj_ext = project->first("QMAKE_EXT_OBJ");
- if(!project->isEmpty("QMAKE_H_MOD_MOC"))
- Option::h_moc_mod = project->first("QMAKE_H_MOD_MOC");
- if(!project->isEmpty("QMAKE_CPP_MOD_MOC"))
- Option::cpp_moc_mod = project->first("QMAKE_CPP_MOD_MOC");
- if(!project->isEmpty("QMAKE_MOD_LEX"))
- Option::lex_mod = project->first("QMAKE_MOD_LEX");
- if(!project->isEmpty("QMAKE_MOD_YACC"))
- Option::yacc_mod = project->first("QMAKE_MOD_YACC");
- if(!project->isEmpty("QMAKE_DIR_SEP"))
- Option::dir_sep = project->first("QMAKE_DIR_SEP");
- return TRUE;
-}
-
-void fixEnvVariables(TQString &x)
-{
- int rep;
- TQRegExp reg_var("\\$\\(.*\\)");
- reg_var.setMinimal( TRUE );
- while((rep = reg_var.search(x)) != -1)
- x.replace(rep, reg_var.matchedLength(), TQString(getenv(x.mid(rep + 2, reg_var.matchedLength() - 3).latin1())));
-}
-static TQString fixPath(TQString x)
-{
-#if 0
- TQFileInfo fi(x);
- if(fi.isDir()) {
- TQDir dir(x);
- x = dir.canonicalPath();
- } else {
- TQString dir = fi.dir().canonicalPath();
- if(!dir.isEmpty() && dir.right(1) != Option::dir_sep)
- dir += Option::dir_sep;
- x = dir + fi.fileName();
- }
-#endif
- return TQDir::cleanDirPath(x);
-}
-
-
-TQString
-Option::fixPathToTargetOS(const TQString& in, bool fix_env, bool canonical)
-{
- TQString tmp(in);
- if(fix_env)
- fixEnvVariables(tmp);
- if(canonical)
- tmp = fixPath(tmp);
- TQString rep;
- if(Option::target_mode == TARG_MAC9_MODE)
- tmp = tmp.replace('/', Option::dir_sep).replace('\\', Option::dir_sep);
- else if(Option::target_mode == TARG_WIN_MODE)
- tmp = tmp.replace('/', Option::dir_sep);
- else
- tmp = tmp.replace('\\', Option::dir_sep);
- return tmp;
-}
-
-TQString
-Option::fixPathToLocalOS(const TQString& in, bool fix_env, bool canonical)
-{
- TQString tmp(in);
- if(fix_env)
- fixEnvVariables(tmp);
- if(canonical)
- tmp = fixPath(tmp);
-#if defined(Q_OS_WIN32)
- return tmp.replace('/', '\\');
-#else
- return tmp.replace('\\', '/');
-#endif
-}
-
-const char *qmake_version()
-{
- static char *ret = NULL;
- if(ret)
- return ret;
- ret = (char *)malloc(15);
- sprintf(ret, "%d.%02d%c", QMAKE_VERSION_MAJOR, QMAKE_VERSION_MINOR, 'a' + QMAKE_VERSION_PATCH);
- return ret;
-}
-
-void debug_msg(int level, const char *fmt, ...)
-{
- if(Option::debug_level < level)
- return;
- fprintf(stderr, "DEBUG %d: ", level);
- {
- va_list ap;
- va_start(ap, fmt);
- vfprintf(stderr, fmt, ap);
- va_end(ap);
- }
- fprintf(stderr, "\n");
-}
-
-void warn_msg(TQMakeWarn type, const char *fmt, ...)
-{
- if(!(Option::warn_level & type))
- return;
- fprintf(stderr, "WARNING: ");
- {
- va_list ap;
- va_start(ap, fmt);
- vfprintf(stderr, fmt, ap);
- va_end(ap);
- }
- fprintf(stderr, "\n");
-}
diff --git a/qmake/option.h b/qmake/option.h
deleted file mode 100644
index 27059b498..000000000
--- a/qmake/option.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Definition of Option class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __OPTION_H__
-#define __OPTION_H__
-
-#include "project.h"
-#include
-#include
-#include
-
-#define QMAKE_VERSION_MAJOR 1
-#define QMAKE_VERSION_MINOR 7
-#define QMAKE_VERSION_PATCH 0
-const char *qmake_version();
-
-void fixEnvVariables(TQString &x);
-void debug_msg(int level, const char *fmt, ...);
-enum TQMakeWarn {
- WarnNone = 0x00,
- WarnParser = 0x01,
- WarnLogic = 0x02,
- WarnAll = 0xFF
-};
-void warn_msg(TQMakeWarn t, const char *fmt, ...);
-
-struct Option
-{
- //simply global convenience
- static TQString libtool_ext;
- static TQString pkgcfg_ext;
- static TQString prf_ext;
- static TQString prl_ext;
- static TQString ui_ext;
- static TQStringList h_ext;
- static TQStringList cpp_ext;
- static TQString h_moc_ext;
- static TQString cpp_moc_ext;
- static TQString obj_ext;
- static TQString lex_ext;
- static TQString yacc_ext;
- static TQString h_moc_mod;
- static TQString cpp_moc_mod;
- static TQString lex_mod;
- static TQString yacc_mod;
- static TQString dir_sep;
- //both of these must be called..
- static bool parseCommandLine(int argc, char **argv); //parse cmdline
- static bool postProcessProject(TQMakeProject *);
-
- //and convenience functions
- static TQString fixPathToLocalOS(const TQString& in, bool fix_env=TRUE, bool canonical=TRUE);
- static TQString fixPathToTargetOS(const TQString& in, bool fix_env=TRUE, bool canonical=TRUE);
-
- //global qmake mode, can only be in one mode per invocation!
- enum QMAKE_MODE { QMAKE_GENERATE_NOTHING, QMAKE_GENERATE_PROJECT, QMAKE_GENERATE_MAKEFILE,
- QMAKE_GENERATE_PRL, QMAKE_SET_PROPERTY, QMAKE_QUERY_PROPERTY };
- static QMAKE_MODE qmake_mode;
-
- //all modes
- static TQFile output;
- static TQString output_dir;
- static int debug_level;
- static int warn_level;
- static TQStringList before_user_vars, after_user_vars;
- enum TARG_MODE { TARG_UNIX_MODE, TARG_WIN_MODE, TARG_MACX_MODE, TARG_MAC9_MODE, TARG_QNX6_MODE };
- static TARG_MODE target_mode;
- static TQString user_template, user_template_prefix;
-
-
- //QMAKE_*_PROPERTY options
- struct prop {
- static TQStringList properties;
- };
-
- //QMAKE_GENERATE_PROJECT options
- struct projfile {
- static bool do_pwd;
- static bool do_recursive;
- static TQStringList project_dirs;
- };
-
- //QMAKE_GENERATE_MAKEFILE options
- struct mkfile {
- static TQString qmakespec;
- static bool do_cache;
- static bool do_deps;
- static bool do_mocs;
- static bool do_dep_heuristics;
- static bool do_preprocess;
- static TQString cachefile;
- static int cachefile_depth;
- static TQStringList project_files;
- static TQString qmakespec_commandline;
- };
-
-private:
- static int internalParseCommandLine(int, char **, int=0);
-};
-
-
-#endif /* __OPTION_H__ */
diff --git a/qmake/project.cpp b/qmake/project.cpp
deleted file mode 100644
index f6082f009..000000000
--- a/qmake/project.cpp
+++ /dev/null
@@ -1,1397 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQMakeProject class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "project.h"
-#include "property.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-#include
-#ifdef Q_OS_UNIX
-# include
-#endif
-#include
-#include
-
-#ifdef Q_OS_WIN32
-#define QT_POPEN _popen
-#else
-#define QT_POPEN popen
-#endif
-
-struct parser_info {
- TQString file;
- int line_no;
-} parser;
-
-static void qmake_error_msg(const char *msg)
-{
- fprintf(stderr, "%s:%d: %s\n", parser.file.latin1(), parser.line_no, msg);
-}
-
-TQStringList qmake_mkspec_paths()
-{
- TQStringList ret;
- const TQString concat = TQDir::separator() + TQString("mkspecs");
- if(const char *qmakepath = getenv("QMAKEPATH")) {
-#ifdef Q_OS_WIN
- TQStringList lst = TQStringList::split(';', qmakepath);
- for(TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it) {
- TQStringList lst2 = TQStringList::split(':', (*it));
- for(TQStringList::Iterator it2 = lst2.begin(); it2 != lst2.end(); ++it2)
- ret << ((*it2) + concat);
- }
-#else
- TQStringList lst = TQStringList::split(':', qmakepath);
- for(TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it)
- ret << ((*it) + concat);
-#endif
- }
- if(const char *qtdir = getenv("TQTDIR"))
- ret << (TQString(qtdir) + concat);
-#ifdef QT_INSTALL_PREFIX
- ret << (QT_INSTALL_PREFIX + concat);
-#endif
-#if defined(HAVE_QCONFIG_CPP)
- ret << (tqInstallPath() + concat);
-#endif
-#ifdef QT_INSTALL_DATA
- ret << (QT_INSTALL_DATA + concat);
-#endif
-#if defined(HAVE_QCONFIG_CPP)
- ret << (tqInstallPathData() + concat);
-#endif
-
- /* prefer $TQTDIR if it is set */
- if (getenv("TQTDIR"))
- ret << getenv("TQTDIR");
- ret << tqInstallPathData();
- return ret;
-}
-
-static TQString varMap(const TQString &x)
-{
- TQString ret(x);
- if(ret.startsWith("TMAKE")) //tmake no more!
- ret = "QMAKE" + ret.mid(5);
- else if(ret == "INTERFACES")
- ret = "FORMS";
- else if(ret == "QMAKE_POST_BUILD")
- ret = "QMAKE_POST_LINK";
- else if(ret == "TARGETDEPS")
- ret = "POST_TARGETDEPS";
- else if(ret == "LIBPATH")
- ret = "QMAKE_LIBDIR";
- else if(ret == "QMAKE_EXT_MOC")
- ret = "QMAKE_EXT_CPP_MOC";
- else if(ret == "QMAKE_MOD_MOC")
- ret = "QMAKE_H_MOD_MOC";
- else if(ret == "QMAKE_LFLAGS_SHAPP")
- ret = "QMAKE_LFLAGS_APP";
- else if(ret == "PRECOMPH")
- ret = "PRECOMPILED_HEADER";
- else if(ret == "PRECOMPCPP")
- ret = "PRECOMPILED_SOURCE";
- else if(ret == "INCPATH")
- ret = "INCLUDEPATH";
- return ret;
-}
-
-static TQStringList split_arg_list(const TQString ¶ms)
-{
- TQChar quote = 0;
- TQStringList args;
- for(int x = 0, last = 0, parens = 0; x <= (int)params.length(); x++) {
- if(x == (int)params.length()) {
- TQString mid = params.mid(last, x - last).stripWhiteSpace();
- if(quote) {
- if(mid[(int)mid.length()-1] == quote)
- mid.truncate(1);
- quote = 0;
- }
- args << mid;
- } else if(params[x] == ')') {
- parens--;
- } else if(params[x] == '(') {
- parens++;
- } else if(params[x] == quote) {
- quote = 0;
- } else if(!quote && (params[x] == '\'' || params[x] == '"')) {
- quote = params[x];
- } else if(!parens && !quote && params[x] == ',') {
- args << params.mid(last, x - last).stripWhiteSpace();
- last = x+1;
- }
- }
- return args;
-}
-
-static TQStringList split_value_list(const TQString &vals, bool do_semicolon=FALSE)
-{
- TQString build;
- TQStringList ret;
- TQValueStack quote;
- for(int x = 0; x < (int)vals.length(); x++) {
- if(x != (int)vals.length()-1 && vals[x] == '\\' && (vals[x+1] == '\'' || vals[x+1] == '"'))
- build += vals[x++]; //get that 'escape'
- else if(!quote.isEmpty() && vals[x] == quote.top())
- quote.pop();
- else if(vals[x] == '\'' || vals[x] == '"')
- quote.push(vals[x]);
-
- if(quote.isEmpty() && ((do_semicolon && vals[x] == ';') || vals[x] == ' ')) {
- ret << build;
- build = "";
- } else {
- build += vals[x];
- }
- }
- if(!build.isEmpty())
- ret << build;
- return ret;
-}
-
-TQMakeProject::TQMakeProject()
-{
- prop = NULL;
-}
-
-TQMakeProject::TQMakeProject(TQMakeProperty *p)
-{
- prop = p;
-}
-
-void
-TQMakeProject::reset()
-{
- /* scope blocks start at true */
- test_status = TestNone;
- scope_flag = 0x01;
- scope_block = 0;
-}
-
-bool
-TQMakeProject::parse(const TQString &t, TQMap &place)
-{
- TQString s = t.simplifyWhiteSpace();
- int hash_mark = s.find("#");
- if(hash_mark != -1) //good bye comments
- s = s.left(hash_mark);
- if(s.isEmpty()) /* blank_line */
- return TRUE;
-
- if(s.stripWhiteSpace().left(1) == "}") {
- debug_msg(1, "Project Parser: %s:%d : Leaving block %d", parser.file.latin1(),
- parser.line_no, scope_block);
- test_status = ((scope_flag & (0x01 << scope_block)) ? TestFound : TestSeek);
- scope_block--;
- s = s.mid(1).stripWhiteSpace();
- if(s.isEmpty())
- return TRUE;
- }
- if(!(scope_flag & (0x01 << scope_block))) {
- /* adjust scope for each block which appears on a single line */
- for(int i = (s.contains('{')-s.contains('}')); i>0; i--)
- scope_flag &= ~(0x01 << (++scope_block));
- debug_msg(1, "Project Parser: %s:%d : Ignored due to block being false.",
- parser.file.latin1(), parser.line_no);
- return TRUE;
- }
-
- TQString scope, var, op;
- TQStringList val;
-#define SKIP_WS(d) while(*d && (*d == ' ' || *d == '\t')) d++
- const char *d = s.latin1();
- SKIP_WS(d);
- bool scope_failed = FALSE, else_line = FALSE, or_op=FALSE;
- int parens = 0, scope_count=0;
- while(*d) {
- if(!parens) {
- if(*d == '=')
- break;
- if(*d == '+' || *d == '-' || *d == '*' || *d == '~') {
- if(*(d+1) == '=') {
- break;
- } else if(*(d+1) == ' ') {
- const char *k = d + 1;
- SKIP_WS(k);
- if(*k == '=') {
- TQString msg;
- qmake_error_msg(*d + "must be followed immediately by =");
- return FALSE;
- }
- }
- }
- }
-
- if ( *d == '(' )
- ++parens;
- else if ( *d == ')' )
- --parens;
-
- if(!parens && (*d == ':' || *d == '{' || *d == ')' || *d == '|')) {
- scope_count++;
- scope = var.stripWhiteSpace();
- if ( *d == ')' )
- scope += *d; /* need this */
- var = "";
-
- bool test = scope_failed;
- if(scope.lower() == "else") {
- if(scope_count != 1 || test_status == TestNone) {
- qmake_error_msg("Unexpected " + scope + " ('" + s + "')");
- return FALSE;
- }
- else_line = TRUE;
- test = (test_status == TestSeek);
- debug_msg(1, "Project Parser: %s:%d : Else%s %s.", parser.file.latin1(), parser.line_no,
- scope == "else" ? "" : TQString(" (" + scope + ")").latin1(),
- test ? "considered" : "excluded");
- } else {
- TQString comp_scope = scope;
- bool invert_test = (comp_scope.left(1) == "!");
- if(invert_test)
- comp_scope = comp_scope.right(comp_scope.length()-1);
- int lparen = comp_scope.find('(');
- if(or_op == scope_failed) {
- if(lparen != -1) { /* if there is an lparen in the scope, it IS a function */
- int rparen = comp_scope.findRev(')');
- if(rparen == -1) {
- TQCString error;
- error.sprintf("Function missing right paren: %s ('%s')",
- comp_scope.latin1(), s.latin1());
- qmake_error_msg(error);
- return FALSE;
- }
- TQString func = comp_scope.left(lparen);
- test = doProjectTest(func, comp_scope.mid(lparen+1, rparen - lparen - 1), place);
- if ( *d == ')' && !*(d+1) ) {
- if(invert_test)
- test = !test;
- test_status = (test ? TestFound : TestSeek);
- return TRUE; /* assume we are done */
- }
- } else {
- test = isActiveConfig(comp_scope.stripWhiteSpace(), TRUE, &place);
- }
- if(invert_test)
- test = !test;
- }
- }
- if(!test && !scope_failed)
- debug_msg(1, "Project Parser: %s:%d : Test (%s) failed.", parser.file.latin1(),
- parser.line_no, scope.latin1());
- if(test == or_op)
- scope_failed = !test;
- or_op = (*d == '|');
- if(*d == '{') { /* scoping block */
- if(!scope_failed)
- scope_flag |= (0x01 << (++scope_block));
- else
- scope_flag &= ~(0x01 << (++scope_block));
- debug_msg(1, "Project Parser: %s:%d : Entering block %d (%d).", parser.file.latin1(),
- parser.line_no, scope_block, !scope_failed);
- }
- } else if(!parens && *d == '}') {
- if(!scope_block) {
- warn_msg(WarnParser, "Possible braces mismatch %s:%d", parser.file.latin1(), parser.line_no);
- } else {
- debug_msg(1, "Project Parser: %s:%d : Leaving block %d", parser.file.latin1(),
- parser.line_no, scope_block);
- --scope_block;
- }
- } else {
- var += *d;
- }
- d++;
- }
- var = var.stripWhiteSpace();
- if(!scope_count || (scope_count == 1 && else_line))
- test_status = TestNone;
- else if(!else_line || test_status != TestFound)
- test_status = (scope_failed ? TestSeek : TestFound);
- if(!*d) {
- if(!var.stripWhiteSpace().isEmpty())
- qmake_error_msg("Parse Error ('" + s + "')");
- return var.isEmpty(); /* allow just a scope */
- }
-
- SKIP_WS(d);
- for( ; *d && op.find('=') == -1; op += *(d++))
- ;
- op.replace(TQRegExp("\\s"), "");
-
- SKIP_WS(d);
- TQString vals(d); /* vals now contains the space separated list of values */
- int rbraces = vals.contains('}'), lbraces = vals.contains('{');
- if(scope_block && rbraces - lbraces == 1) {
- debug_msg(1, "Project Parser: %s:%d : Leaving block %d", parser.file.latin1(),
- parser.line_no, scope_block);
- test_status = ((scope_flag & (0x01 << scope_block)) ? TestFound : TestSeek);
- scope_block--;
- vals.truncate(vals.length()-1);
- } else if(rbraces != lbraces) {
- warn_msg(WarnParser, "Possible braces mismatch {%s} %s:%d",
- vals.latin1(), parser.file.latin1(), parser.line_no);
- }
- doVariableReplace(vals, place);
- if(scope_failed)
- return TRUE; /* oh well */
-#undef SKIP_WS
-
- if(!var.isEmpty() && Option::mkfile::do_preprocess) {
- static TQString last_file("*none*");
- if(parser.file != last_file) {
- fprintf(stdout, "#file %s:%d\n", parser.file.latin1(), parser.line_no);
- last_file = parser.file;
- }
- fprintf(stdout, "%s %s %s\n", var.latin1(), op.latin1(), vals.latin1());
- }
- var = varMap(var); //backwards compatability
-
- /* vallist is the broken up list of values */
- TQStringList vallist = split_value_list(vals, (var == "DEPENDPATH" || var == "INCLUDEPATH"));
- if(!vallist.grep("=").isEmpty())
- warn_msg(WarnParser, "Detected possible line continuation: {%s} %s:%d",
- var.latin1(), parser.file.latin1(), parser.line_no);
-
- TQStringList &varlist = place[var]; /* varlist is the list in the symbol table */
- debug_msg(1, "Project Parser: %s:%d :%s: :%s: (%s)", parser.file.latin1(), parser.line_no,
- var.latin1(), op.latin1(), vallist.isEmpty() ? "" : vallist.join(" :: ").latin1());
-
- /* now do the operation */
- if(op == "~=") {
- if(vallist.count() != 1) {
- qmake_error_msg("~= operator only accepts one right hand paramater ('" +
- s + "')");
- return FALSE;
- }
- TQString val(vallist.first());
- if(val.length() < 4 || val.at(0) != 's') {
- qmake_error_msg("~= operator only can handle s/// function ('" +
- s + "')");
- return FALSE;
- }
- TQChar sep = val.at(1);
- TQStringList func = TQStringList::split(sep, val, TRUE);
- if(func.count() < 3 || func.count() > 4) {
- qmake_error_msg("~= operator only can handle s/// function ('" +
- s + "')");
- return FALSE;
- }
- bool global = FALSE, case_sense = TRUE;
- if(func.count() == 4) {
- global = func[3].find('g') != -1;
- case_sense = func[3].find('i') == -1;
- }
- TQRegExp regexp(func[1], case_sense);
- for(TQStringList::Iterator varit = varlist.begin();
- varit != varlist.end(); ++varit) {
- if((*varit).contains(regexp)) {
- (*varit) = (*varit).replace(regexp, func[2]);
- if(!global)
- break;
- }
- }
- } else {
- if(op == "=") {
- if(!varlist.isEmpty())
- warn_msg(WarnParser, "Operator=(%s) clears variables previously set: %s:%d",
- var.latin1(), parser.file.latin1(), parser.line_no);
- varlist.clear();
- }
- for(TQStringList::Iterator valit = vallist.begin();
- valit != vallist.end(); ++valit) {
- if((*valit).isEmpty())
- continue;
- if((op == "*=" && !(*varlist.find((*valit)))) ||
- op == "=" || op == "+=")
- varlist.append((*valit));
- else if(op == "-=")
- varlist.remove((*valit));
- }
- }
- if(var == "REQUIRES") /* special case to get communicated to backends! */
- doProjectCheckReqs(vallist, place);
-
- return TRUE;
-}
-
-bool
-TQMakeProject::read(const TQString &file, TQMap &place)
-{
- parser_info pi = parser;
- reset();
-
- TQString filename = Option::fixPathToLocalOS(file);
- doVariableReplace(filename, place);
- bool ret = FALSE, using_stdin = FALSE;
- TQFile tqfile;
- if(!strcmp(filename, "-")) {
- tqfile.setName("");
- ret = tqfile.open(IO_ReadOnly, stdin);
- using_stdin = TRUE;
- } else {
- tqfile.setName(filename);
- ret = tqfile.open(IO_ReadOnly);
- }
- if ( ret ) {
- TQTextStream t( &tqfile );
- TQString s, line;
- parser.file = filename;
- parser.line_no = 0;
- while ( !t.eof() ) {
- parser.line_no++;
- line = t.readLine().stripWhiteSpace();
- int prelen = line.length();
-
- int hash_mark = line.find("#");
- if(hash_mark != -1) //good bye comments
- line = line.left(hash_mark);
- if(!line.isEmpty() && line.right(1) == "\\") {
- if (!line.startsWith("#")) {
- line.truncate(line.length() - 1);
- s += line + " ";
- }
- } else if(!line.isEmpty() || (line.isEmpty() && !prelen)) {
- if(s.isEmpty() && line.isEmpty())
- continue;
- if(!line.isEmpty())
- s += line;
- if(!s.isEmpty()) {
- if(!(ret = parse(s, place)))
- break;
- s = "";
- }
- }
- }
- if(!using_stdin)
- tqfile.close();
- }
- parser = pi;
- if(scope_block != 0)
- warn_msg(WarnParser, "%s: Unterminated conditional at end of file.",
- file.latin1());
- return ret;
-}
-
-bool
-TQMakeProject::read(const TQString &project, const TQString &, uchar cmd)
-{
- pfile = project;
- return read(cmd);
-}
-
-bool
-TQMakeProject::read(uchar cmd)
-{
- if(cfile.isEmpty()) {
- // hack to get the Option stuff in there
- base_vars["QMAKE_EXT_CPP"] = Option::cpp_ext;
- base_vars["QMAKE_EXT_H"] = Option::h_ext;
- if(!Option::user_template_prefix.isEmpty())
- base_vars["TEMPLATE_PREFIX"] = Option::user_template_prefix;
-
- if(cmd & ReadCache && Option::mkfile::do_cache) { /* parse the cache */
- if(Option::mkfile::cachefile.isEmpty()) { //find it as it has not been specified
- TQString dir = TQDir::convertSeparators(Option::output_dir);
- while(!TQFile::exists((Option::mkfile::cachefile = dir +
- TQDir::separator() + ".qmake.cache"))) {
- dir = dir.left(dir.findRev(TQDir::separator()));
- if(dir.isEmpty() || dir.find(TQDir::separator()) == -1) {
- Option::mkfile::cachefile = "";
- break;
- }
- if(Option::mkfile::cachefile_depth == -1)
- Option::mkfile::cachefile_depth = 1;
- else
- Option::mkfile::cachefile_depth++;
- }
- }
- if(!Option::mkfile::cachefile.isEmpty()) {
- read(Option::mkfile::cachefile, cache);
- if(Option::mkfile::qmakespec.isEmpty() && !cache["QMAKESPEC"].isEmpty())
- Option::mkfile::qmakespec = cache["QMAKESPEC"].first();
- }
- }
- if(cmd & ReadConf) { /* parse mkspec */
- TQStringList mkspec_roots = qmake_mkspec_paths();
- if(Option::mkfile::qmakespec.isEmpty()) {
- for(TQStringList::Iterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) {
- TQString mkspec = (*it) + TQDir::separator() + "default";
- TQFileInfo default_info(mkspec);
- if(default_info.exists() && default_info.isSymLink()) {
- Option::mkfile::qmakespec = mkspec;
- break;
- }
- }
- if(Option::mkfile::qmakespec.isEmpty()) {
- fprintf(stderr, "QMAKESPEC has not been set, so configuration cannot be deduced.\n");
- return FALSE;
- }
- }
-
- if(TQDir::isRelativePath(Option::mkfile::qmakespec)) {
- bool found_mkspec = FALSE;
- for(TQStringList::Iterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) {
- TQString mkspec = (*it) + TQDir::separator() + Option::mkfile::qmakespec;
- if(TQFile::exists(mkspec)) {
- found_mkspec = TRUE;
- Option::mkfile::qmakespec = mkspec;
- break;
- }
- }
- if(!found_mkspec) {
- fprintf(stderr, "Could not find mkspecs for your QMAKESPEC after trying:\n\t%s\n",
- mkspec_roots.join("\n\t").latin1());
- return FALSE;
- }
- }
-
- /* parse qmake configuration */
- while(Option::mkfile::qmakespec.endsWith(TQString(TQChar(TQDir::separator()))))
- Option::mkfile::qmakespec.truncate(Option::mkfile::qmakespec.length()-1);
- TQString spec = Option::mkfile::qmakespec + TQDir::separator() + "qmake.conf";
- if(!TQFile::exists(spec) &&
- TQFile::exists(Option::mkfile::qmakespec + TQDir::separator() + "tmake.conf"))
- spec = Option::mkfile::qmakespec + TQDir::separator() + "tmake.conf";
- debug_msg(1, "QMAKESPEC conf: reading %s", spec.latin1());
- if(!read(spec, base_vars)) {
- fprintf(stderr, "Failure to read QMAKESPEC conf file %s.\n", spec.latin1());
- return FALSE;
- }
- if(Option::mkfile::do_cache && !Option::mkfile::cachefile.isEmpty()) {
- debug_msg(1, "QMAKECACHE file: reading %s", Option::mkfile::cachefile.latin1());
- read(Option::mkfile::cachefile, base_vars);
- }
- }
- if(cmd & ReadCmdLine) {
- /* commandline */
- cfile = pfile;
- parser.line_no = 1; //really arg count now.. duh
- parser.file = "(internal)";
- reset();
- for(TQStringList::Iterator it = Option::before_user_vars.begin();
- it != Option::before_user_vars.end(); ++it) {
- if(!parse((*it), base_vars)) {
- fprintf(stderr, "Argument failed to parse: %s\n", (*it).latin1());
- return FALSE;
- }
- parser.line_no++;
- }
- }
- }
-
- vars = base_vars; /* start with the base */
-
- if(cmd & ReadProFile) { /* parse project file */
- debug_msg(1, "Project file: reading %s", pfile.latin1());
- if(pfile != "-" && !TQFile::exists(pfile) && !pfile.endsWith(".pro"))
- pfile += ".pro";
- if(!read(pfile, vars))
- return FALSE;
- }
-
- if(cmd & ReadPostFiles) { /* parse post files */
- const TQStringList l = vars["QMAKE_POST_INCLUDE_FILES"];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it)
- read((*it), vars);
- }
-
- if(cmd & ReadCmdLine) {
- parser.line_no = 1; //really arg count now.. duh
- parser.file = "(internal)";
- reset();
- for(TQStringList::Iterator it = Option::after_user_vars.begin();
- it != Option::after_user_vars.end(); ++it) {
- if(!parse((*it), vars)) {
- fprintf(stderr, "Argument failed to parse: %s\n", (*it).latin1());
- return FALSE;
- }
- parser.line_no++;
- }
- }
-
- /* now let the user override the template from an option.. */
- if(!Option::user_template.isEmpty()) {
- debug_msg(1, "Overriding TEMPLATE (%s) with: %s", vars["TEMPLATE"].first().latin1(),
- Option::user_template.latin1());
- vars["TEMPLATE"].clear();
- vars["TEMPLATE"].append(Option::user_template);
- }
-
- TQStringList &templ = vars["TEMPLATE"];
- if(templ.isEmpty())
- templ.append(TQString("app"));
- else if(vars["TEMPLATE"].first().endsWith(".t"))
- templ = TQStringList(templ.first().left(templ.first().length() - 2));
- if ( !Option::user_template_prefix.isEmpty() )
- templ.first().prepend(Option::user_template_prefix);
-
- if(vars["TARGET"].isEmpty()) {
- // ### why not simply use:
- // TQFileInfo fi(pfile);
- // fi.baseName();
- TQString tmp = pfile;
- if(tmp.findRev('/') != -1)
- tmp = tmp.right( tmp.length() - tmp.findRev('/') - 1 );
- if(tmp.findRev('.') != -1)
- tmp = tmp.left(tmp.findRev('.'));
- vars["TARGET"].append(tmp);
- }
-
- TQString test_version = getenv("TQTESTVERSION");
- if (!test_version.isEmpty()) {
- TQString s = vars["TARGET"].first();
- if (s == "qt" || s == "tqt-mt" || s == "qte" || s == "qte-mt") {
- TQString &ver = vars["VERSION"].first();
-// fprintf(stderr,"Current QT version number: " + ver + "\n");
- if (ver != "" && ver != test_version) {
- ver = test_version;
- fprintf(stderr,"Changed QT version number to %s!\n", test_version.ascii());
- }
- }
- }
- return TRUE;
-}
-
-bool
-TQMakeProject::isActiveConfig(const TQString &x, bool regex, TQMap *place)
-{
- if(x.isEmpty())
- return TRUE;
-
- if((Option::target_mode == Option::TARG_MACX_MODE || Option::target_mode == Option::TARG_QNX6_MODE ||
- Option::target_mode == Option::TARG_UNIX_MODE) && x == "unix")
- return TRUE;
- else if(Option::target_mode == Option::TARG_MACX_MODE && x == "macx")
- return TRUE;
- else if(Option::target_mode == Option::TARG_QNX6_MODE && x == "qnx6")
- return TRUE;
- else if(Option::target_mode == Option::TARG_MAC9_MODE && x == "mac9")
- return TRUE;
- else if((Option::target_mode == Option::TARG_MAC9_MODE || Option::target_mode == Option::TARG_MACX_MODE) &&
- x == "mac")
- return TRUE;
- else if(Option::target_mode == Option::TARG_WIN_MODE && x == "win32")
- return TRUE;
-
-
- TQRegExp re(x, FALSE, TRUE);
- TQString spec = Option::mkfile::qmakespec.right(Option::mkfile::qmakespec.length() -
- (Option::mkfile::qmakespec.findRev(TQDir::separator())+1));
- if((regex && re.exactMatch(spec)) || (!regex && spec == x))
- return TRUE;
-#ifdef Q_OS_UNIX
- else if(spec == "default") {
- static char *buffer = NULL;
- if(!buffer)
- buffer = (char *)malloc(1024);
- int l = readlink(Option::mkfile::qmakespec, buffer, 1023);
- if(l != -1) {
- buffer[l] = '\0';
- TQString r = buffer;
- if(r.findRev('/') != -1)
- r = r.mid(r.findRev('/') + 1);
- if((regex && re.exactMatch(r)) || (!regex && r == x))
- return TRUE;
- }
- }
-#endif
-
-
- TQStringList &configs = (place ? (*place)["CONFIG"] : vars["CONFIG"]);
- for(TQStringList::Iterator it = configs.begin(); it != configs.end(); ++it) {
- if((regex && re.exactMatch((*it))) || (!regex && (*it) == x))
- if(re.exactMatch((*it)))
- return TRUE;
- }
- return FALSE;
-}
-
-bool
-TQMakeProject::doProjectTest(const TQString& func, const TQString ¶ms, TQMap &place)
-{
- TQStringList args = split_arg_list(params);
- for(TQStringList::Iterator arit = args.begin(); arit != args.end(); ++arit) {
- TQString tmp = (*arit).stripWhiteSpace();
- if((tmp[0] == '\'' || tmp[0] == '"') && tmp.right(1) == tmp.left(1))
- tmp = tmp.mid(1, tmp.length() - 2);
- }
- return doProjectTest(func.stripWhiteSpace(), args, place);
-}
-
-bool
-TQMakeProject::doProjectTest(const TQString& func, TQStringList args, TQMap &place)
-{
- for(TQStringList::Iterator arit = args.begin(); arit != args.end(); ++arit) {
- (*arit) = (*arit).stripWhiteSpace(); // blah, get rid of space
- doVariableReplace((*arit), place);
- }
- debug_msg(1, "Running project test: %s( %s )", func.latin1(), args.join("::").latin1());
-
- if(func == "requires") {
- return doProjectCheckReqs(args, place);
- } else if(func == "equals") {
- if(args.count() != 2) {
- fprintf(stderr, "%s:%d: equals(variable, value) requires two arguments.\n", parser.file.latin1(),
- parser.line_no);
- return FALSE;
- }
- TQString value = args[1];
- if((value.left(1) == "\"" || value.left(1) == "'") && value.right(1) == value.left(1))
- value = value.mid(1, value.length()-2);
- return vars[args[0]].join(" ") == value;
- } else if(func == "exists") {
- if(args.count() != 1) {
- fprintf(stderr, "%s:%d: exists(file) requires one argument.\n", parser.file.latin1(),
- parser.line_no);
- return FALSE;
- }
- TQString file = args.first();
- file = Option::fixPathToLocalOS(file);
- doVariableReplace(file, place);
-
- if(TQFile::exists(file))
- return TRUE;
- //regular expression I guess
- TQString dirstr = TQDir::currentDirPath();
- int slsh = file.findRev(Option::dir_sep);
- if(slsh != -1) {
- dirstr = file.left(slsh+1);
- file = file.right(file.length() - slsh - 1);
- }
- TQDir dir(dirstr, file);
- return dir.count() != 0;
- } else if(func == "system") {
- if(args.count() != 1) {
- fprintf(stderr, "%s:%d: system(exec) requires one argument.\n", parser.file.latin1(),
- parser.line_no);
- return FALSE;
- }
- return system(args.first().latin1()) == 0;
- } else if(func == "contains") {
- if(args.count() != 2) {
- fprintf(stderr, "%s:%d: contains(var, val) requires two arguments.\n", parser.file.latin1(),
- parser.line_no);
- return FALSE;
- }
- TQRegExp regx(args[1]);
- TQStringList &l = place[args[0]];
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- if(regx.exactMatch((*it)))
- return TRUE;
- }
- return FALSE;
- } else if(func == "infile") {
- if(args.count() < 2 || args.count() > 3) {
- fprintf(stderr, "%s:%d: infile(file, var, val) requires at least 2 arguments.\n",
- parser.file.latin1(), parser.line_no);
- return FALSE;
- }
- TQMakeProject proj;
- TQString file = args[0];
- doVariableReplace(file, place);
- fixEnvVariables(file);
- int di = file.findRev(Option::dir_sep);
- TQDir sunworkshop42workaround = TQDir::current();
- TQString oldpwd = sunworkshop42workaround.currentDirPath();
- if(di != -1) {
- if(!TQDir::setCurrent(file.left(file.findRev(Option::dir_sep)))) {
- fprintf(stderr, "Cannot find directory: %s\n", file.left(di).latin1());
- return FALSE;
- }
- file = file.right(file.length() - di - 1);
- }
- parser_info pi = parser;
- bool ret = !proj.read(file, oldpwd);
- parser = pi;
- if(ret) {
- fprintf(stderr, "Error processing project file: %s\n", file.latin1());
- TQDir::setCurrent(oldpwd);
- return FALSE;
- }
- if(args.count() == 2) {
- ret = !proj.isEmpty(args[1]);
- } else {
- TQRegExp regx(args[2]);
- TQStringList &l = proj.values(args[1]);
- for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
- if(regx.exactMatch((*it))) {
- ret = TRUE;
- break;
- }
- }
- }
- TQDir::setCurrent(oldpwd);
- return ret;
- } else if(func == "count") {
- if(args.count() != 2) {
- fprintf(stderr, "%s:%d: count(var, count) requires two arguments.\n", parser.file.latin1(),
- parser.line_no);
- return FALSE;
- }
- return vars[args[0]].count() == args[1].toUInt();
- } else if(func == "isEmpty") {
- if(args.count() != 1) {
- fprintf(stderr, "%s:%d: isEmpty(var) requires one argument.\n", parser.file.latin1(),
- parser.line_no);
- return FALSE;
- }
- return vars[args[0]].isEmpty();
- } else if(func == "include" || func == "load") {
- TQString seek_var;
- if(args.count() == 2 && func == "include") {
- seek_var = args[1];
- } else if(args.count() != 1) {
- TQString func_desc = "include(file)";
- if(func == "load")
- func_desc = "load(feature)";
- fprintf(stderr, "%s:%d: %s requires one argument.\n", parser.file.latin1(),
- parser.line_no, func_desc.latin1());
- return FALSE;
- }
-
- TQString file = args.first();
- file = Option::fixPathToLocalOS(file);
- file.replace("\"", "");
- doVariableReplace(file, place);
- if(func == "load") {
- if(!file.endsWith(Option::prf_ext))
- file += Option::prf_ext;
- if(file.find(Option::dir_sep) == -1 || !TQFile::exists(file)) {
- bool found = FALSE;
- const TQString concat = TQDir::separator() + TQString("mkspecs") +
- TQDir::separator() + TQString("features");
- TQStringList feature_roots;
- if(const char *mkspec_path = getenv("QMAKEFEATURES")) {
-#ifdef Q_OS_WIN
- TQStringList lst = TQStringList::split(';', mkspec_path);
- for(TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it)
- feature_roots += TQStringList::split(':', (*it));
-#else
- feature_roots += TQStringList::split(':', mkspec_path);
-#endif
- }
- if(const char *qmakepath = getenv("QMAKEPATH")) {
-#ifdef Q_OS_WIN
- TQStringList lst = TQStringList::split(';', qmakepath);
- for(TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it) {
- TQStringList lst2 = TQStringList::split(':', (*it));
- for(TQStringList::Iterator it2 = lst2.begin(); it2 != lst2.end(); ++it2)
- feature_roots << ((*it2) + concat);
- }
-#else
- TQStringList lst = TQStringList::split(':', qmakepath);
- for(TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it)
- feature_roots << ((*it) + concat);
-#endif
- }
- feature_roots << Option::mkfile::qmakespec;
- if(const char *qtdir = getenv("TQTDIR"))
- feature_roots << (qtdir + concat);
-#ifdef QT_INSTALL_PREFIX
- feature_roots << (QT_INSTALL_PREFIX + concat);
-#endif
-#if defined(HAVE_QCONFIG_CPP)
- feature_roots << (tqInstallPath() + concat);
-#endif
-#ifdef QT_INSTALL_DATA
- feature_roots << (QT_INSTALL_DATA + concat);
-#endif
-#if defined(HAVE_QCONFIG_CPP)
- feature_roots << (tqInstallPathData() + concat);
-#endif
- for(TQStringList::Iterator it = feature_roots.begin(); it != feature_roots.end(); ++it) {
- TQString prf = (*it) + TQDir::separator() + file;
- if(TQFile::exists(prf)) {
- found = TRUE;
- file = prf;
- break;
- }
- }
- if(!found) {
- printf("Project LOAD(): Feature %s cannot be found.\n", args.first().latin1());
- exit(3);
- }
- }
- }
- if(TQDir::isRelativePath(file)) {
- TQStringList include_roots;
- include_roots << Option::output_dir;
- TQString pfilewd = TQFileInfo(parser.file).dirPath();
- if(!pfilewd.isEmpty() && pfilewd != TQDir::currentDirPath() && pfilewd != ".")
- include_roots << pfilewd;
- if(Option::output_dir != TQDir::currentDirPath())
- include_roots << TQDir::currentDirPath();
- for(TQStringList::Iterator it = include_roots.begin(); it != include_roots.end(); ++it) {
- if(TQFile::exists((*it) + TQDir::separator() + file)) {
- file = (*it) + TQDir::separator() + file;
- break;
- }
- }
- }
-
- if(Option::mkfile::do_preprocess) //nice to see this first..
- fprintf(stderr, "#switching file %s(%s) - %s:%d\n", func.latin1(), file.latin1(),
- parser.file.latin1(), parser.line_no);
- debug_msg(1, "Project Parser: %s'ing file %s.", func.latin1(), file.latin1());
- TQString orig_file = file;
- int di = file.findRev(Option::dir_sep);
- TQDir sunworkshop42workaround = TQDir::current();
- TQString oldpwd = sunworkshop42workaround.currentDirPath();
- if(di != -1) {
- if(!TQDir::setCurrent(file.left(file.findRev(Option::dir_sep)))) {
- fprintf(stderr, "Cannot find directory: %s\n", file.left(di).latin1());
- return FALSE;
- }
- file = file.right(file.length() - di - 1);
- }
- parser_info pi = parser;
- int sb = scope_block;
- int sf = scope_flag;
- TestStatus sc = test_status;
- bool r = FALSE;
- if(!seek_var.isNull()) {
- TQMap tmp;
- if((r = read(file.latin1(), tmp)))
- place[seek_var] += tmp[seek_var];
- } else {
- r = read(file.latin1(), place);
- }
- if(r)
- vars["QMAKE_INTERNAL_INCLUDED_FILES"].append(orig_file);
- else
- warn_msg(WarnParser, "%s:%d: Failure to include file %s.",
- pi.file.latin1(), pi.line_no, orig_file.latin1());
- parser = pi;
- test_status = sc;
- scope_flag = sf;
- scope_block = sb;
- TQDir::setCurrent(oldpwd);
- return r;
- } else if(func == "error" || func == "message") {
- if(args.count() != 1) {
- fprintf(stderr, "%s:%d: %s(message) requires one argument.\n", parser.file.latin1(),
- parser.line_no, func.latin1());
- return FALSE;
- }
- TQString msg = args.first();
- if((msg.startsWith("\"") || msg.startsWith("'")) && msg.endsWith(msg.left(1)))
- msg = msg.mid(1, msg.length()-2);
- msg.replace(TQString("${QMAKE_FILE}"), parser.file.latin1());
- msg.replace(TQString("${QMAKE_LINE_NUMBER}"), TQString::number(parser.line_no));
- msg.replace(TQString("${QMAKE_DATE}"), TQDateTime::currentDateTime().toString());
- doVariableReplace(msg, place);
- fixEnvVariables(msg);
- fprintf(stderr, "Project %s: %s\n", func.upper().latin1(), msg.latin1());
- if(func == "message")
- return TRUE;
- exit(2);
- } else {
- fprintf(stderr, "%s:%d: Unknown test function: %s\n", parser.file.latin1(), parser.line_no,
- func.latin1());
- }
- return FALSE;
-}
-
-bool
-TQMakeProject::doProjectCheckReqs(const TQStringList &deps, TQMap &place)
-{
- bool ret = FALSE;
- for(TQStringList::ConstIterator it = deps.begin(); it != deps.end(); ++it) {
- TQString chk = (*it);
- if(chk.isEmpty())
- continue;
- bool invert_test = (chk.left(1) == "!");
- if(invert_test)
- chk = chk.right(chk.length() - 1);
-
- bool test;
- int lparen = chk.find('(');
- if(lparen != -1) { /* if there is an lparen in the chk, it IS a function */
- int rparen = chk.findRev(')');
- if(rparen == -1) {
- TQCString error;
- error.sprintf("Function (in REQUIRES) missing right paren: %s", chk.latin1());
- qmake_error_msg(error);
- } else {
- TQString func = chk.left(lparen);
- test = doProjectTest(func, chk.mid(lparen+1, rparen - lparen - 1), place);
- }
- } else {
- test = isActiveConfig(chk, TRUE, &place);
- }
- if(invert_test) {
- chk.prepend("!");
- test = !test;
- }
- if(!test) {
- debug_msg(1, "Project Parser: %s:%d Failed test: REQUIRES = %s",
- parser.file.latin1(), parser.line_no, chk.latin1());
- place["QMAKE_FAILED_REQUIREMENTS"].append(chk);
- ret = FALSE;
- }
- }
- return ret;
-}
-
-
-TQString
-TQMakeProject::doVariableReplace(TQString &str, const TQMap &place)
-{
- for(int var_begin, var_last=0; (var_begin = str.find("$$", var_last)) != -1; var_last = var_begin) {
- if(var_begin >= (int)str.length() + 2) {
- break;
- } else if(var_begin != 0 && str[var_begin-1] == '\\') {
- str.replace(var_begin-1, 1, "");
- var_begin += 1;
- continue;
- }
-
- int var_incr = var_begin + 2;
- bool in_braces = FALSE, as_env = FALSE, as_prop = FALSE;
- if(str[var_incr] == '{') {
- in_braces = TRUE;
- var_incr++;
- while(var_incr < (int)str.length() &&
- (str[var_incr] == ' ' || str[var_incr] == '\t' || str[var_incr] == '\n'))
- var_incr++;
- }
- if(str[var_incr] == '(') {
- as_env = TRUE;
- var_incr++;
- } else if(str[var_incr] == '[') {
- as_prop = TRUE;
- var_incr++;
- }
- TQString val, args;
- while(var_incr < (int)str.length() &&
- (str[var_incr].isLetter() || str[var_incr].isNumber() || str[var_incr] == '.' || str[var_incr] == '_'))
- val += str[var_incr++];
- if(as_env) {
- if(str[var_incr] != ')') {
- var_incr++;
- warn_msg(WarnParser, "%s:%d: Unterminated env-variable replacement '%s' (%s)",
- parser.file.latin1(), parser.line_no,
- str.mid(var_begin, TQMAX(var_incr - var_begin,
- (int)str.length())).latin1(), str.latin1());
- var_begin += var_incr;
- continue;
- }
- var_incr++;
- } else if(as_prop) {
- if(str[var_incr] != ']') {
- var_incr++;
- warn_msg(WarnParser, "%s:%d: Unterminated prop-variable replacement '%s' (%s)",
- parser.file.latin1(), parser.line_no,
- str.mid(var_begin, TQMAX(var_incr - var_begin, int(str.length()))).latin1(), str.latin1());
- var_begin += var_incr;
- continue;
- }
- var_incr++;
- } else if(str[var_incr] == '(') { //args
- for(int parens = 0; var_incr < (int)str.length(); var_incr++) {
- if(str[var_incr] == '(') {
- parens++;
- if(parens == 1)
- continue;
- } else if(str[var_incr] == ')') {
- parens--;
- if(!parens) {
- var_incr++;
- break;
- }
- }
- args += str[var_incr];
- }
- }
- if(var_incr > (int)str.length() || (in_braces && str[var_incr] != '}')) {
- var_incr++;
- warn_msg(WarnParser, "%s:%d: Unterminated variable replacement '%s' (%s)",
- parser.file.latin1(), parser.line_no,
- str.mid(var_begin, TQMAX(var_incr - var_begin,
- (int)str.length())).latin1(), str.latin1());
- var_begin += var_incr;
- continue;
- } else if(in_braces) {
- var_incr++;
- }
-
- TQString replacement;
- if(as_env) {
- replacement = getenv(val);
- } else if(as_prop) {
- if(prop)
- replacement = prop->value(val);
- } else if(args.isEmpty()) {
- if(val.left(1) == ".")
- replacement = "";
- else if(val == "LITERAL_WHITESPACE")
- replacement = "\t";
- else if(val == "LITERAL_DOLLAR")
- replacement = "$";
- else if(val == "LITERAL_HASH")
- replacement = "#";
- else if(val == "PWD")
- replacement = TQDir::currentDirPath();
- else if(val == "DIR_SEPARATOR")
- replacement = Option::dir_sep;
- else
- replacement = place[varMap(val)].join(" ");
- } else {
- TQStringList arg_list = split_arg_list(doVariableReplace(args, place));
- debug_msg(1, "Running function: %s( %s )", val.latin1(), arg_list.join("::").latin1());
- if(val.lower() == "member") {
- if(arg_list.count() < 1 || arg_list.count() > 3) {
- fprintf(stderr, "%s:%d: member(var, start, end) requires three arguments.\n",
- parser.file.latin1(), parser.line_no);
- } else {
- const TQStringList &var = place[varMap(arg_list.first())];
- int start = 0;
- if(arg_list.count() >= 2)
- start = arg_list[1].toInt();
- if(start < 0)
- start += int(var.count());
- int end = start;
- if(arg_list.count() == 3)
- end = arg_list[2].toInt();
- if(end < 0)
- end += int(var.count());
- if(end < start)
- end = start;
- for(int i = start; i <= end && (int)var.count() >= i; i++) {
- if(!replacement.isEmpty())
- replacement += " ";
- replacement += var[i];
- }
- }
- } else if(val.lower() == "fromfile") {
- if(arg_list.count() != 2) {
- fprintf(stderr, "%s:%d: fromfile(file, variable) requires two arguments.\n",
- parser.file.latin1(), parser.line_no);
- } else {
- TQString file = arg_list[0];
- file = Option::fixPathToLocalOS(file);
- file.replace("\"", "");
-
- if(TQDir::isRelativePath(file)) {
- TQStringList include_roots;
- include_roots << Option::output_dir;
- TQString pfilewd = TQFileInfo(parser.file).dirPath();
- if(pfilewd.isEmpty())
- include_roots << pfilewd;
- if(Option::output_dir != TQDir::currentDirPath())
- include_roots << TQDir::currentDirPath();
- for(TQStringList::Iterator it = include_roots.begin(); it != include_roots.end(); ++it) {
- if(TQFile::exists((*it) + TQDir::separator() + file)) {
- file = (*it) + TQDir::separator() + file;
- break;
- }
- }
- }
- TQString orig_file = file;
- int di = file.findRev(Option::dir_sep);
- TQDir sunworkshop42workaround = TQDir::current();
- TQString oldpwd = sunworkshop42workaround.currentDirPath();
- if(di != -1 && TQDir::setCurrent(file.left(file.findRev(Option::dir_sep))))
- file = file.right(file.length() - di - 1);
- parser_info pi = parser;
- int sb = scope_block;
- int sf = scope_flag;
- TestStatus sc = test_status;
- TQMap tmp;
- bool r = read(file.latin1(), tmp);
- if(r) {
- replacement = tmp[arg_list[1]].join(" ");
- vars["QMAKE_INTERNAL_INCLUDED_FILES"].append(orig_file);
- } else {
- warn_msg(WarnParser, "%s:%d: Failure to include file %s.",
- pi.file.latin1(), pi.line_no, orig_file.latin1());
- }
- parser = pi;
- test_status = sc;
- scope_flag = sf;
- scope_block = sb;
- TQDir::setCurrent(oldpwd);
- }
- } else if(val.lower() == "eval") {
- for(TQStringList::ConstIterator arg_it = arg_list.begin();
- arg_it != arg_list.end(); ++arg_it) {
- if(!replacement.isEmpty())
- replacement += " ";
- replacement += place[(*arg_it)].join(" ");
- }
- } else if(val.lower() == "list") {
- static int x = 0;
- replacement.sprintf(".QMAKE_INTERNAL_TMP_VAR_%d", x++);
- TQStringList &lst = (*((TQMap*)&place))[replacement];
- lst.clear();
- for(TQStringList::ConstIterator arg_it = arg_list.begin();
- arg_it != arg_list.end(); ++arg_it)
- lst += split_value_list((*arg_it));
- } else if(val.lower() == "join") {
- if(arg_list.count() < 1 || arg_list.count() > 4) {
- fprintf(stderr, "%s:%d: join(var, glue, before, after) requires four"
- "arguments.\n", parser.file.latin1(), parser.line_no);
- } else {
- TQString glue, before, after;
- if(arg_list.count() >= 2)
- glue = arg_list[1].replace("\"", "" );
- if(arg_list.count() >= 3)
- before = arg_list[2].replace("\"", "" );
- if(arg_list.count() == 4)
- after = arg_list[3].replace("\"", "" );
- const TQStringList &var = place[varMap(arg_list.first())];
- if(!var.isEmpty())
- replacement = before + var.join(glue) + after;
- }
- } else if(val.lower() == "split") {
- if(arg_list.count() < 2 || arg_list.count() > 3) {
- fprintf(stderr, "%s:%d split(var, sep, join) requires three arguments\n",
- parser.file.latin1(), parser.line_no);
- } else {
- TQString sep = arg_list[1], join = " ";
- if(arg_list.count() == 3)
- join = arg_list[2];
- TQStringList var = place[varMap(arg_list.first())];
- for(TQStringList::Iterator vit = var.begin(); vit != var.end(); ++vit) {
- TQStringList lst = TQStringList::split(sep, (*vit));
- for(TQStringList::Iterator spltit = lst.begin(); spltit != lst.end(); ++spltit) {
- if(!replacement.isEmpty())
- replacement += join;
- replacement += (*spltit);
- }
- }
- }
- } else if(val.lower() == "find") {
- if(arg_list.count() != 2) {
- fprintf(stderr, "%s:%d find(var, str) requires two arguments\n",
- parser.file.latin1(), parser.line_no);
- } else {
- TQRegExp regx(arg_list[1]);
- const TQStringList &var = place[varMap(arg_list.first())];
- for(TQStringList::ConstIterator vit = var.begin();
- vit != var.end(); ++vit) {
- if(regx.search(*vit) != -1) {
- if(!replacement.isEmpty())
- replacement += " ";
- replacement += (*vit);
- }
- }
- }
- } else if(val.lower() == "system") {
- if(arg_list.count() != 1) {
- fprintf(stderr, "%s:%d system(execut) requires one argument\n",
- parser.file.latin1(), parser.line_no);
- } else {
- char buff[256];
- FILE *proc = QT_POPEN(arg_list.join(" ").latin1(), "r");
- while(proc && !feof(proc)) {
- int read_in = int(fread(buff, 1, 255, proc));
- if(!read_in)
- break;
- for(int i = 0; i < read_in; i++) {
- if(buff[i] == '\n' || buff[i] == '\t')
- buff[i] = ' ';
- }
- buff[read_in] = '\0';
- replacement += buff;
- }
- }
- } else if(val.lower() == "files") {
- if(arg_list.count() != 1) {
- fprintf(stderr, "%s:%d files(pattern) requires one argument\n",
- parser.file.latin1(), parser.line_no);
- } else {
- TQString dir, regex = arg_list[0];
- regex = Option::fixPathToLocalOS(regex);
- regex.replace("\"", "");
- if(regex.findRev(TQDir::separator()) != -1) {
- dir = regex.left(regex.findRev(TQDir::separator()) + 1);
- regex = regex.right(regex.length() - dir.length());
- }
- TQDir d(dir, regex);
- for(int i = 0; i < (int)d.count(); i++) {
- if(!replacement.isEmpty())
- replacement += " ";
- replacement += dir + d[i];
- }
- }
- } else if(val.lower() == "prompt") {
- if(arg_list.count() != 1) {
- fprintf(stderr, "%s:%d prompt(question) requires one argument\n",
- parser.file.latin1(), parser.line_no);
- } else if(projectFile() == "-") {
- fprintf(stderr, "%s:%d prompt(question) cannot be used when '-o -' is used.\n",
- parser.file.latin1(), parser.line_no);
- } else {
- TQString msg = arg_list.first();
- if((msg.startsWith("\"") || msg.startsWith("'")) && msg.endsWith(msg.left(1)))
- msg = msg.mid(1, msg.length()-2);
- msg.replace(TQString("${QMAKE_FILE}"), parser.file.latin1());
- msg.replace(TQString("${QMAKE_LINE_NUMBER}"), TQString::number(parser.line_no));
- msg.replace(TQString("${QMAKE_DATE}"), TQDateTime::currentDateTime().toString());
- doVariableReplace(msg, place);
- fixEnvVariables(msg);
- if(!msg.endsWith("?"))
- msg += "?";
- fprintf(stderr, "Project %s: %s ", val.upper().latin1(), msg.latin1());
-
- TQFile tqfile;
- if(tqfile.open(IO_ReadOnly, stdin)) {
- TQTextStream t(&tqfile);
- replacement = t.readLine();
- }
- }
- } else {
- fprintf(stderr, "%s:%d: Unknown replace function: %s\n",
- parser.file.latin1(), parser.line_no, val.latin1());
- }
- }
- //actually do replacement now..
- int mlen = var_incr - var_begin;
- debug_msg(2, "Project Parser [var replace]: '%s' :: %s -> %s", str.latin1(),
- str.mid(var_begin, mlen).latin1(), replacement.latin1());
- str.replace(var_begin, mlen, replacement);
- var_begin += replacement.length();
- }
- return str;
-}
diff --git a/qmake/project.h b/qmake/project.h
deleted file mode 100644
index cf349ee03..000000000
--- a/qmake/project.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** Definition of TQMakeProject class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __PROJECT_H__
-#define __PROJECT_H__
-
-#include
-#include
-#include
-
-class TQMakeProperty;
-
-class TQMakeProject
-{
- enum TestStatus { TestNone, TestFound, TestSeek } test_status;
- int scope_block, scope_flag;
-
- TQString pfile, cfile;
- TQMakeProperty *prop;
- void reset();
- TQMap vars, base_vars, cache;
- bool parse(const TQString &text, TQMap &place);
- bool doProjectTest(const TQString &func, const TQString ¶ms, TQMap &place);
- bool doProjectTest(const TQString &func, TQStringList args, TQMap &place);
- bool doProjectCheckReqs(const TQStringList &deps, TQMap &place);
- TQString doVariableReplace(TQString &str, const TQMap &place);
-
-public:
- TQMakeProject();
- TQMakeProject(TQMakeProperty *);
-
- enum { ReadCache=0x01, ReadConf=0x02, ReadCmdLine=0x04, ReadProFile=0x08, ReadPostFiles=0x10, ReadAll=0xFF };
- bool read(const TQString &project, const TQString &pwd, uchar cmd=ReadAll);
- bool read(uchar cmd=ReadAll);
-
- TQString projectFile();
- TQString configFile();
-
- bool isEmpty(const TQString &v);
- TQStringList &values(const TQString &v);
- TQString first(const TQString &v);
- TQMap &variables();
- bool isActiveConfig(const TQString &x, bool regex=FALSE, TQMap *place=NULL);
-
-protected:
- friend class MakefileGenerator;
- bool read(const TQString &file, TQMap &place);
-
-};
-
-inline TQString TQMakeProject::projectFile()
-{
-#if defined(Q_CC_SUN) && (__SUNPRO_CC == 0x500) || defined(Q_CC_HP)
- // workaround for Sun WorkShop 5.0 bug fixed in Forte 6
- if (pfile == "-")
- return TQString("(stdin)");
- else
- return pfile;
-#else
- return pfile == "-" ? TQString("(stdin)") : pfile;
-#endif
-}
-
-inline TQString TQMakeProject::configFile()
-{ return cfile; }
-
-inline bool TQMakeProject::isEmpty(const TQString &v)
-{ return !vars.contains(v) || vars[v].isEmpty(); }
-
-inline TQStringList &TQMakeProject::values(const TQString &v)
-{ return vars[v]; }
-
-inline TQString TQMakeProject::first(const TQString &v)
-{
-#if defined(Q_CC_SUN) && (__SUNPRO_CC == 0x500) || defined(Q_CC_HP)
- // workaround for Sun WorkShop 5.0 bug fixed in Forte 6
- if (isEmpty(v))
- return TQString("");
- else
- return vars[v].first();
-#else
- return isEmpty(v) ? TQString("") : vars[v].first();
-#endif
-}
-
-inline TQMap &TQMakeProject::variables()
-{ return vars; }
-
-#endif /* __PROJECT_H__ */
diff --git a/qmake/property.cpp b/qmake/property.cpp
deleted file mode 100644
index 77d827004..000000000
--- a/qmake/property.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQMakeProperty class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "property.h"
-#include "option.h"
-#include
-#include
-#include
-#include
-#include
-
-TQStringList qmake_mkspec_paths(); //project.cpp
-
-TQMakeProperty::TQMakeProperty() : sett(NULL)
-{
-}
-
-TQMakeProperty::~TQMakeProperty()
-{
- delete sett;;
- sett = NULL;
-}
-
-
-bool TQMakeProperty::initSettings()
-{
- if(sett)
- return TRUE;
- sett = new TQSettings;
- return TRUE;
-}
-
-TQString
-TQMakeProperty::keyBase(bool version) const
-{
- TQString ret = "/TQMake/properties/";
- if(version)
- ret += TQString(qmake_version()) + "/";
- return ret;
-}
-
-
-TQString
-TQMakeProperty::value(TQString v, bool just_check)
-{
- if(v == "QT_INSTALL_PREFIX") {
-#ifdef QT_INSTALL_PREFIX
- return QT_INSTALL_PREFIX;
-#elif defined(HAVE_QCONFIG_CPP)
- return tqInstallPath();
-#endif
- } else if(v == "QT_INSTALL_DATA") {
-#ifdef QT_INSTALL_DATA
- return QT_INSTALL_DATA;
-#elif defined(HAVE_QCONFIG_CPP)
- return tqInstallPathData();
-#endif
- } else if(v == "QMAKE_MKSPECS") {
- return qmake_mkspec_paths().join(Option::target_mode == Option::TARG_WIN_MODE ? ";" : ":");
- } else if(v == "QMAKE_VERSION") {
- return qmake_version();
- }
-
- if(initSettings()) {
- bool ok;
- int slash = v.findRev('/');
- TQString ret = sett->readEntry(keyBase(slash == -1) + v, TQString::null, &ok);
- if(!ok) {
- TQString version = qmake_version();
- if(slash != -1) {
- version = v.left(slash-1);
- v = v.mid(slash+1);
- }
- TQStringList subs = sett->subkeyList(keyBase(FALSE));
- subs.sort();
- for(TQStringList::Iterator it = subs.fromLast(); it != subs.end(); --it) {
- if((*it).isEmpty() || (*it) > version)
- continue;
- ret = sett->readEntry(keyBase(FALSE) + (*it) + "/" + v, TQString::null, &ok);
- if(ok) {
- if(!just_check)
- debug_msg(1, "Fell back from %s -> %s for '%s'.", version.latin1(),
- (*it).latin1(), v.latin1());
- return ret;
- }
- }
- }
- return ok ? ret : TQString::null;
- }
- return TQString::null;
-}
-
-bool
-TQMakeProperty::hasValue(TQString v)
-{
- if(initSettings())
- return !value(v, TRUE).isNull();
- return FALSE;
-}
-
-void
-TQMakeProperty::setValue(TQString var, const TQString &val)
-{
- if(initSettings())
- sett->writeEntry(keyBase() + var, val);
-}
-
-bool
-TQMakeProperty::exec()
-{
- bool ret = TRUE;
- if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY) {
- if(Option::prop::properties.isEmpty() && initSettings()) {
- TQStringList subs = sett->subkeyList(keyBase(FALSE));
- subs.sort();
- for(TQStringList::Iterator it = subs.fromLast(); it != subs.end(); --it) {
- if((*it).isEmpty())
- continue;
- TQStringList keys = sett->entryList(keyBase(FALSE) + (*it));
- for(TQStringList::Iterator it2 = keys.begin(); it2 != keys.end(); it2++) {
- TQString ret = sett->readEntry(keyBase(FALSE) + (*it) + "/" + (*it2));
- if((*it) != qmake_version())
- fprintf(stdout, "%s/", (*it).latin1());
- fprintf(stdout, "%s:%s\n", (*it2).latin1(), ret.latin1());
- }
- }
- return TRUE;
- }
- for(TQStringList::Iterator it = Option::prop::properties.begin();
- it != Option::prop::properties.end(); it++) {
- if(Option::prop::properties.count() > 1)
- fprintf(stdout, "%s:", (*it).latin1());
- if(!hasValue((*it))) {
- ret = FALSE;
- fprintf(stdout, "**Unknown**\n");
- } else {
- fprintf(stdout, "%s\n", value((*it)).latin1());
- }
- }
- } else if(Option::qmake_mode == Option::QMAKE_SET_PROPERTY) {
- for(TQStringList::Iterator it = Option::prop::properties.begin();
- it != Option::prop::properties.end(); it++) {
- TQString var = (*it);
- it++;
- if(it == Option::prop::properties.end()) {
- ret = FALSE;
- break;
- }
- if(!var.startsWith("."))
- setValue(var, (*it));
- }
- }
- return ret;
-}
diff --git a/qmake/property.h b/qmake/property.h
deleted file mode 100644
index 69a273859..000000000
--- a/qmake/property.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Definition of TQMakeProperty class.
-**
-** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
-**
-** This file is part of qmake.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#ifndef __PROPERTY_H__
-#define __PROPERTY_H__
-
-#include
-
-class TQSettings;
-
-class TQMakeProperty
-{
- TQSettings *sett;
- TQString keyBase(bool =TRUE) const;
- bool initSettings();
- TQString value(TQString, bool just_check);
-public:
- TQMakeProperty();
- ~TQMakeProperty();
-
- bool hasValue(TQString);
- TQString value(TQString v) { return value(v, FALSE); }
- void setValue(TQString, const TQString &);
-
- bool exec();
-};
-
-#endif /* __PROPERTY_H__ */
diff --git a/qmake/qtmd5.cpp b/qmake/qtmd5.cpp
deleted file mode 100644
index 9aabd4f4f..000000000
--- a/qmake/qtmd5.cpp
+++ /dev/null
@@ -1,304 +0,0 @@
-/* derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm */
-#include
-#include "qtmd5.h"
-
-typedef unsigned char *POINTER;
-typedef unsigned short int UINT2;
-typedef unsigned long int UINT4;
-
-typedef struct {
- UINT4 state[4]; // state(ABCD)
- UINT4 count[2]; // number of bits, modulo 2^64(lsb first)
- unsigned char buffer[64]; // input buffer
-} MD5_CTX;
-
-static void MD5Init(MD5_CTX *);
-static void MD5Update(MD5_CTX *, unsigned char *, unsigned int);
-static void MD5Final(unsigned char [16], MD5_CTX *);
-static void MD5Transform(UINT4[4], unsigned char[64]);
-static void Encode(unsigned char *, UINT4 *, unsigned int);
-static void Decode(UINT4 *, unsigned char *, unsigned int);
-static void MD5_memset(POINTER, int, unsigned int);
-static void MD5_memcpy(POINTER output,POINTER input,unsigned int len);
-
-// Constants for MD5Transform routine.
-enum {
- S11 = 7, S12 = 12, S13 = 17, S14 = 22, S21 = 5, S22 = 9, S23 = 14, S24 = 20,
- S31 = 4, S32 = 11, S33 = 16, S34 = 23, S41 = 6, S42 = 10, S43 = 15, S44 = 21
-};
-
-static unsigned char PADDING[64] = {
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-// F, G, H and I are basic MD5 functions.
-static inline UINT4 F(UINT4 x, UINT4 y, UINT4 z)
-{
- return(x & y) |((~x) & z);
-}
-
-static inline UINT4 G(UINT4 x, UINT4 y, UINT4 z)
-{
- return(x & z) |(y &(~z));
-}
-
-static inline UINT4 H(UINT4 x, UINT4 y, UINT4 z)
-{
- return x ^ y ^ z;
-}
-
-static inline UINT4 I(UINT4 x, UINT4 y, UINT4 z)
-{
- return y ^(x |(~z));
-}
-
-static inline UINT4 rotateLeft(UINT4 x, UINT4 n)
-{
- return(x << n) |(x >>(32-(n)));
-}
-
-// FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
-// Rotation is separate from addition to prevent recomputation.
-static inline void FF(UINT4 &a, UINT4 b, UINT4 c, UINT4 d, UINT4 x, UINT4 s, UINT4 ac)
-{
- a += F(b, c, d) + x + ac;
- a = rotateLeft(a, s);
- a += b;
-}
-
-static inline void GG(UINT4 &a, UINT4 b, UINT4 c, UINT4 d, UINT4 x, UINT4 s, UINT4 ac)
-{
- a += G(b, c, d) + x +(UINT4)(ac);
- a = rotateLeft(a, s);
- a += b;
-}
-
-static inline void HH(UINT4 &a, UINT4 b, UINT4 c, UINT4 d, UINT4 x, UINT4 s, UINT4 ac)
-{
- a += H(b, c, d) + x +(UINT4)(ac);
- a = rotateLeft(a, s);
- a += b;
-}
-
-static inline void II(UINT4 &a, UINT4 b, UINT4 c, UINT4 d, UINT4 x, UINT4 s, UINT4 ac)
-{
- a += I(b, c, d) + x +(UINT4)(ac);
- a = rotateLeft(a, s);
- a += b;
-}
-
-// MD5 initialization. Begins an MD5 operation, writing a new context.
-static void MD5Init(MD5_CTX *context)
-{
- context->count[0] = context->count[1] = 0;
-
- // Load magic initialization constants.
- context->state[0] = 0x67452301;
- context->state[1] = 0xefcdab89;
- context->state[2] = 0x98badcfe;
- context->state[3] = 0x10325476;
-}
-
-// MD5 block update operation. Continues an MD5 message-digest
-// operation, processing another message block, and updating the
-// context.
-static void MD5Update(MD5_CTX *context, unsigned char *input, unsigned int inputLen)
-{
- unsigned int i, index, partLen;
- // Compute number of bytes mod 64
- index =(unsigned int)((context->count[0] >> 3) & 0x3F);
-
- // Update number of bits
- if ((context->count[0] +=((UINT4)inputLen << 3)) <((UINT4)inputLen << 3))
- context->count[1]++;
-
- context->count[1] +=((UINT4)inputLen >> 29);
- partLen = 64 - index;
-
- // Transform as many times as possible.
- if (inputLen >= partLen) {
- MD5_memcpy((POINTER)&context->buffer[index],(POINTER)input, partLen);
- MD5Transform(context->state, context->buffer);
- for (i = partLen; i + 63 < inputLen; i += 64)
- MD5Transform(context->state, &input[i]);
- index = 0;
- } else {
- i = 0;
- }
-
- // Buffer remaining input
- MD5_memcpy((POINTER)&context->buffer[index],(POINTER)&input[i],
- inputLen-i);
-}
-
-// MD5 finalization. Ends an MD5 message-digest operation, writing the
-// the message digest and zeroizing the context.
-static void MD5Final(unsigned char digest[16], MD5_CTX *context)
-{
- unsigned char bits[8];
- unsigned int index, padLen;
-
- // Save number of bits
- Encode(bits, context->count, 8);
-
- // Pad out to 56 mod 64.
- index =(unsigned int)((context->count[0] >> 3) & 0x3f);
- padLen =(index < 56) ?(56 - index) :(120 - index);
- MD5Update(context, PADDING, padLen);
-
- // Append length(before padding)
- MD5Update(context, bits, 8);
-
- // Store state in digest
- Encode(digest, context->state, 16);
-
- // Zeroize sensitive information.
- MD5_memset((POINTER)context, 0, sizeof(*context));
-}
-
-// MD5 basic transformation. Transforms state based on block.
-static void MD5Transform(UINT4 state[4], unsigned char block[64])
-{
- UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
- Decode(x, block, 64);
-
- // Round 1
- FF(a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
- FF(d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
- FF(c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
- FF(b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
- FF(a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
- FF(d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
- FF(c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
- FF(b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
- FF(a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
- FF(d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
- FF(c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
- FF(b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
- FF(a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
- FF(d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
- FF(c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
- FF(b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-
- // Round 2
- GG(a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
- GG(d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
- GG(c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
- GG(b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
- GG(a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
- GG(d, a, b, c, x[10], S22, 0x2441453); /* 22 */
- GG(c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
- GG(b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
- GG(a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
- GG(d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
- GG(c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
- GG(b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
- GG(a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
- GG(d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
- GG(c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
- GG(b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-
- // Round 3
- HH(a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
- HH(d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
- HH(c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
- HH(b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
- HH(a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
- HH(d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
- HH(c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
- HH(b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
- HH(a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
- HH(d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
- HH(c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
- HH(b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
- HH(a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
- HH(d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
- HH(c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
- HH(b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-
- // Round 4
- II(a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
- II(d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
- II(c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
- II(b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
- II(a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
- II(d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
- II(c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
- II(b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
- II(a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
- II(d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
- II(c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
- II(b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
- II(a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
- II(d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
- II(c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
- II(b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
- state[0] += a;
- state[1] += b;
- state[2] += c;
- state[3] += d;
-
- // Zeroize sensitive information.
- MD5_memset((POINTER)x, 0, sizeof(x));
-}
-
-// Encodes input(UINT4) into output(unsigned char). Assumes len is a
-// multiple of 4.
-static void Encode(unsigned char *output, UINT4 *input, unsigned int len)
-{
- unsigned int i, j;
- for (i = 0, j = 0; j < len; i++, j += 4) {
- output[j] = (unsigned char) (input[i] & 0xff);
- output[j+1] = (unsigned char) ((input[i] >> 8) & 0xff);
- output[j+2] = (unsigned char) ((input[i] >> 16) & 0xff);
- output[j+3] = (unsigned char) ((input[i] >> 24) & 0xff);
- }
-}
-
-// Decodes input(unsigned char) into output(UINT4). Assumes len is a
-// multiple of 4.
-static void Decode(UINT4 *output, unsigned char *input, unsigned int len)
-{
- unsigned int i, j;
- for (i = 0, j = 0; j < len; i++, j += 4)
- output[i] =((UINT4)input[j]) |(((UINT4)input[j+1]) << 8) |
- (((UINT4)input[j+2]) << 16) |(((UINT4)input[j+3]) << 24);
-}
-
-// Note: Replace "for loop" with standard memset if possible.
-static void MD5_memset(POINTER output, int value, unsigned int len)
-{
- unsigned int i;
- for (i = 0; i < len; i++)
- ((char *)output)[i] =(char)value;
-}
-
-// Note: Replace "for loop" with standard memcpy if possible.
-static void MD5_memcpy(POINTER output,POINTER input,unsigned int len)
-{
- unsigned int i;
- for (i = 0; i < len; i++)
- output[i] = input[i];
-}
-
-void qtMD5(const TQByteArray &src, unsigned char *digest)
-{
- MD5_CTX context;
-
- MD5Init(&context);
- MD5Update(&context, (unsigned char *) src.data(), src.size());
- MD5Final(digest, &context);
-}
-
-TQString qtMD5(const TQByteArray &src)
-{
- unsigned char digest[16];
- qtMD5(src, digest);
-
- TQString output, tmp;
- for (int i = 0; i < 16; ++i)
- output += tmp.sprintf("%02x", digest[i]);
- return output;
-}
diff --git a/qmake/qtmd5.h b/qmake/qtmd5.h
deleted file mode 100644
index 68f12b7c1..000000000
--- a/qmake/qtmd5.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef TQTMD5_H
-#define TQTMD5_H
-#include
-#include
-
-void qtMD5(const TQByteArray &src, unsigned char *digest);
-TQString qtMD5(const TQByteArray &src);
-
-#endif
-
-
diff --git a/src/qt.pro b/src/qt.pro
index 24302751b..3b166d248 100644
--- a/src/qt.pro
+++ b/src/qt.pro
@@ -6,7 +6,7 @@ DESTDIR = $$QMAKE_LIBDIR_TQT
DLLDESTDIR = ../bin
CONFIG += qt warn_on depend_includepath
-CONFIG += qmake_cache
+CONFIG += tqmake_cache
win32:!shared:CONFIG += staticlib
diff --git a/src/sql/drivers/mysql/tqsql_mysql.cpp b/src/sql/drivers/mysql/tqsql_mysql.cpp
index 603a5b960..04c8e477f 100644
--- a/src/sql/drivers/mysql/tqsql_mysql.cpp
+++ b/src/sql/drivers/mysql/tqsql_mysql.cpp
@@ -102,7 +102,7 @@ public:
TQValueVector fieldTypes;
};
-TQSqlError qMakeError( const TQString& err, int type, const TQMYSQLDriverPrivate* p )
+TQSqlError tqMakeError( const TQString& err, int type, const TQMYSQLDriverPrivate* p )
{
return TQSqlError(TQMYSQL_DRIVER_NAME ": " + err, TQString(mysql_error( p->mysql )), type, mysql_errno( p->mysql ));
}
@@ -306,7 +306,7 @@ bool TQMYSQLResult::reset ( const TQString& query )
const char *encQuery = query.ascii();
if ( mysql_real_query( d->mysql, encQuery, tqstrlen(encQuery) ) ) {
- setLastError( qMakeError("Unable to execute query", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError("Unable to execute query", TQSqlError::Statement, d ) );
return FALSE;
}
if ( isForwardOnly() ) {
@@ -317,7 +317,7 @@ bool TQMYSQLResult::reset ( const TQString& query )
d->result = mysql_store_result( d->mysql );
}
if ( !d->result && mysql_field_count( d->mysql ) > 0 ) {
- setLastError( qMakeError( "Unable to store result", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError( "Unable to store result", TQSqlError::Statement, d ) );
return FALSE;
}
int numFields = mysql_field_count( d->mysql );
@@ -511,7 +511,7 @@ bool TQMYSQLDriver::open( const TQString& db,
}
if (!(d->mysql = mysql_init((MYSQL*) 0))) {
- setLastError( qMakeError( "Unable to connect", TQSqlError::Connection, d ) );
+ setLastError( tqMakeError( "Unable to connect", TQSqlError::Connection, d ) );
mysql_close( d->mysql );
setOpenError( TRUE );
return FALSE;
@@ -561,13 +561,13 @@ bool TQMYSQLDriver::open( const TQString& db,
clientOptionFlags ) )
{
if ( !db.isEmpty() && mysql_select_db( d->mysql, db )) {
- setLastError( qMakeError("Unable open database '" + db + "'", TQSqlError::Connection, d ) );
+ setLastError( tqMakeError("Unable open database '" + db + "'", TQSqlError::Connection, d ) );
mysql_close( d->mysql );
setOpenError( TRUE );
return FALSE;
}
} else {
- setLastError( qMakeError( "Unable to connect", TQSqlError::Connection, d ) );
+ setLastError( tqMakeError( "Unable to connect", TQSqlError::Connection, d ) );
mysql_close( d->mysql );
setOpenError( TRUE );
return FALSE;
@@ -596,7 +596,7 @@ bool TQMYSQLDriver::ping()
return TRUE;
}
else {
- setLastError( qMakeError("Unable to execute ping", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError("Unable to execute ping", TQSqlError::Statement, d ) );
return FALSE;
}
}
@@ -758,7 +758,7 @@ bool TQMYSQLDriver::beginTransaction()
return FALSE;
}
if ( mysql_query( d->mysql, "BEGIN WORK" ) ) {
- setLastError( qMakeError("Unable to begin transaction", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError("Unable to begin transaction", TQSqlError::Statement, d ) );
return FALSE;
}
return TRUE;
@@ -776,7 +776,7 @@ bool TQMYSQLDriver::commitTransaction()
return FALSE;
}
if ( mysql_query( d->mysql, "COMMIT" ) ) {
- setLastError( qMakeError("Unable to commit transaction", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError("Unable to commit transaction", TQSqlError::Statement, d ) );
return FALSE;
}
return TRUE;
@@ -794,7 +794,7 @@ bool TQMYSQLDriver::rollbackTransaction()
return FALSE;
}
if ( mysql_query( d->mysql, "ROLLBACK" ) ) {
- setLastError( qMakeError("Unable to rollback transaction", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError("Unable to rollback transaction", TQSqlError::Statement, d ) );
return FALSE;
}
return TRUE;
diff --git a/src/sql/drivers/odbc/tqsql_odbc.cpp b/src/sql/drivers/odbc/tqsql_odbc.cpp
index 3da2dd50c..13b3af584 100644
--- a/src/sql/drivers/odbc/tqsql_odbc.cpp
+++ b/src/sql/drivers/odbc/tqsql_odbc.cpp
@@ -193,7 +193,7 @@ static void qSqlWarning( const TQString& message, const TQODBCPrivate* odbc )
#endif
}
-static TQSqlError qMakeError( const TQString& err, int type, const TQODBCPrivate* p )
+static TQSqlError tqMakeError( const TQString& err, int type, const TQODBCPrivate* p )
{
return TQSqlError( "TQODBC3: " + err, qODBCWarn(p), type );
}
@@ -444,7 +444,7 @@ static SQLBIGINT qGetBigIntData( SQLHANDLE hStmt, int column, bool& isNull )
// creates a TQSqlFieldInfo from a valid hStmt generated
// by SQLColumns. The hStmt has to point to a valid position.
-static TQSqlFieldInfo qMakeFieldInfo( const SQLHANDLE hStmt, const TQODBCPrivate* p )
+static TQSqlFieldInfo tqMakeFieldInfo( const SQLHANDLE hStmt, const TQODBCPrivate* p )
{
bool isNull;
TQString fname = qGetStringData( hStmt, 3, -1, isNull, p->unicode );
@@ -463,7 +463,7 @@ static TQSqlFieldInfo qMakeFieldInfo( const SQLHANDLE hStmt, const TQODBCPrivate
return TQSqlFieldInfo( fname, qDecodeODBCType( type, p ), required, size, prec, TQVariant(), type );
}
-static TQSqlFieldInfo qMakeFieldInfo( const TQODBCPrivate* p, int i )
+static TQSqlFieldInfo tqMakeFieldInfo( const TQODBCPrivate* p, int i )
{
SQLSMALLINT colNameLen;
SQLSMALLINT colType;
@@ -484,7 +484,7 @@ static TQSqlFieldInfo qMakeFieldInfo( const TQODBCPrivate* p, int i )
if ( r != SQL_SUCCESS ) {
#ifdef QT_CHECK_RANGE
- qSqlWarning( TQString("qMakeField: Unable to describe column %1").arg(i), p );
+ qSqlWarning( TQString("tqMakeField: Unable to describe column %1").arg(i), p );
#endif
return TQSqlFieldInfo();
}
@@ -722,7 +722,7 @@ bool TQODBCResult::reset ( const TQString& query )
(SQLINTEGER) query8.length() );
#endif
if ( r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO ) {
- setLastError( qMakeError( "Unable to execute statement", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError( "Unable to execute statement", TQSqlError::Statement, d ) );
return FALSE;
}
SQLSMALLINT count;
@@ -730,7 +730,7 @@ bool TQODBCResult::reset ( const TQString& query )
if ( count ) {
setSelect( TRUE );
for ( int i = 0; i < count; ++i ) {
- d->rInf.append( qMakeFieldInfo( d, i ) );
+ d->rInf.append( tqMakeFieldInfo( d, i ) );
}
} else {
setSelect( FALSE );
@@ -1231,7 +1231,7 @@ bool TQODBCResult::exec()
#ifdef QT_CHECK_RANGE
tqWarning( "TQODBCResult::exec: unable to bind variable: %s", qODBCWarn( d ).local8Bit().data() );
#endif
- setLastError( qMakeError( "Unable to bind variable", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError( "Unable to bind variable", TQSqlError::Statement, d ) );
return FALSE;
}
}
@@ -1241,7 +1241,7 @@ bool TQODBCResult::exec()
#ifdef QT_CHECK_RANGE
tqWarning( "TQODBCResult::exec: Unable to execute statement: %s", qODBCWarn( d ).local8Bit().data() );
#endif
- setLastError( qMakeError( "Unable to execute statement", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError( "Unable to execute statement", TQSqlError::Statement, d ) );
return FALSE;
}
SQLSMALLINT count;
@@ -1249,7 +1249,7 @@ bool TQODBCResult::exec()
if ( count ) {
setSelect( TRUE );
for ( int i = 0; i < count; ++i ) {
- d->rInf.append( qMakeFieldInfo( d, i ) );
+ d->rInf.append( tqMakeFieldInfo( d, i ) );
}
} else {
setSelect( FALSE );
@@ -1464,13 +1464,13 @@ bool TQODBCDriver::open( const TQString & db,
&cb,
SQL_DRIVER_NOPROMPT );
if ( r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO ) {
- setLastError( qMakeError( "Unable to connect", TQSqlError::Connection, d ) );
+ setLastError( tqMakeError( "Unable to connect", TQSqlError::Connection, d ) );
setOpenError( TRUE );
return FALSE;
}
if ( !d->checkDriver() ) {
- setLastError( qMakeError( "Unable to connect - Driver doesn't support all needed functionality", TQSqlError::Connection, d ) );
+ setLastError( tqMakeError( "Unable to connect - Driver doesn't support all needed functionality", TQSqlError::Connection, d ) );
setOpenError( TRUE );
return FALSE;
}
@@ -1672,7 +1672,7 @@ bool TQODBCDriver::beginTransaction()
(SQLPOINTER)ac,
sizeof(ac) );
if ( r != SQL_SUCCESS ) {
- setLastError( qMakeError( "Unable to disable autocommit", TQSqlError::Transaction, d ) );
+ setLastError( tqMakeError( "Unable to disable autocommit", TQSqlError::Transaction, d ) );
return FALSE;
}
return TRUE;
@@ -1690,7 +1690,7 @@ bool TQODBCDriver::commitTransaction()
d->hDbc,
SQL_COMMIT );
if ( r != SQL_SUCCESS ) {
- setLastError( qMakeError("Unable to commit transaction", TQSqlError::Transaction, d ) );
+ setLastError( tqMakeError("Unable to commit transaction", TQSqlError::Transaction, d ) );
return FALSE;
}
return endTrans();
@@ -1708,7 +1708,7 @@ bool TQODBCDriver::rollbackTransaction()
d->hDbc,
SQL_ROLLBACK );
if ( r != SQL_SUCCESS ) {
- setLastError( qMakeError( "Unable to rollback transaction", TQSqlError::Transaction, d ) );
+ setLastError( tqMakeError( "Unable to rollback transaction", TQSqlError::Transaction, d ) );
return FALSE;
}
return endTrans();
@@ -1722,7 +1722,7 @@ bool TQODBCDriver::endTrans()
(SQLPOINTER)ac,
sizeof(ac));
if ( r != SQL_SUCCESS ) {
- setLastError( qMakeError( "Unable to enable autocommit", TQSqlError::Transaction, d ) );
+ setLastError( tqMakeError( "Unable to enable autocommit", TQSqlError::Transaction, d ) );
return FALSE;
}
return TRUE;
@@ -1968,7 +1968,7 @@ TQSqlRecordInfo TQODBCDriver::recordInfo( const TQString& tablename ) const
// Store all fields in a StringList because some drivers can't detail fields in this FETCH loop
while ( r == SQL_SUCCESS ) {
- fil.append( qMakeFieldInfo( hStmt, d ) );
+ fil.append( tqMakeFieldInfo( hStmt, d ) );
r = SQLFetchScroll( hStmt,
SQL_FETCH_NEXT,
diff --git a/src/sql/drivers/psql/tqsql_psql.cpp b/src/sql/drivers/psql/tqsql_psql.cpp
index df79ac2fd..be73b6303 100644
--- a/src/sql/drivers/psql/tqsql_psql.cpp
+++ b/src/sql/drivers/psql/tqsql_psql.cpp
@@ -120,7 +120,7 @@ bool TQPSQLOpenExtension::open( const TQString& db,
return driver->open( db, user, password, host, port, connOpts );
}
-static TQSqlError qMakeError( const TQString& err, int type, const TQPSQLPrivate* p )
+static TQSqlError tqMakeError( const TQString& err, int type, const TQPSQLPrivate* p )
{
const char *s = PQerrorMessage(p->connection);
TQString msg = p->isUtf8 ? TQString::fromUtf8(s) : TQString::fromLocal8Bit(s);
@@ -484,7 +484,7 @@ bool TQPSQLResult::reset ( const TQString& query )
setActive( TRUE );
return TRUE;
}
- setLastError( qMakeError( "Unable to create query", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError( "Unable to create query", TQSqlError::Statement, d ) );
return FALSE;
}
@@ -656,7 +656,7 @@ bool TQPSQLDriver::open( const TQString & db,
d->connection = PQconnectdb( connectString.local8Bit().data() );
if ( PQstatus( d->connection ) == CONNECTION_BAD ) {
- setLastError( qMakeError("Unable to connect", TQSqlError::Connection, d ) );
+ setLastError( tqMakeError("Unable to connect", TQSqlError::Connection, d ) );
setOpenError( TRUE );
return FALSE;
}
@@ -697,7 +697,7 @@ bool TQPSQLDriver::ping()
if ( PQstatus( d->connection ) != CONNECTION_OK ) {
PQreset( d->connection );
if ( PQstatus( d->connection ) != CONNECTION_OK ) {
- setLastError( qMakeError("Unable to execute ping", TQSqlError::Statement, d ) );
+ setLastError( tqMakeError("Unable to execute ping", TQSqlError::Statement, d ) );
return FALSE;
}
}
@@ -720,7 +720,7 @@ bool TQPSQLDriver::beginTransaction()
PGresult* res = PQexec( d->connection, "BEGIN" );
if ( !res || PQresultStatus( res ) != PGRES_COMMAND_OK ) {
PQclear( res );
- setLastError( qMakeError( "Could not begin transaction", TQSqlError::Transaction, d ) );
+ setLastError( tqMakeError( "Could not begin transaction", TQSqlError::Transaction, d ) );
return FALSE;
}
PQclear( res );
@@ -738,7 +738,7 @@ bool TQPSQLDriver::commitTransaction()
PGresult* res = PQexec( d->connection, "COMMIT" );
if ( !res || PQresultStatus( res ) != PGRES_COMMAND_OK ) {
PQclear( res );
- setLastError( qMakeError( "Could not commit transaction", TQSqlError::Transaction, d ) );
+ setLastError( tqMakeError( "Could not commit transaction", TQSqlError::Transaction, d ) );
return FALSE;
}
PQclear( res );
@@ -755,7 +755,7 @@ bool TQPSQLDriver::rollbackTransaction()
}
PGresult* res = PQexec( d->connection, "ROLLBACK" );
if ( !res || PQresultStatus( res ) != PGRES_COMMAND_OK ) {
- setLastError( qMakeError( "Could not rollback transaction", TQSqlError::Transaction, d ) );
+ setLastError( tqMakeError( "Could not rollback transaction", TQSqlError::Transaction, d ) );
PQclear( res );
return FALSE;
}
diff --git a/src/sql/drivers/sqlite3/tqsql_sqlite3.cpp b/src/sql/drivers/sqlite3/tqsql_sqlite3.cpp
index f75feaa1b..df3084c97 100644
--- a/src/sql/drivers/sqlite3/tqsql_sqlite3.cpp
+++ b/src/sql/drivers/sqlite3/tqsql_sqlite3.cpp
@@ -43,7 +43,7 @@ static TQVariant::Type qSqliteType(int tp)
}
}
-static TQSqlError qMakeError(sqlite3 *access, const TQString &descr, TQSqlError::Type type,
+static TQSqlError tqMakeError(sqlite3 *access, const TQString &descr, TQSqlError::Type type,
int errorCode = -1)
{
return TQSqlError(descr,
@@ -191,7 +191,7 @@ bool TQSQLite3ResultPrivate::fetchNext(TQtSqlCachedResult::RowCache* row)
case SQLITE_MISUSE:
default:
// something wrong, don't get col info, but still return false
- q->setLastError(qMakeError(access, "Unable to fetch row", TQSqlError::Connection, res));
+ q->setLastError(tqMakeError(access, "Unable to fetch row", TQSqlError::Connection, res));
finalize();
q->setAt(TQSql::AfterLast);
return false;
@@ -229,7 +229,7 @@ bool TQSQLite3Result::reset (const TQString &query)
&d->stmt, 0);
if (res != SQLITE_OK) {
- setLastError(qMakeError(d->access, "Unable to execute statement", TQSqlError::Statement, res));
+ setLastError(tqMakeError(d->access, "Unable to execute statement", TQSqlError::Statement, res));
d->finalize();
return false;
}
@@ -309,7 +309,7 @@ bool TQSQLite3Driver::open(const TQString & db, const TQString &, const TQString
setOpenError(false);
return true;
} else {
- setLastError(qMakeError(d->access, "Error opening database",
+ setLastError(tqMakeError(d->access, "Error opening database",
TQSqlError::Connection));
setOpenError(true);
return false;
@@ -320,7 +320,7 @@ void TQSQLite3Driver::close()
{
if (isOpen()) {
if (sqlite3_close(d->access) != SQLITE_OK)
- setLastError(qMakeError(d->access, "Error closing database",
+ setLastError(tqMakeError(d->access, "Error closing database",
TQSqlError::Connection));
d->access = 0;
setOpen(false);
diff --git a/src/tools/tqfile.cpp b/src/tools/tqfile.cpp
index d67578929..a5f2ae9d2 100644
--- a/src/tools/tqfile.cpp
+++ b/src/tools/tqfile.cpp
@@ -57,7 +57,7 @@
// Duplicated from tqobject.h, but we cannot include tqobject.h here since
-// it causes qmake to not build on irix g++
+// it causes tqmake to not build on irix g++
#define TQT_TRANSLATE_NOOP(scope,x) (x)
const char* qt_fileerr_unknown = TQT_TRANSLATE_NOOP( "TQFile", "Unknown error" );
diff --git a/tools/assistant/book/assistant.leaf b/tools/assistant/book/assistant.leaf
index 7f884ab4f..b7a5c2c3a 100644
--- a/tools/assistant/book/assistant.leaf
+++ b/tools/assistant/book/assistant.leaf
@@ -376,7 +376,7 @@ startup page, and application icon.
When it is started without any options, \QA displays a default set of
documentation. When TQt is installed, the default documentation set in
\QA contains the TQt reference documentation as well as the tools that
-come with Qt, such as \QD and qmake.
+come with Qt, such as \QD and tqmake.
Documentation can be added or removed from \QA by
adding and removing the content files. The format of the content files are
diff --git a/tools/assistant/config.cpp b/tools/assistant/config.cpp
index 43f17b6c1..2a11ac0cd 100644
--- a/tools/assistant/config.cpp
+++ b/tools/assistant/config.cpp
@@ -334,7 +334,7 @@ TQStringList Config::docFiles() const
TQPixmap Config::docIcon( const TQString &title ) const
{
- // ### To allow qdoc generated dcf files to reference the doc icons from qmake_image_col
+ // ### To allow qdoc generated dcf files to reference the doc icons from tqmake_image_col
if (!TQFile::exists(profil->icons[title]))
return TQPixmap::fromMimeSource( TQFileInfo(profil->icons[title]).fileName() );
return TQPixmap::fromMimeSource( profil->icons[title] );
diff --git a/tools/assistant/lib/tqassistantclient.cpp b/tools/assistant/lib/tqassistantclient.cpp
index d252a4438..36f010fbe 100644
--- a/tools/assistant/lib/tqassistantclient.cpp
+++ b/tools/assistant/lib/tqassistantclient.cpp
@@ -87,7 +87,7 @@ static TQAssistantClientPrivate *data( const TQAssistantClient *client, bool cre
must link against \c libtqassistantclient.a (Unix) or \c
tqassistantclient.lib (Windows), which is built into \c INSTALL/lib
if you built the TQt tools (\c INSTALL is the directory where TQt is
- installed). If you use qmake, then you can simply add the following
+ installed). If you use tqmake, then you can simply add the following
line to your pro file:
\code
diff --git a/tools/assistant/profile.cpp b/tools/assistant/profile.cpp
index a02170de7..68b1f1d23 100644
--- a/tools/assistant/profile.cpp
+++ b/tools/assistant/profile.cpp
@@ -41,7 +41,7 @@
#define DESIGNER_TITLE "TQt Designer Manual"
#define ASSISTANT_TITLE "TQt Assistant Manual"
#define LINGUIST_TITLE "Guide to the TQt Translation Tools"
-#define QMAKE_TITLE "qmake User Guide"
+#define QMAKE_TITLE "tqmake User Guide"
Profile *Profile::createDefaultProfile( const TQString &docPath )
{
@@ -64,7 +64,7 @@ Profile *Profile::createDefaultProfile( const TQString &docPath )
profile->addDCFTitle( path + "designer.dcf", DESIGNER_TITLE );
profile->addDCFTitle( path + "assistant.dcf", ASSISTANT_TITLE );
profile->addDCFTitle( path + "linguist.dcf", LINGUIST_TITLE );
- profile->addDCFTitle( path + "qmake.dcf", QMAKE_TITLE );
+ profile->addDCFTitle( path + "tqmake.dcf", QMAKE_TITLE );
profile->addDCFIcon( QT_TITLE, "qt.png" );
profile->addDCFIcon( DESIGNER_TITLE, "designer.png" );
@@ -75,7 +75,7 @@ Profile *Profile::createDefaultProfile( const TQString &docPath )
profile->addDCFIndexPage( DESIGNER_TITLE, path + "designer-manual.html" );
profile->addDCFIndexPage( ASSISTANT_TITLE, path + "assistant.html" );
profile->addDCFIndexPage( LINGUIST_TITLE, path + "linguist-manual.html" );
- profile->addDCFIndexPage( QMAKE_TITLE, path + "qmake-manual.html" );
+ profile->addDCFIndexPage( QMAKE_TITLE, path + "tqmake-manual.html" );
profile->addDCFImageDir( QT_TITLE, "../../gif/" );
profile->addDCFImageDir( DESIGNER_TITLE, "../../gif/" );
diff --git a/tools/designer/designer/designer.pro b/tools/designer/designer/designer.pro
index da8c8cf29..40cdb734d 100644
--- a/tools/designer/designer/designer.pro
+++ b/tools/designer/designer/designer.pro
@@ -1,6 +1,6 @@
TEMPLATE = lib
-CONFIG += qt warn_on qmake_cache
+CONFIG += qt warn_on tqmake_cache
CONFIG += dll
!force_static:!win32:contains(QT_PRODUCT,qt-internal) {
CONFIG -= staticlib
diff --git a/tools/designer/editor/yyindent.cpp b/tools/designer/editor/yyindent.cpp
index f38926faf..ff6e7dbd0 100644
--- a/tools/designer/editor/yyindent.cpp
+++ b/tools/designer/editor/yyindent.cpp
@@ -72,7 +72,7 @@
#include
-/* qmake ignore TQ_OBJECT */
+/* tqmake ignore TQ_OBJECT */
/*
The indenter avoids getting stuck in almost infinite loops by
diff --git a/tools/designer/tools/tqtconv2ui/tqtconv2ui.pro b/tools/designer/tools/tqtconv2ui/tqtconv2ui.pro
index 015ad94a3..a12e4471d 100644
--- a/tools/designer/tools/tqtconv2ui/tqtconv2ui.pro
+++ b/tools/designer/tools/tqtconv2ui/tqtconv2ui.pro
@@ -1,5 +1,5 @@
######################################################################
-# Automatically generated by qmake (1.04a) Tue Oct 1 18:34:56 2002
+# Automatically generated by tqmake (1.04a) Tue Oct 1 18:34:56 2002
######################################################################
TEMPLATE = app
CONFIG -= moc
diff --git a/tools/designer/tquic/form.cpp b/tools/designer/tquic/form.cpp
index dd77d0113..205d180f6 100644
--- a/tools/designer/tquic/form.cpp
+++ b/tools/designer/tquic/form.cpp
@@ -373,7 +373,7 @@ void TQUic::createFormDecl( const TQDomElement &e )
out << exportMacro << " ";
out << bareNameOfClass << " : public " << objClass << endl << "{" << endl;
- /* qmake ignore TQ_OBJECT */
+ /* tqmake ignore TQ_OBJECT */
out << " TQ_OBJECT" << endl;
out << endl;
out << "public:" << endl;
diff --git a/tools/linguist/book/linguist-manager.leaf b/tools/linguist/book/linguist-manager.leaf
index 6c314d09d..643f71690 100644
--- a/tools/linguist/book/linguist-manager.leaf
+++ b/tools/linguist/book/linguist-manager.leaf
@@ -3,8 +3,8 @@
\index Release Manager
Two tools are provided for the release manager, \l lupdate and \l
-lrelease. These tools depend on \e qmake project files. You don't
-have to use \e qmake, though.
+lrelease. These tools depend on \e tqmake project files. You don't
+have to use \e tqmake, though.
A third tool, \c tqm2ts, can be used for converting TQt 2.x message
files to \c .ts files.
@@ -13,7 +13,7 @@ files to \c .ts files.
\index .pro Files
\index Project Files
-\index qmake!Project Files
+\index tqmake!Project Files
\l lupdate and \l lrelease depend on information in the application's
\c .pro TQt project file. There must be an entry in the \c TRANSLATIONS
diff --git a/tools/linguist/book/linguist-programmer.leaf b/tools/linguist/book/linguist-programmer.leaf
index 1e5147cf5..3227aba83 100644
--- a/tools/linguist/book/linguist-programmer.leaf
+++ b/tools/linguist/book/linguist-programmer.leaf
@@ -61,7 +61,7 @@ application at runtime.
\index .pro Files
\index Project Files
-\index qmake!Project Files
+\index tqmake!Project Files
For \l lupdate to work successfully, it must know which translation
files to produce. The files are simply listed in the application's \c
@@ -393,7 +393,7 @@ is shown when we run the application:
\index Latin
The first step is to create a project file, \c tt1.pro, that lists
-all the source files for the project. The project file can be a qmake
+all the source files for the project. The project file can be a tqmake
project file, or even an ordinary makefile. Any file that contains
\index SOURCES!in Project Files
@@ -527,7 +527,7 @@ saluto!".
\index .pro Files
\index Project Files
-\index qmake!Project Files
+\index tqmake!Project Files
\include tt2/tt2.pro
\caption tt2.pro
@@ -839,7 +839,7 @@ Version 1.0 consists of these files:
\i \c mainwindow.h contains the definition of \c MainWindow;
\i \c mainwindow.cpp contains the implementation of \c MainWindow;
\i \c main.cpp contains main();
-\i \c tt3.pro is the \e qmake project file.
+\i \c tt3.pro is the \e tqmake project file.
\i \c tt3_pt.ts is the Portuguese message file.
\endlist
diff --git a/tools/linguist/lupdate/fetchtr.cpp b/tools/linguist/lupdate/fetchtr.cpp
index 60229a97b..451916f29 100644
--- a/tools/linguist/lupdate/fetchtr.cpp
+++ b/tools/linguist/lupdate/fetchtr.cpp
@@ -45,7 +45,7 @@
#include
#include
-/* qmake ignore TQ_OBJECT */
+/* tqmake ignore TQ_OBJECT */
static const char MagicComment[] = "TRANSLATOR ";
diff --git a/tools/linguist/shared/proparser.cpp b/tools/linguist/shared/proparser.cpp
index 26866a99a..439d8c788 100644
--- a/tools/linguist/shared/proparser.cpp
+++ b/tools/linguist/shared/proparser.cpp
@@ -189,7 +189,7 @@ TQMap proFileTagMap( const TQString& text )
int i = 0;
while ( (i = callToSystem.search((*it), i)) != -1 ) {
/*
- This code is stolen from qmake's project.cpp file.
+ This code is stolen from tqmake's project.cpp file.
Ideally we would use the same parser, so we wouldn't
have this code duplication.
*/
diff --git a/tqmake/CHANGES b/tqmake/CHANGES
new file mode 100644
index 000000000..6b0d9a65c
--- /dev/null
+++ b/tqmake/CHANGES
@@ -0,0 +1,68 @@
+1.07a -
+
+ support for precompiled headers added
+
+1.06b -
+
+ support for reading and writing libtool (.la) files
+ support for reading pkgconfig (.pkg) files
+
+ PWD added as an automatic variable to mean the directory
+ the file being parsed is in (this change required that the
+ directory be set to the file being parsed as well, function
+ tests that query relative paths will need to be relative the
+ file being parsed).
+
+ persistant data cache introduced
+
+1.05a -
+
+ caching of more information (speed ups)
+ $$list() added to be used as a lambda function in tqmake
+ $$files() added to allow regular expression matching
+ $$fromfile() added to grab one single variable value from a parsed file
+ $$prompt() added to allow querying for user input from tqmake
+ include() modified to support specifying which variables to import
+ equals() test added to test for equality
+ MSVC.net generator added [partial solution files in vcsubdirs]
+
+1.04a -
+
+ subdirs supports multiple project files in a single directory.
+
+1.03a -
+
+ New function $$system() to extract the value of a shell call.
+
+1.02a -
+
+ Dependency / Mocable caching. tqmake can cache these expensive operations with tqmake_cache
+ CONFIG.
+
+ The parser has been improved to cover more error cases, as well as more forgiving
+
+ tqmake now includes a special else scope to invert the previous test
+
+ Ability to add user defined targets to UnixMakefiles.
+
+1.01a -
+
+ New system for library linking. This system allows a user several different features:
+
+ 1) libtool like library dependencies to static libraries build with tqmake
+ 2) library dependencies, when on .pro depends on another library - it will
+ automatically build that other library (unix makefiles only)
+ 3) automatic detection of configurations for Qt, if CONFIG qt is specified
+ it will find the settings for the most recent TQt itself.
+
+ Project Builder for Mac OS X is now a supported backend for tqmake.
+
+ tqmake now offers a 'make uninstall' feature, to reverse the actions of a 'make install'.
+
+ tqmake can now do recursive searches in project-file mode (-r option).
+
+1.00a -
+
+ First release, shipped with TQt 3.0.
+
+ tqmake ships with support for Unix make, MSVC (both dsp and nmake), Borland make.
diff --git a/tqmake/Makefile.unix b/tqmake/Makefile.unix
new file mode 100644
index 000000000..0c9d7ce1d
--- /dev/null
+++ b/tqmake/Makefile.unix
@@ -0,0 +1,214 @@
+#tqmake code
+OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o msvc_nmake.o \
+ mingw_make.o msvc_dsp.o msvc_vcproj.o option.o \
+ winmakefile.o projectgenerator.o metrowerks_xml.o pbuilder_pbx.o \
+ msvc_objectmodel.o meta.o qtmd5.o
+
+#qt code
+QOBJS=tqstring.o tqtextstream.o tqiodevice.o tqglobal.o tqgdict.o tqcstring.o \
+ tqdatastream.o tqgarray.o tqbuffer.o tqglist.o tqptrcollection.o tqfile.o \
+ tqfile_unix.o tqregexp.o tqgvector.o tqgcache.o tqbitarray.o tqdir.o tquuid.o \
+ tqfileinfo_unix.o tqdir_unix.o tqfileinfo.o tqdatetime.o tqstringlist.o tqmap.o \
+ tqconfig.o tqunicodetables.o tqsettings.o tqlocale.o @QMAKE_QTOBJS@
+
+#all sources, used for the depend target
+DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp qtmd5.cpp generators/makefile.cpp generators/unix/unixmake2.cpp \
+ generators/unix/unixmake.cpp generators/win32/msvc_nmake.cpp \
+ generators/win32/winmakefile.cpp generators/projectgenerator.cpp generators/mac/metrowerks_xml.cpp \
+ generators/mac/pbuilder_pbx.cpp generators/win32/msvc_objectmodel.cpp \
+ @SOURCE_PATH@/src/tools/tqstring.cpp @SOURCE_PATH@/src/tools/tqtextstream.cpp \
+ @SOURCE_PATH@/src/tools/tqiodevice.cpp @SOURCE_PATH@/src/tools/tqglobal.cpp \
+ @SOURCE_PATH@/src/tools/tqgdict.cpp @SOURCE_PATH@/src/tools/tqcstring.cpp \
+ @SOURCE_PATH@/src/tools/tqdatastream.cpp @SOURCE_PATH@/src/tools/tqgarray.cpp \
+ @SOURCE_PATH@/src/tools/tqbuffer.cpp @SOURCE_PATH@/src/tools/tqglist.cpp \
+ @SOURCE_PATH@/src/tools/tqptrcollection.cpp @SOURCE_PATH@/src/tools/tqfile.cpp \
+ @SOURCE_PATH@/src/tools/tqfile_unix.cpp @SOURCE_PATH@/src/tools/tqregexp.cpp \
+ @SOURCE_PATH@/src/tools/tqgvector.cpp @SOURCE_PATH@/src/tools/tqgcache.cpp \
+ @SOURCE_PATH@/src/tools/tqbitarray.cpp @SOURCE_PATH@/src/tools/tqdir.cpp \
+ @SOURCE_PATH@/src/tools/tquuid.cpp @SOURCE_PATH@/src/tools/tqfileinfo_unix.cpp \
+ @SOURCE_PATH@/src/tools/tqdir_unix.cpp @SOURCE_PATH@/src/tools/tqfileinfo.cpp \
+ @SOURCE_PATH@/src/tools/tqdatetime.cpp @SOURCE_PATH@/src/tools/tqstringlist.cpp \
+ @SOURCE_PATH@/src/tools/tqmap.cpp @SOURCE_PATH@/src/tools/tqconfig.cpp \
+ @SOURCE_PATH@/src/tools/tqsettings.cpp @SOURCE_PATH@/src/tools/tqurl.cpp \
+ @SOURCE_PATH@/src/tools/tqsettings_mac.cpp @SOURCE_PATH@/src/tools/tqlocale.cpp
+
+CXXFLAGS= @QMAKE_CXXFLAGS@ \
+ -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac \
+ -I@BUILD_PATH@/include/tqmake -I@BUILD_PATH@/include -I@SOURCE_PATH@/include \
+ -DTQT_NO_TEXTCODEC -DTQT_NO_UNICODETABLES -DTQT_NO_COMPONENT -DTQT_NO_STL \
+ -DTQT_NO_COMPRESS -I@QMAKESPEC@ -DHAVE_QCONFIG_CPP
+LFLAGS=@QMAKE_LFLAGS@
+
+tqmake: $(OBJS) $(QOBJS)
+ $(CXX) -o $@ $(OBJS) $(QOBJS) $(LFLAGS)
+ rm -f @BUILD_PATH@/bin/$@
+ ln -s ../tqmake/$@ @BUILD_PATH@/bin/$@
+
+install: tqmake
+ [ -d @QT_INSTALL_BINS@ ] || mkdir -p @QT_INSTALL_BINS@
+ -cp -f @BUILD_PATH@/bin/tqmake @QT_INSTALL_BINS@
+ [ -d @QT_INSTALL_DATA@ ] || mkdir -p @QT_INSTALL_DATA@
+ -cp -R -f @SOURCE_PATH@/mkspecs @QT_INSTALL_DATA@
+
+clean::
+ rm -f $(OBJS) $(QOBJS)
+
+distclean:: clean
+ rm -rf tqmake .deps
+
+depend:
+ makedepend $(CXXFLAGS) -D__MAKEDEPEND__ $(DEPEND_SRC)
+
+# don't use optimization for these
+tqtextstream.o: @SOURCE_PATH@/src/tools/tqtextstream.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqtextstream.cpp
+
+tqiodevice.o: @SOURCE_PATH@/src/tools/tqiodevice.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqiodevice.cpp
+
+tqglobal.o: @SOURCE_PATH@/src/tools/tqglobal.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqglobal.cpp
+
+tqgdict.o: @SOURCE_PATH@/src/tools/tqgdict.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgdict.cpp
+
+tqcstring.o: @SOURCE_PATH@/src/tools/tqcstring.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqcstring.cpp
+
+tqsettings.o: @SOURCE_PATH@/src/tools/tqsettings.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqsettings.cpp
+
+tqsettings_mac.o: @SOURCE_PATH@/src/tools/tqsettings_mac.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqsettings_mac.cpp
+
+tqurl.o: @SOURCE_PATH@/src/kernel/tqurl.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/kernel/tqurl.cpp
+
+tqstring.o: @SOURCE_PATH@/src/tools/tqstring.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqstring.cpp
+
+tqlocale.o: @SOURCE_PATH@/src/tools/tqlocale.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqlocale.cpp
+
+tqdatastream.o: @SOURCE_PATH@/src/tools/tqdatastream.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdatastream.cpp
+
+tqunicodetables.o: @SOURCE_PATH@/src/tools/tqunicodetables.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqunicodetables.cpp
+
+tqgarray.o: @SOURCE_PATH@/src/tools/tqgarray.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgarray.cpp
+
+tqbuffer.o: @SOURCE_PATH@/src/tools/tqbuffer.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqbuffer.cpp
+
+tqglist.o: @SOURCE_PATH@/src/tools/tqglist.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqglist.cpp
+
+tqptrcollection.o: @SOURCE_PATH@/src/tools/tqptrcollection.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqptrcollection.cpp
+
+tqfile.o: @SOURCE_PATH@/src/tools/tqfile.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfile.cpp
+
+tqfile_unix.o: @SOURCE_PATH@/src/tools/tqfile_unix.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfile_unix.cpp
+
+tqregexp.o: @SOURCE_PATH@/src/tools/tqregexp.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqregexp.cpp
+
+tqgvector.o: @SOURCE_PATH@/src/tools/tqgvector.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgvector.cpp
+
+tqgcache.o: @SOURCE_PATH@/src/tools/tqgcache.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqgcache.cpp
+
+tqbitarray.o: @SOURCE_PATH@/src/tools/tqbitarray.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqbitarray.cpp
+
+tqdir.o: @SOURCE_PATH@/src/tools/tqdir.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdir.cpp
+
+tquuid.o: @SOURCE_PATH@/src/tools/tquuid.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tquuid.cpp
+
+tqfileinfo_unix.o: @SOURCE_PATH@/src/tools/tqfileinfo_unix.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfileinfo_unix.cpp
+
+tqdir_unix.o: @SOURCE_PATH@/src/tools/tqdir_unix.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdir_unix.cpp
+
+tqfileinfo.o: @SOURCE_PATH@/src/tools/tqfileinfo.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqfileinfo.cpp
+
+tqdatetime.o: @SOURCE_PATH@/src/tools/tqdatetime.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqdatetime.cpp
+
+tqstringlist.o: @SOURCE_PATH@/src/tools/tqstringlist.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqstringlist.cpp
+
+tqmap.o: @SOURCE_PATH@/src/tools/tqmap.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @SOURCE_PATH@/src/tools/tqmap.cpp
+
+tqconfig.o: @BUILD_PATH@/src/tools/tqconfig.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) @BUILD_PATH@/src/tools/tqconfig.cpp
+
+winmakefile.o: generators/win32/winmakefile.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/winmakefile.cpp
+
+project.o: project.cpp project.h option.h
+ $(CXX) -c -o $@ $(CXXFLAGS) project.cpp
+
+property.o: property.cpp project.h option.h
+ $(CXX) -c -o $@ $(CXXFLAGS) property.cpp
+
+meta.o: meta.cpp project.h option.h
+ $(CXX) -c -o $@ $(CXXFLAGS) meta.cpp
+
+main.o: main.cpp project.h
+ $(CXX) -c -o $@ $(CXXFLAGS) main.cpp
+
+option.o: option.cpp option.h
+ $(CXX) -c -o $@ $(CXXFLAGS) option.cpp
+
+qtmd5.o: qtmd5.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) qtmd5.cpp
+
+makefile.o: generators/makefile.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/makefile.cpp
+
+unixmake.o: generators/unix/unixmake.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/unix/unixmake.cpp
+
+unixmake2.o: generators/unix/unixmake2.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/unix/unixmake2.cpp
+
+mingw_make.o: generators/win32/mingw_make.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/mingw_make.cpp
+
+msvc_objectmodel.o: generators/win32/msvc_objectmodel.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp
+
+msvc_vcproj.o: generators/win32/msvc_vcproj.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_vcproj.cpp
+
+msvc_nmake.o: generators/win32/msvc_nmake.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_nmake.cpp
+
+metrowerks_xml.o: generators/mac/metrowerks_xml.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/mac/metrowerks_xml.cpp
+
+pbuilder_pbx.o: generators/mac/pbuilder_pbx.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp
+
+msvc_dsp.o: generators/win32/msvc_dsp.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_dsp.cpp
+
+projectgenerator.o: generators/projectgenerator.cpp
+ $(CXX) -c -o $@ $(CXXFLAGS) generators/projectgenerator.cpp
+
+#default rules
+.cpp.o:
+ $(CXX) -c -o $@ $(CXXFLAGS) $<
+
+# DO NOT DELETE THIS LINE -- make depend depends on it
diff --git a/tqmake/Makefile.win32-g++ b/tqmake/Makefile.win32-g++
new file mode 100644
index 000000000..7dff21a06
--- /dev/null
+++ b/tqmake/Makefile.win32-g++
@@ -0,0 +1,197 @@
+#
+# specific stuff for mingw g++ make
+#
+CXX = g++
+CFLAGS = -c -o$@ -O \
+ -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools \
+ -I..\mkspecs\win32-g++ \
+ -DUNICODE -DTQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DTQT_NO_STL -DTQT_NO_COMPRESS
+CXXFLAGS = $(CFLAGS)
+LFLAGS =
+LIBS = -lole32 -luuid
+LINKQMAKE = g++ $(LFLAGS) -o tqmake.exe $(OBJS) $(QTOBJS) $(LIBS)
+ADDCLEAN =
+
+
+#tqmake code
+OBJS=project.o main.o makefile.o unixmake.o unixmake2.o mingw_make.o \
+ msvc_nmake.o msvc_dsp.o msvc_vcproj.o option.o winmakefile.o projectgenerator.o \
+ metrowerks_xml.o pbuilder_pbx.o msvc_objectmodel.o property.o meta.o qtmd5.o
+
+#qt code
+QTOBJS=tqstring.o tquuid.o tqtextstream.o tqiodevice.o tqglobal.o tqgdict.o tqcstring.o tqdatastream.o \
+ tqgarray.o tqbuffer.o tqglist.o tqptrcollection.o tqfile.o tqfile_win.o tqregexp.o tqgvector.o \
+ tqgcache.o tqbitarray.o tqdir.o tqfileinfo_win.o tqdir_win.o tqfileinfo.o tqdatetime.o \
+ tqstringlist.o tqmap.o tqlibrary.o tqlibrary_win.o tqconfig.o tqsettings.o tqsettings_win.o tqunicodetables.o \
+ tqlocale.o
+
+
+
+tqmake.exe: $(OBJS) $(QTOBJS)
+ $(LINKQMAKE)
+ -copy tqmake.exe ..\bin\tqmake.exe
+
+clean::
+ -del $(OBJS) $(QTOBJS) $(ADDCLEAN)
+
+distclean:: clean
+ -del tqmake
+
+.c.o:
+ $(CXX) $(CFLAGS) $<
+
+.cpp.o:
+ $(CXX) $(CXXFLAGS) $<
+
+tqconfig.o: ..\src\tools\tqconfig.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqconfig.cpp
+
+tqlibrary.o: ..\src\tools\tqlibrary.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqlibrary.cpp
+
+tqlibrary_win.o: ..\src\tools\tqlibrary_win.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqlibrary_win.cpp
+
+tqtextstream.o: ..\src\tools\tqtextstream.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqtextstream.cpp
+
+tqiodevice.o: ..\src\tools\tqiodevice.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqiodevice.cpp
+
+tqglobal.o: ..\src\tools\tqglobal.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqglobal.cpp
+
+tqgdict.o: ..\src\tools\tqgdict.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqgdict.cpp
+
+tqcstring.o: ..\src\tools\tqcstring.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqcstring.cpp
+
+tqstring.o: ..\src\tools\tqstring.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqstring.cpp
+
+tqlocale.o: ..\src\tools\tqlocale.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqlocale.cpp
+
+tquuid.o: ..\src\tools\tquuid.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tquuid.cpp
+
+tqdatastream.o: ..\src\tools\tqdatastream.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqdatastream.cpp
+
+tqgarray.o: ..\src\tools\tqgarray.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqgarray.cpp
+
+tqbuffer.o: ..\src\tools\tqbuffer.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqbuffer.cpp
+
+tqglist.o: ..\src\tools\tqglist.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqglist.cpp
+
+tqptrcollection.o: ..\src\tools\tqptrcollection.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqptrcollection.cpp
+
+tqfile.o: ..\src\tools\tqfile.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqfile.cpp
+
+tqfile_win.o: ..\src\tools\tqfile_win.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqfile_win.cpp
+
+tqtextcodec.o: ..\src\codecs\tqtextcodec.cpp
+ $(CXX) $(CXXFLAGS) ..\src\codecs\tqtextcodec.cpp
+
+tqregexp.o: ..\src\tools\tqregexp.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqregexp.cpp
+
+tqgvector.o: ..\src\tools\tqgvector.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqgvector.cpp
+
+tqgcache.o: ..\src\tools\tqgcache.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqgcache.cpp
+
+tqbitarray.o: ..\src\tools\tqbitarray.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqbitarray.cpp
+
+tqdir.o: ..\src\tools\tqdir.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqdir.cpp
+
+tqsettings.o: ..\src\tools\tqsettings.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqsettings.cpp
+
+tqsettings_win.o: ..\src\tools\tqsettings_win.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqsettings_win.cpp
+
+tqfileinfo_win.o: ..\src\tools\tqfileinfo_win.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqfileinfo_win.cpp
+
+tqdir_win.o: ..\src\tools\tqdir_win.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqdir_win.cpp
+
+tqfileinfo.o: ..\src\tools\tqfileinfo.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqfileinfo.cpp
+
+tqdatetime.o: ..\src\tools\tqdatetime.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqdatetime.cpp
+
+tqstringlist.o: ..\src\tools\tqstringlist.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqstringlist.cpp
+
+tqmap.o: ..\src\tools\tqmap.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqmap.cpp
+
+tqunicodetables.o: ..\src\tools\tqunicodetables.cpp
+ $(CXX) $(CXXFLAGS) ..\src\tools\tqunicodetables.cpp
+
+makefile.o: generators\makefile.cpp
+ $(CXX) $(CXXFLAGS) generators\makefile.cpp
+
+unixmake.o: generators\unix\unixmake.cpp
+ $(CXX) $(CXXFLAGS) generators\unix\unixmake.cpp
+
+unixmake2.o: generators\unix\unixmake2.cpp
+ $(CXX) $(CXXFLAGS) generators\unix\unixmake2.cpp
+
+winmakefile.o: generators/win32/winmakefile.cpp
+ $(CXX) $(CXXFLAGS) generators/win32/winmakefile.cpp
+
+mingw_make.o: generators/win32/mingw_make.cpp
+ $(CXX) $(CXXFLAGS) generators/win32/mingw_make.cpp
+
+msvc_nmake.o: generators/win32/msvc_nmake.cpp
+ $(CXX) $(CXXFLAGS) generators/win32/msvc_nmake.cpp
+
+msvc_dsp.o: generators/win32/msvc_dsp.cpp
+ $(CXX) $(CXXFLAGS) generators/win32/msvc_dsp.cpp
+
+msvc_vcproj.o: generators/win32/msvc_vcproj.cpp
+ $(CXX) $(CXXFLAGS) generators/win32/msvc_vcproj.cpp
+
+msvc_objectmodel.o: generators/win32/msvc_objectmodel.cpp
+ $(CXX) $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp
+
+qtmd5.o: qtmd5.cpp
+ $(CXX) $(CXXFLAGS) qtmd5.cpp
+
+project.o: project.cpp project.h option.h
+ $(CXX) $(CXXFLAGS) project.cpp
+
+meta.o: meta.cpp project.h option.h
+ $(CXX) $(CXXFLAGS) meta.cpp
+
+property.o: property.cpp property.h option.h
+ $(CXX) $(CXXFLAGS) property.cpp
+
+main.o: main.cpp project.h
+ $(CXX) $(CXXFLAGS) main.cpp
+
+option.o: option.cpp option.h
+ $(CXX) $(CXXFLAGS) option.cpp
+
+projectgenerator.o: generators/projectgenerator.cpp
+ $(CXX) $(CXXFLAGS) generators/projectgenerator.cpp
+
+metrowerks_xml.o: generators/mac/metrowerks_xml.cpp
+ $(CXX) $(CXXFLAGS) generators/mac/metrowerks_xml.cpp
+
+pbuilder_pbx.o: generators/mac/pbuilder_pbx.cpp
+ $(CXX) $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp
diff --git a/tqmake/book/tqmake-advanced.leaf b/tqmake/book/tqmake-advanced.leaf
new file mode 100644
index 000000000..97e238ad7
--- /dev/null
+++ b/tqmake/book/tqmake-advanced.leaf
@@ -0,0 +1,401 @@
+\chapter tqmake's Advanced Concepts
+
+\section1 tqmake's Advanced Concepts
+
+The \e tqmake project files we've seen up to now have been very simple,
+just a list of \e{name = value} and \e{name += value} lines. \e tqmake
+provides a lot more power, for example you can use a single project
+file to produce makefiles for multiple platforms.
+
+\section1 Operators
+
+So far, you have seen the \e = operator and \e += operator being used
+in a project file. There are more operators available for use; but
+some of these should be used carefully as they may change more than
+you expect them to.
+
+\section2 The '=' operator
+
+This operator simply assigns a value to a variable, it is used like
+this:
+
+\code
+ TARGET = myapp
+\endcode
+
+This sets the TARGET variable to \e myapp. This will remove any
+previously set TARGET.
+
+\section2 The '+=' operator
+
+This operator appends a value to the list of values in a variable. It
+is used like this:
+
+\code
+ DEFINES += QT_DLL
+\endcode
+
+This appends QT_DLL to the list of pre-processor defines to be put in the
+makefile.
+
+\section2 The '-=' operator
+
+This operator removes a value from the list of values in a variable.
+It is used like this:
+
+\code
+ DEFINES -= QT_DLL
+\endcode
+
+This removes QT_DLL from the list of pre-processor defines to be put
+in the makefile.
+
+\section2 The '*=' operator
+
+This operator only adds a value to the list of values in a variable if
+it doesn't already exist. It is used like this:
+
+\code
+ DEFINES *= QT_DLL
+\endcode
+
+QT_DLL will only be added to the list of pre-processor defines if it
+is not already defined.
+
+\section2 The '~=' operator
+
+This operator replaces any values that match the regexp with the
+specified value. It is used like this:
+
+\code
+ DEFINES ~= s/QT_[DT].+/QT
+\endcode
+
+This removes any values in the list that start with QT_D or QT_T with
+QT.
+
+\section1 Scopes
+
+A scope are similar to 'if' statements, if a certain condition is
+true, the settings inside the scope are processed. A scope is written
+like this:
+
+\code
+ win32 {
+ DEFINES += QT_DLL
+ }
+\endcode
+
+The above code will add the QT_DLL define to the makefile if \e tqmake
+is used on a Windows platform. If \e tqmake is used on a different
+platform than Windows, the define will be ignored. You may also perform
+single line conditionals/assignments with tqmake like this:
+
+\code
+ win32:DEFINES += QT_DLL
+\endcode
+
+For example, suppose we want to process something on all platforms
+\e except for Windows. We can achieve this by negating the scope like
+this:
+
+\code
+ !win32 {
+ DEFINES += QT_DLL
+ }
+\endcode
+
+Any entry on the CONFIG line is also a scope. For example, if you
+write this:
+\code
+ CONFIG += warn_on
+\endcode
+you will have a scope called 'warn_on'. This makes it easy to change
+the configuration for a project without losing all the custom settings
+that might be needed for a specific configuration. Since it is
+possible to put your own values on the CONFIG line, this provides you
+with a very powerful configuration tool for your makefiles. For
+example:
+
+\code
+ CONFIG += qt warn_on debug
+ debug {
+ TARGET = myappdebug
+ }
+ release {
+ TARGET = myapp
+ }
+\endcode
+
+In the above code, two scopes are created which depend on what
+is put on the CONFIG line. In the example, \e debug is on the config
+line, so the TARGET variable is set to \e myappdebug. If \e release
+was on the config line, then the TARGET variable would be set to \e
+myapp.
+
+It is also possible to check for two things before processing some
+settings. For instance, if you want to check if the platform is
+Windows and that the thread configuration is set, you would write
+this:
+
+\code
+ win32 {
+ thread {
+ DEFINES += TQT_THREAD_SUPPORT
+ }
+ }
+\endcode
+
+To save writing many nested scopes, you can nest scopes using a colon
+like this:
+
+\code
+ win32:thread {
+ DEFINES += TQT_THREAD_SUPPORT
+ }
+\endcode
+
+Once a test has been performed you may also do else/elseif operations. With
+this you may easily write complicated tests. This can be done with the
+special 'else' scope, it can be combined with other scopes (separated by
+colons as above) for example:
+
+\code
+ win32:thread {
+ DEFINES += TQT_THREAD_SUPPORT
+ } else:debug {
+ DEFINES += QT_NOTHREAD_DEBUG
+ } else {
+ message("Unknown configuration")
+ }
+\endcode
+
+\section1 Variables
+
+The variables that we have encountered so far are system variables,
+such as \e DEFINES, \e SOURCES and \e HEADERS. It is possible for you
+to create your own variables so that you use them in scopes. It's
+easy to create your own variable; just name it and assign something to
+it. For example:
+
+\code
+ MY_VARIABLE = value
+\endcode
+
+There are no restricitions on what you do to your own variables, as \e
+tqmake will just ignore them unless it needs to look at them for a
+scope.
+
+You can also assign the value of a current variable to another
+variable by prefixing $$ to the variable name. For example:
+
+\code
+ MY_DEFINES = $$DEFINES
+\endcode
+
+Now the MY_DEFINES variable contains what is in the DEFINES variable at
+this point in the project file. This is also equivalent to:
+
+\code
+ MY_DEFINES = $${DEFINES}
+\endcode
+
+The second notation allows you to adjoin the variable expansion to another
+value without separating by space. \e tqmake will allow a variable to
+contain anything (including $(VALUE), which will be placed directly into
+the Makefile, and allow it to expand as appropriate, usually an environment
+variable). However, if you require an environment variable to be replaced
+immediately then you may use the $$() notation. For example:
+
+\code
+ MY_DEFINES = $$(ENV_DEFINES)
+\endcode
+
+This will set MY_DEFINES to the value of the evironment variable
+ENV_DEFINES as it parses the .pro file. Additionally you may call built-in
+functions in variable replacing. These functions (not to be confused with
+Test Functions as enumerated in the next section) are listed below:
+
+\section2 join( variablename, glue, before, after )
+
+This will join the value of \e variablename with glue. If this value is
+non-empty it will prefix the value with \e before and suffix it with \e
+after. \e variablename is the only required field, the others will default
+to empty strings. If you need to encode spaces in \e glue, \e before, or \e
+after you must quote them.
+
+\section2 prompt( question )
+
+This will display \e question, and read from stdin as a return value.
+
+\section2 member( variablename, position )
+
+This will place the value in \e variablename in position \e position of the
+list. If the value of \e variablename is not long this will return an empty
+string. \e variablename is the only required field, if not specified
+position will default to the first value in the list (0).
+
+\section2 find( variablename, substr )
+
+This will place all the values in \e variablename that match \e substr. \e
+substr may be a regular expression as well, and will be matched
+accordingly.
+
+\code
+ MY_VAR = one two three four
+ MY_VAR2 = $$join(MY_VAR, " -L", -L) -Lfive
+ MY_VAR3 = $$member(MY_VAR, 2) $$find(MY_VAR, t.*)
+\endcode
+
+MY_VAR2 will contain '-Lone -Ltwo -Lthree -Lfour -Lfive', and MYVAR3 will
+contains 'three two three'.
+
+\section2 system( program_and_args )
+
+This will return the stdout/stderr of the program executed, and parse it as
+normally expected. You can use this to interrogate information about the
+platform for example.
+
+\code
+ UNAME = $$system(uname -s)
+ contains( UNAME, [lL]inux ):message( This looks like Linux ($$UNAME) to me )
+\endcode
+
+\section1 Test Functions
+
+\e tqmake provides built-in functions that perform simple, yet powerful
+tests. These tests may be used in place of scopes (as described above), in
+some cases it is more usefull to use the test function by itself ignoring
+its test value.
+
+\section2 contains( variablename, value )
+
+If \e value is in the list of values stored in the variable called \e
+variablename, then the settings inside the scope will be processed.
+For example:
+
+\code
+ contains( CONFIG, thread ) {
+ DEFINES += TQT_THREAD_SUPPORT
+ }
+\endcode
+
+If \e thread is in the list of values for the \e CONFIG variable, then
+TQT_THREAD_SUPPORT will be added to the list of values in the \e
+DEFINES variable.
+
+\section2 count( variablename, number )
+
+If \e number matches the number of values stored in the variable
+called \e variablename, then the settings inside the scope will be
+processed. For example:
+
+\code
+ count( DEFINES, 5 ) {
+ CONFIG += debug
+ }
+\endcode
+
+\section2 error( string )
+
+This function outputs the string given and then makes \e tqmake exit.
+For example:
+
+\code
+ error( "An error has occured" )
+\endcode
+
+The text "An error has occured" will be displayed on the console and
+\e tqmake will exit.
+
+\section2 exists( filename )
+
+If the specified file exists, then the settings inside the scope will
+be processed. For example:
+
+\code
+ exists( /local/qt/tqmake/main.cpp ) {
+ SOURCES += main.cpp
+ }
+\endcode
+
+If \e /local/qt/tqmake/main.cpp exists then main.cpp is added to the
+list of source files.
+
+Note that "/" can be used as a directory separator regardless of the
+platform.
+
+
+\section2 equals( variable, value )
+
+If the specified variable is equal to the value passed the scope will
+be processed. For example:
+
+\code
+ NUMBERS = 1 2 3
+ equals( NUMBERS, 3 4 5 ) {
+ message("The numbers are equal")
+ }
+\endcode
+
+The message will not be displayed because "1 2 3" does not equal "1 2
+3". As with all functions you can pass an expanded variable as the
+value argument (ie, $$NUMBERS).
+
+\section2 include( filename )
+
+The contents of filename are included at this point in the project
+file, so any settings in the specified file will be processed. An
+example of this is:
+
+\code
+ include( myotherapp.pro )
+\endcode
+
+Any settings in the \e myotherapp.pro project file are now processed.
+
+\section2 isEmpty( variablename )
+
+This is the equivalent of using count( variablename, 0 ). If the
+variable called \e variablename has no elements, then the settings
+inside the scope will be processed. An example of this is:
+
+\code
+ isEmpty( CONFIG ) {
+ CONFIG += qt warn_on debug
+ }
+\endcode
+
+\section2 message( string )
+
+This function simply outputs a message on the console.
+
+\code
+ message( "This is a message" )
+\endcode
+
+The text "This is a message" is output to the console and
+processing of the project file carries on.
+
+\section2 system( command )
+
+The specified command is performed and if it returns an exit code of
+1, the settings inside the scope are processed. For example:
+
+\code
+ system( ls /bin ) {
+ SOURCES += bin/main.cpp
+ HEADERS += bin/main.h
+ }
+\endcode
+
+So if the command \e {ls /bin} returns 1 then \e bin/main.cpp is added
+to the list of sources and \e bin/main.h is added to the list of
+headers.
+
+\section2 infile( filename, var, val )
+
+This function will succeed if the file \e filename (when parsed
+by tqmake itself) contains the variable \e var with a value of
+\e val. You may also not pass in a third argument (\e val) and the
+function will only test if \e var has been assigned to in the file.
diff --git a/tqmake/book/tqmake-commandreference.leaf b/tqmake/book/tqmake-commandreference.leaf
new file mode 100644
index 000000000..a14039ec1
--- /dev/null
+++ b/tqmake/book/tqmake-commandreference.leaf
@@ -0,0 +1,2132 @@
+\chapter tqmake Command Reference
+
+\section1 tqmake Command Reference
+
+\list
+\i \link #About About This Reference \endlink
+\i \link #Commands Command Line Options \endlink
+\i \link #SystemVariables System Variables \endlink
+\i \link #Functions Functions \endlink
+\i \link #Properties Properties \endlink
+\i \link #Environment Environment Variables and Configuration \endlink
+\i \link #Extensions File Extensions \endlink
+\i \link #Customizing Customizing Makefile Output \endlink
+\endlist
+
+
+\target About
+\section1 About This Reference
+
+This reference is a detailed index of all command line options,
+configurations and internal variables used by the cross-platform
+makefile generation utility \e tqmake.
+
+In addition to the variables and functions described in the following
+sections, \e tqmake project files may also include comments.
+Comments begin with the '#' symbol and run to the end of the line.
+
+\target Commands
+\section1 Command Line Options
+
+\section2 Syntax
+
+\code
+tqmake [options] files
+\endcode
+
+\section2 Options
+
+The following options can be specified on the command line to \e tqmake:
+
+\list
+\i \c -o file \BR
+ \e tqmake output will be directed to \e file. if this argument
+ is not specified, then \e tqmake will try to guess a suitable name. If '-' is
+ specified, output is directed to stdout.
+\i \c -unix \BR
+ \e tqmake will run in unix mode. In this mode, Unix file
+ naming and path conventions will be used, additionally testing for unix
+ (as a scope) will succeed. This is the default mode on all Unices.
+\i \c -macx \BR
+ \e tqmake will run in Mac OS X mode. In this mode, Unix file
+ naming and path conventions will be used, additionally testing for macx
+ (as a scope) will succeed. This is the default mode on Mac OS X.
+\i \c -win32 \BR
+ \e tqmake will run in win32 mode. In this mode, Windows file naming and path
+ conventions will be used, additionally testing for win32 (as a scope) will succeed.
+ This is the default mode on Windows.
+\i \c -d \BR
+ \e tqmake will output (hopefully) useful debugging information.
+\i \c -t tmpl \BR
+ \e tqmake will override any set TEMPLATE variables with tmpl, but only
+ \e after the .pro file has been processed.
+\i \c -tp prefix \BR
+ \e tqmake will add the prefix to the TEMPLATE variable.
+\i \c -help \BR
+ \e tqmake will go over these features and give some useful help.
+\endlist
+
+There are also warning options that can help to find problems in your
+project file:
+
+\list
+\i \c -Wall \BR
+ With this \e tqmake will turn on all known warnings.
+\i \c -Wnone \BR
+ No warning information will be generated by \e tqmake.
+\i \c -Wparser \BR
+ \e tqmake will only generate parser warnings, this will alert
+ you to common pitfalls, and potential problems in the parsing of your .pro
+ files.
+\i \c -Wlogic \BR
+ Again \e tqmake will warn of common pitfalls, and potential problems. This can
+ include (but not limited to) checking if a file is placed into a list of files
+ multiple times, if a file cannot be found, etc.
+\endlist
+
+\e tqmake supports two different modes of operation. The first mode,
+which is the default is makefile generation. In this mode, \e tqmake
+will take a .pro file and turn it into a makefile. Creating makefiles
+is covered by this reference guide, there is another mode which
+generates .pro files.
+
+To toggle between these modes you must specify in the first argument
+what mode you want to use. If no mode is specified, \e tqmake will
+assume you want makefile mode. The available modes are:
+
+\list
+\i \c -makefile \BR
+ \e tqmake output will be a makefile (\link #MakefileMode Makefile mode \endlink).
+\i \c -project \BR
+ \e tqmake output will be a project file (\link #ProjectfileMode Project file mode \endlink).
+\endlist
+
+\target MakefileMode
+\section3 Makefile Mode
+
+In Makefile mode \e tqmake will generate a makefile. Additionally you may
+supply the following arguments in this mode:
+
+\list
+\i \c -after \BR
+ \e tqmake will process assignments given on the commandline after
+ the specified files.
+\i \c -nocache \BR
+ \e tqmake will ignore the .tqmake.cache file.
+\i \c -nodepend \BR
+ \e tqmake will not generate any dependency information.
+\i \c -cache file \BR
+ \e tqmake will use \e file as the cache file, ignoring any other .tqmake.cache file found
+\i \c -spec spec \BR
+ \e tqmake will use \e spec as a path to platform-compiler information and QMAKESPEC will be ignored.
+\endlist
+
+The \c files argument can be a list of one or more project files, separated
+by spaces. You may also pass tqmake assignments on the command line here and
+they will be processed before all files specified, for example:
+
+tqmake -makefile -unix -o Makefile "CONFIG+=test" test.pro
+
+If however you are certain you want your variables processed after the
+the files specified, then you may pass the -after argument. When this
+is specified all assignments on the commandline after the -after
+option will be postponed until after the specified files are parsed.
+
+This will generate a Makefile, from test.pro with Unix pathnames. However
+many of these arguments aren't necessary as they are the default. Therefore
+the line can be simplified on Unix to:
+
+tqmake "CONFIG+=test" test.pro
+
+
+\target ProjectfileMode
+\section3 Projectfile Mode
+
+In Projectfile mode \e tqmake will generate a project file. Additionally, you may
+supply the following arguments in this mode:
+
+\list
+\i \c -r \BR
+ \e tqmake will look through supplied directories recursively
+\i \c -nopwd \BR
+ \e tqmake will not look in your current working directory for
+ source code and only use the specified \c files
+\endlist
+
+The \c files argument can be a list of files or directories. If a
+directory is specified, then it will be included in the \link
+#DEPENDPATH DEPENDPATH \endlink variable and relevant code from there
+will be included in the generated project file, if a file is given it
+will go into the correct variable depending on extension (i.e. .ui
+files go into FORMS, .cpp files go into SOURCES, etc). Here too you
+may pass assignments on the commandline, when doing so these
+assignments will be placed last in the generated .pro file.
+
+\target SystemVariables
+\section1 System Variables
+
+\list
+\i \link #FrequentlyUsedSystemVariables Frequently Used System Variables \endlink
+\i \link #RarelyUsedSystemVariables Rarely Used System Variables \endlink
+\endlist
+
+
+\target FrequentlyUsedSystemVariables
+\section2 Frequently Used System Variables
+
+The following variables are recognized by \e tqmake and are used
+most frequently when creating project files.
+
+
+\target CONFIG
+\section3 CONFIG
+
+ The \c CONFIG variable specifies project configuration and
+compiler options. The values will be recognized internally by
+\e tqmake and have special meaning. They are as follows.
+
+These \c CONFIG values control compilation flags:
+
+\list
+\i release - Compile with optimization enabled, ignored if
+ "debug" is specified
+\i debug - Compile with debug options enabled
+\i warn_on - The compiler should emit more warnings than normally, ignored if
+ "warn_off" is specified
+\i warn_off - The compiler should only emit severe warnings.
+\endlist
+
+These options define the application/library type:
+
+\list
+\i qt - The target is a TQt application/library and requires the TQt header
+ files/library. The proper include and library paths for the Qt
+ library will automatically be added to the project.
+\i opengl - The target requires the OpenGL (or Mesa)
+ headers/libraries. The proper include and library paths for
+ these libraries will automatically be added to the project.
+\i thread - The target is a multi-threaded application or library. The
+ proper defines and compiler flags will automatically be added to
+ the project.
+\i x11 - The target is a X11 application or library. The proper
+ include paths and libraries will automatically be added to the
+ project.
+\i windows - The target is a Win32 window application (app only). The
+ proper include paths,compiler flags and libraries will
+ automatically be added to the project.
+\i console - The target is a Win32 console application (app only). The
+ proper include paths, compiler flags and libraries will
+ automatically be added to the
+ project.
+\i dll - The target is a shared object/DLL.The proper
+ include paths, compiler flags and libraries will automatically be
+ added to the project.
+\i staticlib - The target is a static library (lib only). The proper
+ compiler flags will automatically be added to the project.
+\i plugin - The target is a plugin (lib only). This enables dll as well.
+\endlist
+
+These options are used to set the compiler flags:
+
+\list
+\i exceptions - Exception support is enabled
+\i rtti - RTTI support is enabled
+\i stl - STL support is enabled
+\endlist
+
+These options define specific things depending on the platform and/or template:
+
+\list
+\i flat - When using the vcapp template this will put all the source files into the source group and
+ the header files into the header group regardless of what directory they reside in. Turning this
+ option off will group the files within the source/header group depending on the directory they
+ reside. This is turned on by default.
+\endlist
+
+The \c CONFIG variable will also be checked when resolving
+scopes. You may assign anything to this variable.
+
+For example:
+
+\code
+CONFIG += qt console newstuff
+...
+newstuff {
+ SOURCES += new.cpp
+ HEADERS += new.h
+}
+\endcode
+
+
+\target DEFINES
+\section3 DEFINES
+
+\e tqmake adds the values of this variable as compiler C
+preprocessor macros (-D option).
+
+For example:
+
+\code
+DEFINES += USE_MY_STUFF QT_DLL
+\endcode
+
+
+\target DEF_FILE
+\section3 DEF_FILE
+
+\e {This is only used on Windows when using the 'app' template}.
+
+Specifies a .def file to be included in the project.
+
+
+\target DESTDIR
+\section3 DESTDIR
+
+Specifies where to put the \link #TARGET target \endlink file.
+
+For example:
+
+\code
+ DESTDIR = ../../lib
+\endcode
+
+\target DLLDESTDIR
+\section3 DLLDESTDIR
+
+Specifies where to copy the \link #TARGET target \endlink dll.
+
+\target HEADERS
+\section3 HEADERS
+
+Defines the header files for the project.
+
+\e tqmake will generate dependency information (unless -nodepend
+is specified on the \link #Commands command line \endlink) for the
+specified headers. \e tqmake will also automatically detect if
+\e tqmoc is required by the classes in these headers, and add the
+appropriate dependencies and files to the project for generating and
+linking the moc files.
+
+For example:
+
+\code
+HEADERS = myclass.h \
+ login.h \
+ mainwindow.h
+\endcode
+
+See also \link #SOURCES SOURCES \endlink.
+
+
+\target INCLUDEPATH
+\section3 INCLUDEPATH
+
+This variable specifies the #include directories which should be
+searched when compiling the project. Use ';' or a space as the
+directory separator.
+
+For example:
+
+\code
+ INCLUDEPATH = c:\msdev\include d:\stl\include
+\endcode
+
+
+\target FORMS
+\section3 FORMS
+
+This variable specifies the .ui files (see \link
+designer-manual.book TQt Designer \endlink) to be processed through \e tquic
+before compiling. All dependencies, headers and source files required
+to build these .ui files will automatically be added to the project.
+
+For example:
+
+\code
+FORMS = mydialog.ui \
+ mywidget.ui \
+ myconfig.ui
+\endcode
+
+Note that forms should not be specified using the \c += operator because
+this syntax is not fully supported by \QD.
+
+
+\target LEXSOURCES
+\section3 LEXSOURCES
+
+This variable contains a list of lex source files. All
+dependencies, headers and source files will automatically be added to
+the project for building these lex files.
+
+For example:
+
+\code
+LEXSOURCES = lexer.l
+\endcode
+
+
+\target LIBS
+\section3 LIBS
+
+This variable contains a list of libraries to be linked into the project.
+If you are more comfortable with the Unix convension of -L/-l flags you are
+free to use them in a cross-platform manner and tqmake will do the correct
+thing with these libraries on Windows (namely this means passing the full
+path of the library to the linker). The only limitation to this is the
+library must exist, for tqmake to find which directory a -l lib lives in.
+
+For example:
+
+\code
+unix:LIBS += -lmath -L/usr/local/lib
+win32:LIBS += c:\mylibs\math.lib
+\endcode
+
+
+\target MOC_DIR
+\section3 MOC_DIR
+
+This variable specifies the directory where all intermediate moc
+files should be placed.
+
+For example:
+
+\code
+unix:MOC_DIR = ../myproject/tmp
+win32:MOC_DIR = c:\myproject\tmp
+\endcode
+
+
+\target OBJECTS_DIR
+\section3 OBJECTS_DIR
+
+This variable specifies the directory where all intermediate
+objects should be placed.
+
+For example:
+
+\code
+unix:OBJECTS_DIR = ../myproject/tmp
+win32:OBJECTS__DIR = c:\myproject\tmp
+\endcode
+
+
+\target UI_DIR
+\section3 UI_DIR
+
+This variable specifies the directory where all intermediate files from tquic
+should be placed. This variable overrides both UI_SOURCES_DIR and
+UI_HEADERS_DIR.
+
+For example:
+
+\code
+unix:UI_DIR = ../myproject/ui
+win32:UI_DIR = c:\myproject\ui
+\endcode
+
+\target UI_HEADERS_DIR
+\section3 UI_HEADERS_DIR
+
+This variable specifies the directory where all declaration files (as
+generated by tquic) should be placed.
+
+For example:
+
+\code
+unix:UI_HEADERS_DIR = ../myproject/ui/include
+win32:UI_HEADERS_DIR = c:\myproject\ui\include
+\endcode
+
+\target UI_SOURCES_DIR
+\section3 UI_SOURCES_DIR
+
+This variable specifies the directory where all implementation files (as generated
+by tquic) should be placed.
+
+For example:
+
+\code
+unix:UI_SOURCES_DIR = ../myproject/ui/src
+win32:UI_SOURCES_DIR = c:\myproject\ui\src
+\endcode
+
+
+\target REQUIRES
+\section3 REQUIRES
+
+This is a special variable processed by \e tqmake. If the
+contents of this variable do not appear in CONFIG by the time this
+variable is assigned, then a minimal makefile will be generated that
+states what dependencies (the values assigned to REQUIRES) are
+missing.
+
+This is mainly used in Qt's build system for building the examples.
+
+\target SOURCES
+\section3 SOURCES
+
+This variable contains the name of all source files in the project.
+
+For example:
+
+\code
+SOURCES = myclass.cpp \
+ login.cpp \
+ mainwindow.cpp
+
+\endcode
+
+See also \link #HEADERS HEADERS \endlink
+
+
+\section3 SUBDIRS
+
+This variable, when used with the 'subdirs'
+\link #TEMPLATE TEMPLATE \endlink contains the names of all subdirectories
+to look for a project file.
+
+For example:
+
+\code
+SUBDIRS = kernel \
+ tools
+\endcode
+
+
+\target TARGET
+\section3 TARGET
+
+This specifies the name of the target file.
+
+For example:
+
+\code
+TEMPLATE = app
+TARGET = myapp
+SOURCES = main.cpp
+\endcode
+
+The project file above would produce an executable named 'myapp' on
+unix and 'myapp.exe' on windows.
+
+
+
+\target TEMPLATE
+\section3 TEMPLATE
+
+This variable contains the name of the template to use when
+generating the project. The allowed values are:
+
+\list
+\i app - Creates a makefile for building applications (the default)
+\i lib - Creates a makefile for building libraries
+\i subdirs - Creates a makefile for building targets in subdirectories
+\i vcapp - \e {win32 only} Creates an application project file for
+Visual Studio
+\i vclib - \e {win32 only} Creates a library project file for Visual
+Studio
+
+\endlist
+
+For example:
+
+\code
+TEMPLATE = lib
+SOURCES = main.cpp
+TARGET = mylib
+\endcode
+
+The template can be overridden by specifying a new template type with the
+\c -t command line option. This overrides the template type \e after the .pro
+file has been processed. With .pro files that use the template type to
+determine how the project is built, it is necessary to declare TEMPLATE on
+the command line rather than use the \c -t option.
+
+
+
+\section3 VERSION
+
+This variable contains the version number of the library if the
+'lib' \link #TEMPLATE TEMPLATE \endlink is specified.
+
+For example:
+
+\code
+VERSION = 1.2.3
+\endcode
+
+\section3 DISTFILES
+
+This variable contains a list of files to be included in the dist
+target. This feature is supported by UnixMake specs only.
+
+For example:
+
+\code
+DISTFILES += ../program.txt
+\endcode
+
+
+\target YACCSOURCES
+\section3 YACCSOURCES
+
+This variable contains a list of yacc source files to be included
+in the project. All dependencies, headers and source files will
+automatically be included in the project.
+
+For example:
+
+\code
+YACCSOURCES = tqmoc.y
+\endcode
+
+
+
+\target RarelyUsedSystemVariables
+\section2 Rarely Used System Variables
+
+The following variables are also recognized by \e tqmake but are
+either internal or very rarely used.
+
+
+
+\target DESTDIR_TARGET
+\section3 DESTDIR_TARGET
+
+This variable is set internally by \e tqmake, which is basically the DESTDIR variable with
+the TARGET variable appened at the end. The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+\target DSP_TEMPLATE
+\section3 DSP_TEMPLATE
+
+This variable is set internally by \e tqmake, which specifies where the dsp template file for
+basing generated dsp files is stored. The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+\target LEXIMPLS
+\section3 LEXIMPLS
+
+This variable contains a list of lex implementation files. The value
+of this variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely
+needs to be modified.
+
+
+
+\target LEXOBJECTS
+\section3 LEXOBJECTS
+
+This variable contains the names of intermediate lex object
+files.The value of this variable is typically handled by
+\e tqmake and rarely needs to be modified.
+
+
+\target LITERAL_HASH
+\section3 LITERAL_HASH
+
+This variable is used whenever a literal hash character (\c{#}) is needed in
+a variable declaration, perhaps as part of a file name or in a string passed
+to some external application.
+
+For example:
+
+\code
+# To include a literal hash character, use the $$LITERAL_HASH variable:
+urlPieces = http://doc.trolltech.com/3.3/tqmake-manual-8.html LITERAL_HASH
+message($$join(urlPieces, $$LITERAL_HASH))
+\endcode
+
+By using \c LITERAL_HASH in this way, the \c # character can be used
+to construct a URL for the \c message() function to print to the console.
+
+
+\target MAKEFILE
+\section3 MAKEFILE
+
+This variable specifies the name of the makefile which
+\e tqmake should use when outputting the dependency information
+for building a project. The value of this variable is typically
+handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\target MAKEFILE_GENERATOR
+\section3 MAKEFILE_GENERATOR
+
+This variable contains the name of the makefile generator to use
+when generating a makefile. The value of this variable is typically
+handled internally by \e tqmake and rarely needs to be modified.
+
+
+\target OBJECTS
+\section3 OBJECTS
+
+This variable is generated from the \link #SOURCES SOURCES
+\endlink variable. The extension of each source file will have been
+replaced by .o (Unix) or .obj (Win32). The value of this variable is
+typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and
+rarely needs to be modified.
+
+\target OBJMOC
+\section3 OBJMOC
+
+This variable is set by \e tqmake if files can be found that
+contain the TQ_OBJECT macro. \c OBJMOC contains the
+name of all intermediate moc object files. The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+\target PRECOMPILED_HEADER
+\section3 PRECOMPILED_HEADER
+
+This variable indicates the header file for creating a precompiled
+header file, to increase the compilation speed of a project.
+Precompiled headers are currently only supported on some platforms
+(Windows - all MSVC project types, Mac OS X - Xcode, Makefile,
+UNIX - gcc 3.3 and up).
+
+On other platforms, this variable has different meaning, as noted
+below.
+
+This variable contains a list of header files that require some
+sort of pre-compilation step (such as with tqmoc). The value of this
+variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+\target QMAKE
+\section3 QMAKE
+
+This variable contains the name of the \e tqmake program
+itself and is placed in generated makefiles. The value of this
+variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+
+\target QMAKESPEC_systemvariable
+\section3 QMAKESPEC
+
+This variable contains the name of the \e tqmake
+configuration to use when generating makefiles. The value of this
+variable is typically handled by \e tqmake and rarely needs to be modified.
+Use the \link #QMAKESPEC QMAKESPEC \endlink environment variable instead.
+
+
+
+
+\target QMAKE_APP_FLAG
+\section3 QMAKE_APP_FLAG
+
+This variable is empty unless the 'app'
+\link #TEMPLATE TEMPLATE \endlink is specified. The value of this
+variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified. Use the following instead:
+
+\code
+app {
+ #conditional code for 'app' template here
+}
+\endcode
+
+
+
+
+\target QMAKE_APP_OR_DLL
+\section3 QMAKE_APP_OR_DLL
+
+This variable is empty unless the 'app' or 'dll'
+\link #TEMPLATE TEMPLATE \endlink is specified. The value of this
+variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+
+\target QMAKE_AR_CMD
+\section3 QMAKE_AR_CMD
+
+\e {This is used on Unix platforms only}
+
+This variable contains the command for invoking the program which
+creates, modifies and extracts archives. The value of this variable is
+typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink
+and rarely needs to be modified.
+
+
+
+\target QMAKE_CFLAGS_DEBUG
+\section3 QMAKE_CFLAGS_DEBUG
+
+This variable contains the flags for the C compiler in debug mode.The value of this variable is
+typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink
+and rarely needs to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_MT
+\section3 QMAKE_CFLAGS_MT
+
+This variable contains the compiler flags for creating a
+multi-threaded application or when the version of TQt that you link
+against is a multi-threaded statically linked library. The value of
+this variable is typically handled by \e tqmake or
+\link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_MT_DBG
+\section3 QMAKE_CFLAGS_MT_DBG
+
+This variable contains the compiler flags for creating a debuggable
+multi-threaded application or when the version of TQt that you link
+against is a debuggable multi-threaded statically linked library. The
+value of this variable is typically handled by \e tqmake or
+\link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_MT_DLL
+\section3 QMAKE_CFLAGS_MT_DLL
+
+\e {This is used on Windows only}
+
+This variable contains the compiler flags for creating a
+multi-threaded dll or when the version of TQt that you link
+against is a multi-threaded dll. The value of this variable is typically
+handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and
+rarely needs to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_MT_DLLDBG
+\section3 QMAKE_CFLAGS_MT_DLLDBG
+
+\e {This is used on Windows only}
+
+This variable contains the compiler flags for creating a debuggable
+multi-threaded dll or when the version of TQt that you link
+against is a debuggable multi-threaded statically linked library.
+The value of this variable is typically handled by \e tqmake or
+\link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_RELEASE
+\section3 QMAKE_CFLAGS_RELEASE
+
+This variable contains the compiler flags for creating a non-debuggable
+application. The value of this variable is typically
+handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and
+rarely needs to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_SHLIB
+\section3 QMAKE_CFLAGS_SHLIB
+
+\e {This is used on Unix platforms only}
+
+This variable contains the compiler flags for creating a shared
+library. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_THREAD
+\section3 QMAKE_CFLAGS_THREAD
+
+This variable contains the compiler flags for creating a multi-threaded
+application. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CFLAGS_WARN_OFF
+\section3 QMAKE_CFLAGS_WARN_OFF
+
+This variable is not empty if the warn_off
+\link #TEMPLATE TEMPLATE \endlink option is specified. The value of this
+variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink
+and rarely needs to be modified.
+
+
+
+\target QMAKE_CFLAGS_WARN_ON
+\section3 QMAKE_CFLAGS_WARN_ON
+
+This variable is not empty if the warn_on
+\link #TEMPLATE TEMPLATE \endlink option is specified.
+The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CLEAN
+\section3 QMAKE_CLEAN
+
+This variable contains any files which are not generated files (such as tqmoc and tquic
+generated files) and object files that should be removed when using "make clean".
+
+
+
+\target QMAKE_CXXFLAGS_DEBUG
+\section3 QMAKE_CXXFLAGS_DEBUG
+
+This variable contains the C++ compiler flags for creating a debuggable
+application. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+\target QMAKE_CXXFLAGS_MT
+\section3 QMAKE_CXXFLAGS_MT
+
+This variable contains the C++ compiler flags for creating a multi-threaded
+application. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CXXFLAGS_MT_DBG
+\section3 QMAKE_CXXFLAGS_MT_DBG
+
+This variable contains the C++ compiler flags for creating a debuggable multi-threaded
+application. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CXXFLAGS_MT_DLL
+\section3 QMAKE_CXXFLAGS_MT_DLL
+
+\c {This is used on Windows only}
+
+This variable contains the C++ compiler flags for creating a multi-threaded
+dll. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CXXFLAGS_MT_DLLDBG
+\section3 QMAKE_CXXFLAGS_MT_DLLDBG
+
+\c {This is used on Windows only}
+
+This variable contains the C++ compiler flags for creating a multi-threaded debuggable
+dll. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CXXFLAGS_RELEASE
+\section3 QMAKE_CXXFLAGS_RELEASE
+
+This variable contains the C++ compiler flags for creating an
+application. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CXXFLAGS_SHLIB
+\section3 QMAKE_CXXFLAGS_SHLIB
+
+This variable contains the C++ compiler flags for creating a
+shared library. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CXXFLAGS_THREAD
+\section3 QMAKE_CXXFLAGS_THREAD
+
+This variable contains the C++ compiler flags for creating a
+multi-threaded application. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs
+to be modified.
+
+
+
+
+\target QMAKE_CXXFLAGS_WARN_OFF
+\section3 QMAKE_CXXFLAGS_WARN_OFF
+
+This variable contains the C++ compiler flags for suppressing compiler warnings.
+ The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+\target QMAKE_CXXFLAGS_WARN_ON
+\section3 QMAKE_CXXFLAGS_WARN_ON
+
+This variable contains C++ compiler flags for generating compiler warnings.
+ The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\target QMAKE_EXTENSION_SHLIB
+\section3 QMAKE_EXTENSION_SHLIB
+
+This variable contains the extention for shared libraries. The value of this
+variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink
+and rarely needs to be modified.
+
+
+
+
+\target QMAKE_FAILED_REQUIREMENTS
+\section3 QMAKE_FAILED_REQUIREMENTS
+
+This variable contains the list of requirements that were failed to be met when
+\e tqmake was used. For example, the sql module is needed and wasn't compiled into Qt. The
+value of this variable is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink
+and rarely needs to be modified.
+
+
+
+
+\target QMAKE_FILETAGS
+\section3 QMAKE_FILETAGS
+
+This variable contains the file tags needed to be entered into the makefile, such as SOURCES
+and HEADERS. The value of this variable is typically handled by \e tqmake or
+\link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\target QMAKE_INCDIR
+\section3 QMAKE_INCDIR
+
+This variable contains the location of all known header files to be added to
+INCLUDEPATH when building an application. The value of this variable is
+typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely
+needs to be modified.
+
+
+\target POST_TARGETDEPS
+\section3 POST_TARGETDEPS
+
+All libraries that the \link #TARGET target \endlink depends on can be
+listed in this variable. Some backends do not support this, these include
+MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support
+internally by these build tools, this is usefull for explicitly listing
+dependant static libraries.
+
+This list will go after all builtin (and \link #PRE_TARGETDEPS
+$$PRE_TARGETDEPS \endlink) dependencies.
+
+
+\target PRE_TARGETDEPS
+\section3 PRE_TARGETDEPS
+
+All libraries that the \link #TARGET target \endlink depends on can be
+listed in this variable. Some backends do not support this, these include
+MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support
+internally by these build tools, this is usefull for explicitly listing
+dependant static libraries.
+
+This list will go before all builtin dependencies.
+
+
+\target QMAKE_INCDIR_OPENGL
+\section3 QMAKE_INCDIR_OPENGL
+
+This variable contains the location of OpenGL header files to be added
+to INCLUDEPATH when building an application with OpenGL support. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+\target QMAKE_INCDIR_TQT
+\section3 QMAKE_INCDIR_TQT
+
+This variable contains the location of all known header file
+paths to be added to INCLUDEPATH when building a TQt application. The value
+of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\target QMAKE_INCDIR_THREAD
+\section3 QMAKE_INCDIR_THREAD
+
+This variable contains the location of all known header file
+paths to be added to INCLUDEPATH when building a multi-threaded application.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\target QMAKE_INCDIR_X11
+\section3 QMAKE_INCDIR_X11
+
+\e {This is used on Unix platforms only}
+
+This variable contains the location of X11 header file paths to be
+added to INCLUDEPATH when building a X11 application. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+\target QMAKE_LFLAGS_CONSOLE
+\section3 QMAKE_LFLAGS_CONSOLE
+
+\e {This is used on Windows only}
+
+This variable contains link flags when building console
+programs. The value of this variable is typically handled by
+\e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 QMAKE_LFLAGS_CONSOLE_DLL
+
+\e {This is used on Windows only}
+
+This variable contains link flags when building console
+dlls. The value of this variable is typically handled by
+\e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_DEBUG
+
+This variable contains link flags when building debuggable applications. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_PLUGIN
+
+This variable contains link flags when building plugins. The value
+of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_QT_DLL
+
+This variable contains link flags when building programs that
+use the TQt library built as a dll. The value of this variable is
+typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_RELEASE
+
+This variable contains link flags when building applications for
+release. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_SHAPP
+
+This variable contains link flags when building applications which are using
+the 'app' template. The value of this variable is typically handled by
+\e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_SHLIB
+
+This variable contains link flags when building shared libraries
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_SONAME
+
+This variable specifies the link flags to set the name of shared objects,
+such as .so or .dll. The value of this variable is typically handled by \e
+tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\section3 QMAKE_LFLAGS_THREAD
+
+This variable contains link flags when building multi-threaded projects.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LFLAGS_WINDOWS
+
+\e {This is used on Windows only}
+
+This variable contains link flags when building windows projects.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 QMAKE_LFLAGS_WINDOWS_DLL
+
+\e {This is used on Windows only}
+
+This variable contains link flags when building windows dll projects.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 QMAKE_LIBDIR
+
+This variable contains the location of all known library
+directories.The value of this variable is typically handled by
+\e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBDIR_FLAGS
+
+\e {This is used on Unix platforms only}
+
+This variable contains the location of all library
+directory with -L prefixed. The value of this variable is typically handled by
+\e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+\section3 VPATH
+
+This variable tells \e tqmake where to search for files it cannot
+open. With this you may tell \e tqmake where it may look for things
+like SOURCES, and if it finds an entry in SOURCES that cannot be
+opened it will look through the entire VPATH list to see if it can
+find the file on its own.
+
+See also \link #DEPENDPATH DEPENDPATH \endlink.
+
+\target DEPENDPATH
+\section3 DEPENDPATH
+
+This variable contains the list of all directories to look in to
+resolve dependencies. This will be used when crawling through
+'included' files.
+
+
+\section3 QMAKE_LIBDIR_OPENGL
+
+This variable contains the location of the OpenGL library
+directory.The value of this variable is typically handled by
+\e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBDIR_TQT
+
+This variable contains the location of the TQt library
+directory.The value of this variable is typically handled by
+\e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBDIR_X11
+
+\e {This is used on Unix platforms only}
+
+This variable contains the location of the X11 library
+directory.The value of this variable is typically handled by
+\e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+\section3 QMAKE_LIBS
+
+This variable contains all project libraries. The value of this
+variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 QMAKE_LIBS_CONSOLE
+
+\e {This is used on Windows only}
+
+This variable contains all project libraries that should be linked against
+when building a console application. The value of this
+variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\section3 QMAKE_LIBS_OPENGL
+
+This variable contains all OpenGL libraries. The value of this
+variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_OPENGL_QT
+
+This variable contains all OpenGL TQt libraries.The value of this
+variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_QT
+
+This variable contains all TQt libraries.The value of this
+variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_QT_DLL
+
+\e {This is used on Windows only}
+
+This variable contains all TQt libraries when TQt is built as a dll. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_QT_OPENGL
+
+This variable contains all the libraries needed to link against if
+OpenGL support is turned on. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+\section3 QMAKE_LIBS_QT_THREAD
+
+This variable contains all the libraries needed to link against if
+thread support is turned on. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_THREAD
+
+\e {This is used on Unix platforms only}
+
+This variable contains all libraries that need to be linked against
+when building a multi-threaded application. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_WINDOWS
+
+\e {This is used on Windows only}
+
+This variable contains all windows libraries.The value of this
+variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_X11
+
+\e {This is used on Unix platforms only}
+
+This variable contains all X11 libraries.The value of this
+variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIBS_X11SM
+
+\e {This is used on Unix platforms only}
+
+This variable contains all X11 session management libraries. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_LIB_FLAG
+
+This variable is not empty if the 'lib' template is specified. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+\section3 QMAKE_LINK_SHLIB_CMD
+
+This variable contains the command to execute when creating a
+shared library. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 QMAKE_POST_LINK
+
+This variable contains the command to execute after linking the TARGET
+together. This variable is normally empty and therefore nothing is
+executed, additionally some backends will not support this - mostly only
+Makefile backends.
+
+
+
+\section3 QMAKE_PRE_LINK
+
+This variable contains the command to execute before linking the TARGET
+together. This variable is normally empty and therefore nothing is
+executed, additionally some backends will not support this - mostly only
+Makefile backends.
+
+
+
+\section3 QMAKE_LN_SHLIB
+
+This variable contains the command to execute when creating a link
+to a shared library. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_MAKEFILE
+
+This variable contains the name of the makefile to create. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+
+\section3 QMAKE_MOC_SRC
+
+This variable contains the names of all moc source files to
+generate and include in the project. The value of this variable is
+typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 QMAKE_QMAKE
+
+This variable contains the location of tqmake if it is not in the path.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 QMAKE_QT_DLL
+
+This variable is not empty if TQt was built as a dll. The
+value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+\section3 QMAKE_RUN_CC
+
+This variable specifies the individual rule needed to build an object.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+\section3 QMAKE_RUN_CC_IMP
+
+This variable specifies the individual rule needed to build an object.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\section3 QMAKE_RUN_CXX
+
+This variable specifies the individual rule needed to build an object.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\section3 QMAKE_RUN_CXX_IMP
+
+This variable specifies the individual rule needed to build an object.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+\section3 QMAKE_TARGET
+
+This variable contains the name of the project target. The value of
+this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 QMAKE_UIC
+
+This variable contains the location of tquic if it is not in the path.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+It can be used to specify arguments to tquic as well, such as additional plugin
+paths. For example:
+
+\code
+ QMAKE_UIC = tquic -L /path/to/plugin
+\endcode
+
+
+
+\section3 RC_FILE
+
+This variable contains the name of the resource file for the application.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+
+\section3 RES_FILE
+
+This variable contains the name of the resource file for the application.
+The value of this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\section3 SRCMOC
+
+This variable is set by \e tqmake if files can be found that
+contain the TQ_OBJECT macro. \c SRCMOC contains the
+name of all the generated moc files. The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+\section3 TARGET_EXT
+
+This variable specifies the target's extension. The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+
+\section3 TARGET_x
+
+This variable specifies the target's extension with a major version number. The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+\section3 TARGET_x.y.z
+
+This variable specifies the target's extension with version number. The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+\section3 UICIMPLS
+
+This variable contains a list of the generated implementation files by TQUIC.
+The value of this variable
+is typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be
+modified.
+
+
+
+
+
+\section3 UICOBJECTS
+
+This variable is generated from the UICIMPLS variable. The extension of each
+file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is
+typically handled by \e tqmake or \link #QMAKESPEC tqmake.conf \endlink and
+rarely needs to be modified.
+
+
+
+\section3 VER_MAJ
+
+This variable contains the major version number of the library, if the
+'lib' \link #TEMPLATE template \endlink is specified.
+
+
+
+
+
+\section3 VER_MIN
+
+This variable contains the minor version number of the library, if the
+'lib' \link #TEMPLATE template \endlink is specified.
+
+
+
+
+
+\section3 VER_PAT
+
+This variable contains the patch version number of the library, if the
+'lib' \link #TEMPLATE template \endlink is specified.
+
+
+
+\section3 QMAKE_EXT_MOC
+
+This variable changes the extention used on included moc files.
+
+See also \link #Extensions File Extensions \endlink.
+
+
+
+\section3 QMAKE_EXT_UI
+
+This variable changes the extention used on /e Designer UI files.
+
+See also \link #Extensions File Extensions \endlink.
+
+
+
+\section3 QMAKE_EXT_PRL
+
+This variable changes the extention used on created PRL files.
+
+See also \link #Extensions File Extensions \endlink,
+ \link #LibDepend Library Dependencies \endlink.
+
+
+
+\section3 QMAKE_EXT_LEX
+
+This variable changes the extention used on files given to lex.
+
+See also \link #Extensions File Extensions \endlink,
+ \link #LEXSOURCES LEXSOURCES \endlink.
+
+
+
+\section3 QMAKE_EXT_YACC
+This variable changes the extention used on files given to yacc.
+
+See also \link #Extensions File Extensions \endlink,
+ \link #LEXSOURCES YACCSOURCES \endlink.
+
+
+
+\section3 QMAKE_EXT_OBJ
+
+This variable changes the extention used on generated object files.
+
+See also \link #Extensions File Extensions \endlink.
+
+
+\section3 QMAKE_EXT_CPP
+
+This variable changes the interpretation of all suffixes in this
+list of values as files of type C++ source code.
+
+See also \link #Extensions File Extensions \endlink.
+
+
+\section3 QMAKE_EXT_H
+
+This variable changes the interpretation of all suffixes in this
+list of values as files of type C header files.
+
+See also \link #Extensions File Extensions \endlink.
+
+
+\section3 YACCIMPLS
+
+This variable contains a list of yacc source files. The value of
+this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+
+
+\section3 YACCOBJECTS
+
+This variable contains a list of yacc object files. The value of
+this variable is typically handled by \e tqmake or
+ \link #QMAKESPEC tqmake.conf \endlink and rarely needs to be modified.
+
+
+\target Functions
+\section1 Functions
+
+\e tqmake recognizes the following functions:
+
+
+
+\section2 include( filename )
+
+This function will include the contents of \e filename into the
+current project at the point where was included. The function succeeds
+if \e filename was included, otherwise it fails. You can check the
+return value of this function using a
+scope.
+
+For example:
+
+\code
+include( shared.pri )
+OPTIONS = standard custom
+!include( options.pri ) {
+ message( "No custom build options specified" )
+ OPTIONS -= custom
+}
+\endcode
+
+\section2 exists( file )
+
+This function will test if \e file exists. If the file exists, then it will succeed; otherwise it will
+fail.
+You can specify a regular expression in file and it will succeed if any file
+matches the regular expression specified.
+
+For example:
+\code
+exists( $(TQTDIR)/lib/libtqt-mt* ) {
+ message( "Configuring for multi-threaded Qt..." )
+ CONFIG += thread
+}
+\endcode
+
+\section2 contains( variablename, value )
+
+This function will succeed if the variable \e variablename
+contains the value \e value. You can check the return value of this
+function using a scope.
+
+For example:
+
+\code
+contains( drivers, network ) {
+ # drivers contains 'network'
+ message( "Configuring for network build..." )
+ HEADERS += network.h
+ SOURCES += network.cpp
+}
+\endcode
+
+\section2 count( variablename, number )
+
+This function will succeed if the variable \e variablename
+contains \e number elements, otherwise it will fail. You can check
+the return value of this function using a
+scope.
+
+For example:
+
+\code
+MYVAR = one two three
+count( MYVAR, 3 ) {
+ # always true
+}
+\endcode
+
+\section2 infile( filename, var, val )
+
+This function will succeed if the file \e filename (when parsed
+by tqmake itself) contains the variable \e var with a value of
+\e val. You may also not pass in a third argument (\e val) and the
+function will only test if \e var has been assigned to in the file.
+
+\section2 isEmpty( variablename )
+
+This function will succeed if the variable \e variablename is
+empty (same as \c count(variable, 0)).
+
+\section2 system( command )
+
+This function will execute \c command in a secondary shell and will
+succeed if the command exits with an exit status of 1. You can check the
+return value of this function using a scope.
+
+For example:
+
+\code
+ system(ls /bin):HAS_BIN=FALSE
+\endcode
+
+\section2 message( string )
+
+This function will always succeed, and will display the given
+\e string to the user.
+
+\section2 error( string )
+
+This function will never return a value. It will display the given \e
+string to the user, and then exit \e tqmake. This function should
+only be used for very fatal configurations.
+
+For example:
+
+\code
+ release:debug:error(You can't have release and debug at the same time!)
+\endcode
+
+\target Properties
+\section1 Properties
+
+\e tqmake has a system of persistant information, this allows you to
+'set' a variable in tqmake once, and each time tqmake is invoked this
+value can be queried. Use the following to set a property in tqmake:
+
+\code
+tqmake -set VARIABLE VALUE
+\endcode
+
+To retrieve this information back from tqmake you can do:
+
+\code
+tqmake -query VARIABLE
+tqmake -query #queries all current VARIABLE/VALUE pairs..
+\endcode
+
+This information will be saved into a TQSettings object (meaning it
+will be stored in different places for different platforms). As
+VARIABLE is versioned as well, you can set one value in an older
+version of tqmake, and newer versions will retrieve this value, however
+if you -set VARIABLE into a newer version of tqmake the older version
+will not use this value. You can however query a specific version of a
+variable if you prefix that version of tqmake to VARIABLE, as in:
+
+\code
+tqmake -query "1.06a/VARIABLE"
+\endcode
+
+tqmake also has the notion of 'builtin' properties, for example you can
+query the installation of TQt for this version of tqmake with the
+QT_INSTALL_PREFIX property:
+
+\code
+tqmake -query "QT_INSTALL_PREFIX"
+\endcode
+
+These builtin properties cannot have a version prefixed to them as
+they are not versioned and each tqmake will have its own notion of
+these values. The list below outlines the builtin properties:
+
+\list
+\i QT_INSTALL_PREFIX - Where the version of TQt this tqmake is built for resides
+\i QT_INSTALL_DATA - Where data for this version of TQt resides
+\i QMAKE_VERSION - The current version of tqmake
+\endlist
+
+Finally, these values can be queried in a project file with a special
+notation such as:
+
+\code
+QMAKE_VERS = $$[QMAKE_VERSION]
+\endcode
+
+\target Environment
+\section1 Environment Variables and Configuration
+
+\target QMAKESPEC
+\section2 QMAKESPEC
+
+\e tqmake requires a platform and compiler description file which
+contains many default values used to generate appropriate makefiles.
+The standard TQt distribution comes with many of these files, located
+in the 'mkspecs' subdirectory of the TQt installation.
+
+The QMAKESPEC environment variable can contain any of the following:
+
+\list
+\i A complete path to a directory containing a tqmake.conf file. In this case \e tqmake will open the tqmake.conf file from within that directory. If the file does not exist, \e tqmake will exit with an error.
+\i The name of a platform-compiler combination. In this case, \e tqmake will search in the directory specified by the TQTDIR environment variable.
+\endlist
+
+Note: the QMAKESPEC path will automatically be added to the
+\link #INCLUDEPATH INCLUDEPATH \endlink system variable.
+
+\target INSTALLS
+\section2 INSTALLS
+
+It is common on UNIX to be able to install from the same utility as
+you build with (e.g make install). For this \e tqmake has introduce the
+concept of an install set. The notation for this is quite simple,
+first you fill in an "object" in tqmake for example:
+
+\code
+ documentation.path = /usr/local/program/doc
+ documentation.files = docs/*
+\endcode
+
+In this way you are telling \e tqmake several things about this
+install, first that you plan to install to /usr/local/program/doc (the
+path member), second that you plan to copy everything in the docs
+directory. Once this is done you may insert it in the install list:
+
+\code
+ INSTALLS += documentation
+\endcode
+
+Now \e tqmake will take over making sure the correct things are copied
+to the specified places. If however you require greater control you
+may use the 'extra' member of the object:
+
+\code
+ unix:documentation.extra = create_docs; mv master.doc toc.doc
+\endcode
+
+Then tqmake will run the things in extra (this is of course platform
+specific, so you may need to test for your platform first, this case
+we test for unix). Then it will do the normal processings of the files
+member. Finally if you appened a builtin install to INSTALLS \e tqmake
+(and do not specify a files or extra member) will decide what needs to
+be copied for you, currently the only supported builtin is target:
+
+\code
+ target.path = /usr/local/myprogram
+ INSTALLS += target
+\endcode
+
+With this \e tqmake will know what you plan need copied, and do this
+for you.
+
+\target cache
+\section2 Cache File
+
+The cache file (mentioned above in the options) is a special file \e tqmake
+will read to find settings not specified in the \c tqmake.conf file, the
+.pro file, or the command line. If \c -nocache is not specified, \e tqmake
+will try to find a file called \c .tqmake.cache in parent directories. If
+it fails to find this file, it will silently ignore this step of
+processing.
+
+\target LibDepend
+\section2 Library Dependencies
+
+Often when linking against a library \e tqmake relies on the underlying
+platform to know what other libraries this library links against, and
+lets the platform pull them in. In many cases, however, this is not
+sufficent. For example when statically linking a library there are no
+libraries linked against, and therefore no dependencies to those
+libraries are created - however an application that later links
+against this library will need to know where to find the symbols that
+the linked in library will require. To help with this situation \e
+tqmake will follow a library's dependencies when it feels appropriate,
+however this behaviour must be enabled in \e tqmake. To enable requires
+two steps. First, you must enable it in the library - to do this you
+must tell \e tqmake to save information about this library:
+
+\code
+ CONFIG += create_prl
+\endcode
+
+This is only relevant to the lib template, and will be ignored for all
+others. When this option is enabled \e tqmake will create a file
+(called a .prl file) which will save some meta information about the
+library. This metafile is itself just a tqmake project file, but with
+all internal variables. You are free to view this file, and if deleted
+\e tqmake will know to recreate it when necesary (either when the .pro
+file is later read, or if a dependent library (described below) has
+changed). When installing this library (by using target in INSTALLS,
+above) \e tqmake will automatically copy the .prl file to your install
+path.
+
+The second step to enabling this processing is to turn on reading of
+the meta information created above:
+
+\code
+ CONFIG += link_prl
+\endcode
+
+When this is turned on \e tqmake will process all libraries linked to,
+and find their meta information. With this meta information \e tqmake
+will figure out what is relevant to linking, specifically it will add
+to your list of DEFINES as well as LIBS. Once \e tqmake has processed
+this file, it will then look through the newly introduced LIBS and
+find their dependent .prl files, and continue until all libraries have
+been resolved. At this point the makefile is created as usual, and the
+libraries are linked explicity against your program.
+
+The internals of the .prl file are left closed so they can easily
+change later. It is not designed to be changed by hand however, and
+should only be created by \e tqmake - these .prl files should also not
+be transfered from operating system to operating system as they may be
+platform dependent (like a makefile).
+
+\target Extensions
+\section2 File Extensions
+
+Under normal circumstances \e tqmake will try to use appropriate file extensions
+for your platform. There may be times, however, that you would like to override
+the behavior of these extensions. To do this, you must modify builtin variables
+in your .pro file, which will in turn changes \e tqmake's interpretation of these
+files. You may do this as:
+
+\code
+ QMAKE_EXT_MOC = .mymoc
+\endcode
+
+The variables are as follows:
+
+\list
+\i QMAKE_EXT_MOC - This modifies the extension placed on included moc files.
+\i QMAKE_EXT_UI - This modifies the extension used for designer UI files (usually in FORMS).
+\i QMAKE_EXT_PRL - This modifies the extension placed on
+ \link #LibDepend library dependency files \endlink.
+\i QMAKE_EXT_LEX - This changes the suffix used in files (usually in LEXSOURCES).
+\i QMAKE_EXT_YACC - This changes the suffix used in files (usually in YACCSOURCES).
+\i QMAKE_EXT_OBJ - This changes the suffix used on generated object files.
+\endlist
+
+All the above accept just the first value, so you must assign to it one value that
+will be used through your makefile. There are two variables that accept a list of values,
+they are:
+
+\list
+\i QMAKE_EXT_CPP - Changes interpretation all files with these suffixes to be
+ C++ source files.
+\i QMAKE_EXT_H - Changes interpretation all files with these suffixes to be
+ C header files.
+\endlist
+
+
+\target Customizing
+\section2 Customizing Makefile Output
+
+tqmake often tries to be all things to all build tools, this is often less
+than ideal when you really need to run special platform dependent
+commands. This can be achieved with specific instructions to the different
+tqmake backends (currently this is only supported by the UNIX \link
+#MAKEFILE_GENERATOR generator \endlink).
+
+The interfaces to customizing the Makefile are done through "objects" as in
+other places in tqmake. The notation for this is quite simple, first you
+fill in an "object" in tqmake for example:
+
+\code
+ mytarget.target = .buildfile
+ mytarget.commands = touch $$mytarget.target
+ mytarget.depends = mytarget2
+
+ mytarget2.commands = @echo Building $$mytarget.target
+\endcode
+
+The information above defines a tqmake target called mytarget which contains
+a Makefile target called .buildfile, .buildfile is generated by 'touch
+.buildfile', and finally that this Makefile target depends on the tqmake
+target mytarget2. Additionally we've defined the tqmake target mytarget2
+which simply echo's something to stdout.
+
+The final step to making use of the above is to instruct tqmake that this is
+actually an object used by the target building parts of tqmake by:
+
+\code
+QMAKE_EXTRA_UNIX_TARGETS += mytarget mytarget2
+\endcode
+
+This is all you need to do to actually build custom targets in tqmake, of
+course you may want to tie one of these targets to actually building the
+\link #TARGET tqmake build target \endlink. To do this, you simply need to
+include your Makefile target in the list of \link #PRE_TARGETDEPS PRE_TARGETDEPS
+\endlink.
+
+For convenience there is also a method of customizing (UNIX) projects
+for generic new compilers (or even preprocessors).
+
+\code
+new_moc.output = tqmoc_${QMAKE_FILE_BASE}.cpp
+new_moc.commands = tqmoc ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
+new_moc.depends = g++ -E -M ${QMAKE_FILE_NAME} | sed "s,^.*: ,,"
+new_moc.input = NEW_HEADERS
+QMAKE_EXTRA_UNIX_COMPILERS += new_moc
+\endcode
+
+With this you can create a new moc for tqmake, the commands will be
+executed over all arguments given to a NEW_HEADERS variable (from the
+input variable), and write to output (and automatically hand this
+filename to the compiler to be linked into your target). Additionally
+tqmake will execute depends to generate dependency information and
+place this in the project as well.
+
+These commands can easily be placed into a cache file, and subsequent
+.pro files can give several arguments to NEW_HEADERS.
diff --git a/tqmake/book/tqmake-concepts.leaf b/tqmake/book/tqmake-concepts.leaf
new file mode 100644
index 000000000..4f19644b7
--- /dev/null
+++ b/tqmake/book/tqmake-concepts.leaf
@@ -0,0 +1,187 @@
+\chapter tqmake Concepts
+
+\section1 Introducing tqmake
+
+\e tqmake is an easy-to-use tool from Trolltech that creates makefiles
+for development projects across different platforms. \e tqmake
+simplifies the generation of makefiles so that only a few lines of
+information are needed to create a makefile. \e tqmake can be used for
+any software project whether it is written in TQt or not, although it
+also contains additional features to support TQt development.
+
+\e tqmake generates a makefile based on the information in a project
+file. Project files are created by the developer. Project files are
+usually simple, but can be quite sophisticated if required.
+\e tqmake can also generate projects for Microsoft Visual studio
+without having to change the project file.
+
+\section1 tqmake's Concepts
+
+\section2 The QMAKESPEC environment variable
+
+Before \e tqmake can be used to build makefiles, the QMAKESPEC
+environment variable must be set to the platform-compiler combination
+that is being used on the system. The QMAKESPEC environment variable
+tells tqmake where to look to find platform and compiler specific
+information. This ensures that the right libraries are used, and that
+the generated makefile uses the correct syntax. A list of the
+currently supported platform-compiler combinations can be found in
+qt/mkspecs. Just set your environment variable to one of the
+directories listed.
+
+For example, if you are using Microsoft Visual Studio on Windows, then
+you would set the QMAKESPEC environment variable to \e win32-msvc.
+If you are using gcc on Solaris then you would set your QMAKESPEC
+environment variable to \e solaris-g++.
+
+Inside each of the directories in qt/mkspecs, there is a \e tqmake.conf
+file which contains the platform and compiler specific information.
+These settings are applied to any project that is built using \e
+tqmake and should not be modified unless you're an expert. For example,
+if all your applications had to link against a particular library, you
+might add this information to the relevant \e tqmake.conf file.
+
+\section2 Project (.pro) files
+
+A project file is used to tell \e tqmake the details it needs to know
+about creating a makefile for the application. For instance, a list
+of source files and header files that should be put into the project
+file; any application specific configuration, such as an extra library
+that should be linked against, or an extra include path.
+
+\section3 '#' comments
+
+You can add comments to project files. Comments begin with the '#'
+symbol and run to the end of the line.
+
+\section2 Templates
+
+The template variable tells \e tqmake what sort of makefile should be
+generated for the application. The following choices are available:
+
+\list
+\i app - Creates a makefile that builds an application. This is the
+default, so if a template is not specified, this is used.
+\i lib - Creates a makefile that builds a library.
+\i vcapp - Creates a Visual Studio Project file which builds an application.
+\i vclib - Creates a Visual Studio Project file which builds a library.
+\i subdirs - This is a special template which creates a makefile which
+will go into the specified directories and create a makefile for the
+project file and call make on it.
+\endlist
+
+\section3 The 'app' template
+
+The 'app' template tells \e tqmake to generate a makefile that will build
+an application. When using this template the following \e tqmake
+system variables are recognized. You should use these in your .pro
+file to specify information about your application.
+
+\list
+\i HEADERS - A list of all the header files for the application.
+\i SOURCES - A list of all the source files for the application.
+\i FORMS - A list of all the .ui files (created using \e{Qt Designer})
+for the application.
+\i LEXSOURCES - A list of all the lex source files for the application.
+\i YACCSOURCES - A list of all the yacc source files for the application.
+\i TARGET - Name of the executable for the application. This defaults
+to the name of the project file. (The extension, if any, is added
+automatically).
+\i DESTDIR - The directory in which the target executable is placed.
+\i DEFINES - A list of any additional pre-processor defines needed for the application.
+\i INCLUDEPATH - A list of any additional include paths needed for the application.
+\i DEPENDPATH - The dependency search path for the application.
+\i VPATH - The search path to find supplied files.
+\i DEF_FILE - Windows only: A .def file to be linked against for the application.
+\i RC_FILE - Windows only: A resource file for the application.
+\i RES_FILE - Windows only: A resource file to be linked against for the application.
+\endlist
+
+You only need to use the system variables that you have values for,
+for instance, if you don't have any extra INCLUDEPATHs then you don't
+need to specify any, \e tqmake will add in the default ones needed.
+For instance, an example project file might look like this:
+
+\code
+TEMPLATE = app
+DESTDIR = c:\helloapp
+HEADERS += hello.h
+SOURCES += hello.cpp
+SOURCES += main.cpp
+DEFINES += QT_DLL
+CONFIG += qt warn_on release
+\endcode
+
+For items that are single valued, e.g. the template or the destination
+directory, we use "="; but for multi-valued items we use "+=" to \e
+add to the existing items of that type. Using "=" replaces the item's
+value with the new value, for example if we wrote \c{DEFINES=QT_DLL},
+all other definitions would be deleted.
+
+\section3 The 'lib' template
+
+The 'lib' template tells \e tqmake to generate a makefile that will
+build a library. When using this template, in addition to the system variables
+mentioned above for the 'app' template the \e VERSION variable is
+supported. You should use these in your .pro file to specify
+information about the library.
+
+\list
+\i VERSION - The version number of the target library, for example, 2.3.1.
+\endlist
+
+\section3 The 'subdirs' template
+
+The 'subdirs' template tells tqmake to generate a makefile that will go
+into the specified subdirectories and generate a makefile for the
+project file in the directory and call make on it.
+
+The only system variable that is recognised for this template is the
+\e SUBDIRS variable. This variable contains a list of all the
+subdirectories that contain project files to be processed. It is
+essential that the project file in the sub directory has the same name
+as the subdirectory, so that \e tqmake can find it. For
+example, if the subdirectory is called 'myapp' then the project file
+in that directory should be called \e myapp.pro in that directory.
+
+\section2 The CONFIG variable
+
+The config variable specifies the options that the compiler should use
+and the libraries that should be linked against. Anything can be
+added to the config variable, but the options covered below are
+recognised by tqmake internally.
+
+The following options control what compiler flags are used:
+
+\list
+\i release - The application is to be built in release mode. This is ignored if 'debug' is specified.
+\i debug - The application is to be built in debug mode.
+\i warn_on - The compiler should output as many warnings as possible. This is ignored if 'warn_off' is specified.
+\i warn_off - The compiler should output as few warnings as possible.
+\endlist
+
+The following options define the type of library/application to be built:
+
+\list
+\i qt - The application is a TQt application and should link against the TQt library.
+\i thread - The application is a multi-threaded application.
+\i x11 - The application is an X11 application or library.
+\i windows - 'app' template only: the application is a Windows window application.
+\i console - 'app' template only: the application is a Windows console application.
+\i dll - 'lib' template only: The library is a shared library (dll).
+\i staticlib - 'lib' template only: The library is a static library.
+\i plugin - 'lib' template only: The library is a plugin; this enables the dll option.
+\endlist
+
+For example, if your application uses the TQt library and you want to
+build it as a debuggable multi-threaded application, your project file
+will have the following line:
+
+\code
+ CONFIG += qt thread debug
+\endcode
+
+Note, that you must use "+=", not "=", or \e tqmake will not be able to
+use the settings used to build TQt as a guide as what type of Qt
+library was built.
+
diff --git a/tqmake/book/tqmake-install.leaf b/tqmake/book/tqmake-install.leaf
new file mode 100644
index 000000000..34429e2e6
--- /dev/null
+++ b/tqmake/book/tqmake-install.leaf
@@ -0,0 +1,46 @@
+\chapter Installing tqmake
+
+\section1 Installing tqmake
+
+\e tqmake is built by default when TQt is built.
+
+This section explains how to build \e tqmake manually. Skip ahead to
+\l{The 10 minute guide to using tqmake}, if you already have \e tqmake.
+
+\section2 Installing tqmake manually
+
+Before building TQt manually the following environment variables must
+be set:
+
+\list
+\i QMAKESPEC \BR This must be set to the platform and compiler
+combination that you are using on your system. \BR For example, if
+you are using Windows and Microsoft Visual Studio, you would set this
+environment variable to \e win32-msvc. If you are using Solaris and
+g++, you would set this environment variable to \e solaris-g++.
+
+The following is a list of environment variables available to choose
+from when setting QMAKESPEC:
+
+aix-64 hpux-cc irix-032 netbsd-g++ solaris-cc unixware7-g++
+aix-g++ hpux-g++ linux-cxx openbsd-g++ solaris-g++
+aix-xlc hpux-n64 linux-g++ openunix-cc sunos-g++ win32-g++
+bsdi-g++ hpux-o64 linux-icc qnx-g++ tru64-cxx win32-msvc
+dgux-g++ hurd-g++ linux-kcc reliant-64 tru64-g++ win32-watc
+freebsd-g++ irix-64 macx-pbuilder reliant-cds ultrix-g++ win32-visa
+hpux-acc irix-g++ macx-g++ sco-g++ unixware-g
+hpux-acc irix-n32 solaris-64 unixware7-cc
+
+\i TQTDIR \BR This must be set to where TQt is (or will be) installed.
+For example, \e {c:\\qt} and \e {\\local\\qt}
+\endlist
+
+Once the environment variables are set go into the tqmake directory, \e
+$TQTDIR/tqmake, e.g. \e{C:\\qt\\tqmake}. Now run \e make or \e nmake
+depending on your compiler.
+
+When the make has completed, \e tqmake is ready for use.
+
+
+
+
diff --git a/tqmake/book/tqmake-manual.book b/tqmake/book/tqmake-manual.book
new file mode 100644
index 000000000..6f92b0a50
--- /dev/null
+++ b/tqmake/book/tqmake-manual.book
@@ -0,0 +1,12 @@
+\title tqmake User Guide
+
+\granularity chapter
+
+\input tqmake-preface.leaf
+\input tqmake-install.leaf
+\input tqmake-quick.leaf
+\input tqmake-tutorial.leaf
+\input tqmake-concepts.leaf
+\input tqmake-advanced.leaf
+\input tqmake-pch.leaf
+\input tqmake-commandreference.leaf
diff --git a/tqmake/book/tqmake-pch.leaf b/tqmake/book/tqmake-pch.leaf
new file mode 100644
index 000000000..94a65ac15
--- /dev/null
+++ b/tqmake/book/tqmake-pch.leaf
@@ -0,0 +1,136 @@
+\chapter Using Precompiled Headers
+
+\target About
+\section1 About Precompiled Headers
+\index About Precompiled Headers
+\index Using Precompiled Headers
+\index Precompiled Headers
+\index PCH
+
+Precompiled headers are a performance feature supported by some
+compilers to compile a stable body of code, and store the compiled
+state of the code in a binary file. During subsequent compilations,
+the compiler will load the stored state, and continue compiling the
+specified file. Each subsequent compilation is faster because the
+stable code does not need to be recompiled.
+
+\e tqmake supports the use of precompiled headers (PCH) on some
+platforms and build environments, including:
+\list
+\i Windows
+ \list
+ \i nmake
+ \i Dsp projects (VC 6.0)
+ \i Vcproj projects (VC 7.0 \& 7.1)
+ \endlist
+\i Mac OS X
+ \list
+ \i Makefile
+ \i Xcode
+ \i GCC 3.3 and up
+ \endlist
+\i Unix
+ \list
+ \i GCC 3.4 and up
+ \endlist
+\endlist
+
+
+\target ADD_PCH
+\section1 Adding PCH to your project
+
+
+\target PCH_CONTENTS
+\section2 Contents of the precompiled header file
+
+The precompiled header must contain code which is \e stable
+and \e static throughout your project. A typical PCH might look
+like this:
+\section3 stable.h
+
+\code
+ /* Add C includes here */
+
+ #if defined __cplusplus
+ /* Add C++ includes here */
+ #include
+ #include
+ #include
+ #include // TQt includes
+ #include
+ #include
+ #include "thirdparty/include/libmain.h"
+ #include "my_stable_class.h"
+ ...
+ #endif
+\endcode
+
+Note that a precompiled header file needs to separate C includes from
+CPP includes, since the precompiled header file for C files may not
+contain C++ code.
+
+
+\target PROJECT_OPTIONS
+\section2 Project options
+
+To make your project use PCH, the only thing you need to change in
+your project settings (.pro), is to include the PRECOMPILED_HEADER option:
+\code
+ PRECOMPILED_HEADER = stable.h
+\endcode
+\e tqmake will handle the rest, to ensure the creation and use of the
+precompiled header file. You do not need to include the precompiled
+header file in HEADERS, as tqmake will do this if the configuration
+supports PCH.
+
+All platforms that support precompiled headers have the configuration
+option \Bold precompile_header set. Using this option, you may trigger
+conditional blocks in your .pro file, to add settings when using PCH.
+For example:
+\code
+ precompile_header:!isEmpty(PRECOMPILED_HEADER) {
+ DEFINES += USING_PCH
+ }
+
+\endcode
+
+\target EXAMPLE_PROJECT
+\section1 Example project
+
+You can find the following source code in the
+\e{qt/tqmake/examples/precompile} directory:
+
+\Bold mydialog.ui
+\quotefile precompile/mydialog.ui
+\skipto
+
+\Bold stable.h
+\quotefile precompile/stable.h
+\skipto /*
+\printuntil #endif
+
+\Bold myobject.h
+\quotefile precompile/myobject.h
+\skipto #include
+\printuntil }
+
+\Bold myobject.cpp
+\quotefile precompile/myobject.cpp
+\skipto #include
+\printuntil }
+
+\Bold util.cpp
+\quotefile precompile/util.cpp
+\skipto void
+\printuntil }
+
+\Bold main.cpp
+\quotefile precompile/main.cpp
+\skipto #include
+\printuntil }
+
+\Bold precompile.pro
+\quotefile precompile/precompile.pro
+\skipto #
+\printuntil .ui
diff --git a/tqmake/book/tqmake-preface.leaf b/tqmake/book/tqmake-preface.leaf
new file mode 100644
index 000000000..aa1c1ee53
--- /dev/null
+++ b/tqmake/book/tqmake-preface.leaf
@@ -0,0 +1,18 @@
+\chapter Introduction to tqmake
+
+\section1 Introduction to tqmake
+
+\e tqmake is a tool created by Trolltech to write makefiles for
+different compilers and platforms.
+
+Writing makefiles by hand can be difficult and error prone, especially
+if several makefiles are required for different compiler and platform
+combinations. With \e tqmake, developers create a simple single
+'project' file and run \e tqmake to generate the appropriate
+makefiles. \e tqmake takes care of all the compiler and platform
+dependencies, freeing developers to focus on their code. Trolltech
+uses \e tqmake as the primary build tool for the TQt library, and for
+the tools supplied with Qt.
+
+\e tqmake also takes care of Qt's special requirements, automatically
+including build rules for \link tqmoc.html tqmoc\endlink and \e tquic.
diff --git a/tqmake/book/tqmake-quick.leaf b/tqmake/book/tqmake-quick.leaf
new file mode 100644
index 000000000..75f3f98ec
--- /dev/null
+++ b/tqmake/book/tqmake-quick.leaf
@@ -0,0 +1,114 @@
+\chapter The 10 minute guide to using tqmake
+
+\section1 Creating a project file
+
+\e tqmake uses information stored in project (.pro) files to determine
+what should go in the makefiles it generates.
+
+A basic project file contains information about the application, for
+example, which files are needed to compile the application, and which
+configuration settings to use.
+
+Here's a simple example project file:
+\code
+ SOURCES = hello.cpp
+ HEADERS = hello.h
+ CONFIG += qt warn_on release
+\endcode
+
+We'll provide a brief line-by-line explanation, deferring the detail
+until later on in the manual.
+
+\code
+ SOURCES = hello.cpp
+\endcode
+
+This line specifies the source files that implement the application. In this
+case there is just one file, \e hello.cpp. Most applications require
+multiple files; this situation is dealt with by listing all the files
+on the same line space separated, like this:
+\code
+ SOURCES = hello.cpp main.cpp
+\endcode
+
+Alternatively, each file can be listed on a separate line, by escaping
+the newlines, like this:
+\code
+ SOURCES = hello.cpp \
+ main.cpp
+\endcode
+
+A more verbose approach is to list each file separately, like this:
+\code
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+\endcode
+This approach uses "+=" rather than "=" which is safer, because it
+always adds a new file to the existing list rather than replacing the
+list.
+
+The HEADERS line is used to specify the header files created for use
+by the application, e.g.
+\code
+ HEADERS += hello.h
+\endcode
+
+Any of the approaches used to list source files may be used for header
+files.
+
+The CONFIG line is used to give \e tqmake information about the
+application's configuration.
+\code
+ CONFIG += qt warn_on release
+\endcode
+
+The "+=" is used here, because we add our configuration options to any
+that are already present. This is safer than using "=" which replaces
+all options with just those specified.
+
+The \e qt part of the CONFIG line tells \e tqmake that the application
+is built using Qt. This means that \e tqmake will link against the Qt
+libraries when linking and add in the neccesary include paths for
+compiling.
+
+The \e warn_on part of the CONFIG line tells \e tqmake that it should
+set the compiler flags so that warnings are output.
+
+The \e release part of the CONFIG line tells \e tqmake that the
+application must be built as a release application. During
+development, programmers may prefer to replace \e release with \e
+debug, which is discussed later.
+
+\omit
+The last line in the project file is the TARGET line:
+\code
+ TARGET = hello
+\endcode
+The target line simply specifies what the name of the target should be
+for the application. You shouldn't put an extension here because \e
+tqmake will do this for you.
+\endomit
+
+Project files are plain text (i.e. use an editor like notepad, vim
+or xemacs) and must be saved with a '.pro' extension. The name of the
+application's executable will be the same as the project file's name,
+but with an extension appropriate to the platform. For example, a
+project file called 'hello.pro' will produce 'hello.exe' on Windows
+and 'hello' on Unix.
+
+\section1 Generating a makefile
+
+When you have created your project file it is very easy to generate a
+makefile, all you need to do is go to where you have created your
+project file and type:
+
+Makefiles are generated from the '.pro' files like this:
+\code
+ tqmake -o Makefile hello.pro
+\endcode
+
+For Visual Studio users, \e tqmake can also generate '.dsp' files, for
+example:
+\code
+ tqmake -t vcapp -o hello.dsp hello.pro
+\endcode
diff --git a/tqmake/book/tqmake-tutorial.leaf b/tqmake/book/tqmake-tutorial.leaf
new file mode 100644
index 000000000..4f5bdc298
--- /dev/null
+++ b/tqmake/book/tqmake-tutorial.leaf
@@ -0,0 +1,239 @@
+\chapter tqmake Tutorial
+
+\section1 Introduction to the tqmake tutorial
+
+This tutorial teaches you how to use \e tqmake. We recommend that
+you read the \e tqmake user guide after completing this tutorial.
+
+\section1 Starting off simple
+
+Let's assume that you have just finished a basic implementation of
+your application, and you have created the following files:
+
+\list
+\i hello.cpp
+\i hello.h
+\i main.cpp
+\endlist
+
+You will find these files in \e {qt/tqmake/examples/tutorial}. The
+only other thing you know about the setup of the application is that
+it's written in Qt. First, using your favorite plain text editor,
+create a file called \e hello.pro in \e {qt/tqmake/tutorial}. The
+first thing you need to do is add the lines that tell \e tqmake about
+the source and header files that are part of your development project.
+
+We'll add the source files to the project file first. To do this you
+need to use the SOURCES variable. Just start a new line with \e
+{SOURCES +=} and put hello.cpp after it. You should have something
+like:
+
+\code
+ SOURCES += hello.cpp
+\endcode
+
+We repeat this for each source file in the project, until we end up
+with:
+
+\code
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+\endcode
+
+If you prefer to use a Make-like syntax, with all the files listed in
+one go you can use the newline escaping like this:
+
+\code
+ SOURCES = hello.cpp \
+ main.cpp
+\endcode
+
+Now that the source files are listed in the project file, the header
+files must be added. These are added in exactly the same way as source
+files, except that the variable name is HEADERS:
+
+Once you have done this, your project file should look something like
+this:
+\code
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+\endcode
+
+The target name is set automatically; it is the same as the project
+file, but with the suffix appropriate to the platform. For example, if
+the project file is called 'hello.pro', the target will be 'hello.exe'
+on Windows and 'hello' on Unix. If you want to use a different name
+you can set it in the project file:
+\code
+ TARGET = helloworld
+\endcode
+
+The final step is to set the \e CONFIG variable. Since this is a Qt
+application, we need to put 'qt' on the CONFIG line so that \e tqmake
+will add the relevant libraries to be linked against and ensure that
+build lines for \e tqmoc and \e tquic are included in the makefile.
+
+The finished project file should look like this:
+\code
+ CONFIG += qt
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+\endcode
+
+You can now use \e tqmake to generate a makefile for your application.
+On the command line, in your application directory, type:
+
+\code
+ tqmake -o Makefile hello.pro
+\endcode
+
+Then type \e make or \e nmake depending on the compiler you use.
+
+\section1 Making an application debuggable
+
+The release version of an application doesn't contain any debugging
+symbols or other debuggin information. During development it is useful
+to produce a debugging version of the application that has the
+relevant information. This is easily achieved by adding 'debug' to the
+CONFIG variable in the project file.
+
+For example:
+\code
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+\endcode
+
+Use \e tqmake as before to generate a makefile and you will be able to
+debug your application.
+
+\section1 Adding platform specific source files
+
+After a few hours of coding, you might have made a start on the
+platform specific part of your application, and decided to keep the
+platform dependent code separate. So you now have two new files to
+include into your project file - \e hellowin.cpp and \e
+hellounix.cpp. We can't just add these to the \e SOURCES
+variable since this will put both files in the makefile. So what we
+need to do here is to use a scope which will be processed depending on
+which platform \e tqmake is run on.
+
+A simple scope which will add in the platform dependent file for
+Windows looks like this:
+
+\code
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+\endcode
+
+So if \e tqmake is run on Windows, it will add \e hellowin.cpp to the
+list of source files. If \e tqmake is run on any other platform, it
+will simply ignore it. Now all that is left to be done is to create a
+scope for the unix dependent file.
+
+When you have done that, your project file should now look
+something like this:
+
+\code
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+ unix {
+ SOURCES += hellounix.cpp
+ }
+\endcode
+
+Use \e tqmake as before to generate a makefile.
+
+\section1 Stopping tqmake if a file doesn't exist
+
+You may not want to create a makefile if a certain file doesn't exist.
+We can check if a file exists by using the exists() function. We can
+stop \e tqmake from processing by using the error() function. This
+works in the same way as scopes. Simply replace the scope condition
+with the function. A check for a main.cpp file looks like this:
+
+\code
+ !exists( main.cpp ) {
+ error( "No main.cpp file found" )
+ }
+\endcode
+
+The "!" is used to negate the test, i.e. \c{exists( main.cpp )} is
+true if the file exists and \c{!exists( main.cpp )} is true if the
+file doesn't exist.
+
+\code
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+ unix {
+ SOURCES += hellounix.cpp
+ }
+ !exists( main.cpp ) {
+ error( "No main.cpp file found" )
+ }
+\endcode
+
+Use \e tqmake as before to generate a makefile. If you rename \e
+main.cpp temporarily, you will see the message and \e tqmake will stop
+processing.
+
+\section1 Checking for more than one condition
+
+Suppose you use Windows and you want to be able to see the tqDebug()
+statements when you run your application on the command line. Unless
+you build your application with the console setting, you won't see the
+output. We can easily put \e console on the CONFIG line so that on
+Windows the makefile will have this setting. But let's say that we
+only want to add the CONFIG line if we are running on Windows \e and when
+\e debug is already on the CONFIG line. This requires using two
+nested scopes; just create one scope, then create the other inside
+that one. Put the settings to be processed inside the last scope,
+like this:
+
+\code
+ win32 {
+ debug {
+ CONFIG += console
+ }
+ }
+\endcode
+
+Nested scopes can be joined together using colons, so the final
+project file looks like this:
+
+\code
+ CONFIG += qt debug
+ HEADERS += hello.h
+ SOURCES += hello.cpp
+ SOURCES += main.cpp
+ win32 {
+ SOURCES += hellowin.cpp
+ }
+ unix {
+ SOURCES += hellounix.cpp
+ }
+ !exists( main.cpp ) {
+ error( "No main.cpp file found" )
+ }
+ win32:debug {
+ CONFIG += console
+ }
+\endcode
+
+
+That's it! You have now completed the tutorial for \e tqmake, and are
+ready to write project files for your development projects.
diff --git a/tqmake/examples/precompile/main.cpp b/tqmake/examples/precompile/main.cpp
new file mode 100644
index 000000000..0c8218040
--- /dev/null
+++ b/tqmake/examples/precompile/main.cpp
@@ -0,0 +1,18 @@
+#include
+#include
+#include
+#include "myobject.h"
+#include "mydialog.h"
+
+int main(int argc, char **argv)
+{
+ TQApplication app(argc, argv);
+
+ MyObject obj;
+ MyDialog dia;
+ app.setMainWidget( &dia );
+ dia.connect( dia.aButton, TQ_SIGNAL(clicked()), TQ_SLOT(close()) );
+ dia.show();
+
+ return app.exec();
+}
diff --git a/tqmake/examples/precompile/mydialog.ui b/tqmake/examples/precompile/mydialog.ui
new file mode 100644
index 000000000..081ddfa87
--- /dev/null
+++ b/tqmake/examples/precompile/mydialog.ui
@@ -0,0 +1,29 @@
+
+MyDialog
+
+
+ MyDialog
+
+
+ Mach 2!
+
+
+
+
+ aLabel
+
+
+ Join the life in the fastlane; - PCH enable your project today! -
+
+
+
+
+ aButton
+
+
+ &Quit
+
+
+
+
+
diff --git a/tqmake/examples/precompile/myobject.cpp b/tqmake/examples/precompile/myobject.cpp
new file mode 100644
index 000000000..da24e625d
--- /dev/null
+++ b/tqmake/examples/precompile/myobject.cpp
@@ -0,0 +1,14 @@
+#include
+#include
+#include "myobject.h"
+
+MyObject::MyObject()
+ : TQObject()
+{
+ std::cout << "MyObject::MyObject()\n";
+}
+
+MyObject::~MyObject()
+{
+ tqDebug("MyObject::~MyObject()");
+}
diff --git a/tqmake/examples/precompile/myobject.h b/tqmake/examples/precompile/myobject.h
new file mode 100644
index 000000000..90c0b865b
--- /dev/null
+++ b/tqmake/examples/precompile/myobject.h
@@ -0,0 +1,8 @@
+#include
+
+class MyObject : public TQObject
+{
+public:
+ MyObject();
+ ~MyObject();
+};
diff --git a/tqmake/examples/precompile/precompile.pro b/tqmake/examples/precompile/precompile.pro
new file mode 100644
index 000000000..1f02d1a17
--- /dev/null
+++ b/tqmake/examples/precompile/precompile.pro
@@ -0,0 +1,19 @@
+#############################################
+#
+# Example for using Precompiled Headers
+#
+#############################################
+TEMPLATE = app
+LANGUAGE = C++
+CONFIG += console precompile_header
+
+# Use Precompiled headers (PCH)
+PRECOMPILED_HEADER = stable.h
+
+HEADERS += stable.h \
+ myobject.h
+SOURCES += main.cpp \
+ myobject.cpp \
+ util.cpp
+FORMS = mydialog.ui
+
diff --git a/tqmake/examples/precompile/stable.h b/tqmake/examples/precompile/stable.h
new file mode 100644
index 000000000..a62e50179
--- /dev/null
+++ b/tqmake/examples/precompile/stable.h
@@ -0,0 +1,10 @@
+/* Add C includes here */
+
+#if defined __cplusplus
+/* Add C++ includes here */
+
+# include
+# include
+# include
+# include
+#endif
diff --git a/tqmake/examples/precompile/util.cpp b/tqmake/examples/precompile/util.cpp
new file mode 100644
index 000000000..6a1545255
--- /dev/null
+++ b/tqmake/examples/precompile/util.cpp
@@ -0,0 +1,7 @@
+void util_function_does_nothing()
+{
+ // Nothing here...
+ int x = 0;
+ ++x;
+}
+
diff --git a/tqmake/examples/tutorial/hello.cpp b/tqmake/examples/tutorial/hello.cpp
new file mode 100644
index 000000000..8ab5e5a5a
--- /dev/null
+++ b/tqmake/examples/tutorial/hello.cpp
@@ -0,0 +1,7 @@
+#include "hello.h"
+
+MyPushButton::MyPushButton( const TQString& text )
+ : TQPushButton( text, 0, "mypushbutton" )
+{
+ tqDebug( "My PushButton has been constructed" );
+}
diff --git a/tqmake/examples/tutorial/hello.h b/tqmake/examples/tutorial/hello.h
new file mode 100644
index 000000000..47eb7e3ab
--- /dev/null
+++ b/tqmake/examples/tutorial/hello.h
@@ -0,0 +1,7 @@
+#include
+
+class MyPushButton : public TQPushButton
+{
+public:
+ MyPushButton( const TQString& );
+};
diff --git a/tqmake/examples/tutorial/hellounix.cpp b/tqmake/examples/tutorial/hellounix.cpp
new file mode 100644
index 000000000..874d151aa
--- /dev/null
+++ b/tqmake/examples/tutorial/hellounix.cpp
@@ -0,0 +1,2 @@
+// This file does nothing, but check your makefile to see if there is a
+// reference to hello_win.cpp...there shouldn't be if tqmake is used on X11.
diff --git a/tqmake/examples/tutorial/hellowin.cpp b/tqmake/examples/tutorial/hellowin.cpp
new file mode 100644
index 000000000..14f2cda0a
--- /dev/null
+++ b/tqmake/examples/tutorial/hellowin.cpp
@@ -0,0 +1,2 @@
+// This file does nothing, but check your makefile to see if there is a
+// reference to hello_x11.cpp...there shouldn't be if tqmake is used on Windows.
diff --git a/tqmake/examples/tutorial/main.cpp b/tqmake/examples/tutorial/main.cpp
new file mode 100644
index 000000000..a908c9710
--- /dev/null
+++ b/tqmake/examples/tutorial/main.cpp
@@ -0,0 +1,14 @@
+#include |