1#
2# qmake configuration for win32-g++
3#
4# Written for MinGW
5#
6# Cross compile example for i686-w64-mingw32-g++:
7#   configure -xplatform win32-g++ -device-option CROSS_COMPILE=i686-w64-mingw32-
8#
9
10MAKEFILE_GENERATOR	= MINGW
11
12load(device_config)
13
14equals(QMAKE_HOST.os, Windows): EXE_SUFFIX = .exe
15
16TEMPLATE		= app
17CONFIG			+= qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
18QT			+= core gui
19DEFINES			+= UNICODE
20QMAKE_COMPILER_DEFINES  += __GNUC__ WIN32
21
22QMAKE_EXT_OBJ           = .o
23QMAKE_EXT_RES           = _res.o
24
25QMAKE_CC		= $${CROSS_COMPILE}gcc
26QMAKE_LEX		= flex
27QMAKE_LEXFLAGS		=
28QMAKE_YACC		= byacc
29QMAKE_YACCFLAGS		= -d
30QMAKE_CFLAGS		= -pipe
31QMAKE_CFLAGS_DEPS	= -M
32QMAKE_CFLAGS_WARN_ON	= -Wall -Wextra
33QMAKE_CFLAGS_WARN_OFF	= -w
34QMAKE_CFLAGS_RELEASE	= -O2
35QMAKE_CFLAGS_DEBUG	= -g
36QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses
37
38QMAKE_CXX		= $${CROSS_COMPILE}g++
39QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
40QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
41QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
42QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
43QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
44QMAKE_CXXFLAGS_DEBUG	= $$QMAKE_CFLAGS_DEBUG
45QMAKE_CXXFLAGS_YACC	= $$QMAKE_CFLAGS_YACC
46QMAKE_CXXFLAGS_THREAD	= $$QMAKE_CFLAGS_THREAD
47QMAKE_CXXFLAGS_RTTI_ON	= -frtti
48QMAKE_CXXFLAGS_RTTI_OFF	= -fno-rtti
49QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
50QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
51
52QMAKE_INCDIR		=
53QMAKE_INCDIR_QT		= $$[QT_INSTALL_HEADERS]
54QMAKE_LIBDIR_QT		= $$[QT_INSTALL_LIBS]
55
56QMAKE_RUN_CC		= $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
57QMAKE_RUN_CC_IMP	= $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
58QMAKE_RUN_CXX		= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
59QMAKE_RUN_CXX_IMP	= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
60
61QMAKE_LINK		= $${CROSS_COMPILE}g++
62QMAKE_LINK_C		= $${CROSS_COMPILE}gcc
63QMAKE_LFLAGS		=
64QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
65QMAKE_LFLAGS_EXCEPTIONS_OFF =
66QMAKE_LFLAGS_RELEASE	= -Wl,-s
67QMAKE_LFLAGS_DEBUG	=
68QMAKE_LFLAGS_CONSOLE	= -Wl,-subsystem,console
69QMAKE_LFLAGS_WINDOWS	= -Wl,-subsystem,windows
70QMAKE_LFLAGS_DLL        = -shared
71QMAKE_LINK_OBJECT_MAX	= 10
72QMAKE_LINK_OBJECT_SCRIPT= object_script
73QMAKE_PREFIX_STATICLIB  = lib
74QMAKE_EXTENSION_STATICLIB = a
75
76
77QMAKE_LIBS		=
78QMAKE_LIBS_CORE         = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
79QMAKE_LIBS_GUI          = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
80QMAKE_LIBS_NETWORK      = -lws2_32
81QMAKE_LIBS_OPENGL       = -lglu32 -lopengl32 -lgdi32 -luser32
82QMAKE_LIBS_COMPAT       = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
83QMAKE_LIBS_QT_ENTRY     = -lmingw32 -lqtmain
84
85!isEmpty(QMAKE_SH) {
86    MINGW_IN_SHELL      = 1
87	QMAKE_DIR_SEP		= /
88	QMAKE_QMAKE		~= s,\\\\,/,
89	QMAKE_COPY		= cp
90	QMAKE_COPY_DIR		= cp -r
91	QMAKE_MOVE		= mv
92	QMAKE_DEL_FILE		= rm
93	QMAKE_MKDIR		= mkdir -p
94	QMAKE_DEL_DIR		= rmdir
95    QMAKE_CHK_DIR_EXISTS = test -d
96} else {
97	QMAKE_COPY		= copy /y
98	QMAKE_COPY_DIR		= xcopy /s /q /y /i
99	QMAKE_MOVE		= move
100	QMAKE_DEL_FILE		= del
101	QMAKE_MKDIR		= mkdir
102	QMAKE_DEL_DIR		= rmdir
103    QMAKE_CHK_DIR_EXISTS	= if not exist
104}
105
106QMAKE_MOC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc$${EXE_SUFFIX}
107QMAKE_UIC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic$${EXE_SUFFIX}
108QMAKE_IDC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc$${EXE_SUFFIX}
109QMAKE_RCC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}rcc$${EXE_SUFFIX}
110
111QMAKE_IDL		= midl
112QMAKE_LIB		= $${CROSS_COMPILE}ar -ru
113QMAKE_RC		= $${CROSS_COMPILE}windres
114QMAKE_ZIP		= zip -r -9
115
116QMAKE_STRIP		= $${CROSS_COMPILE}strip
117QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
118load(qt_config)
119