make QMakeMetaInfo a little less inefficient with libtool .la files
[profile/ivi/qtbase.git] / qmake / Makefile.win32
1 !IF "$(QMAKESPEC)" == "win32-msvc" || "$(QMAKESPEC)" == "win32-msvc.net" || "$(QMAKESPEC)" == "win32-msvc2002" || "$(QMAKESPEC)" == "win32-msvc2003" || "$(QMAKESPEC)" == "win32-msvc2005" || "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-icc"
2
3 !if "$(SOURCE_PATH)" == ""
4 SOURCE_PATH = ..
5 !endif
6 !if "$(BUILD_PATH)" == ""
7 BUILD_PATH = ..
8 !endif
9
10 QMKSRC = $(SOURCE_PATH)\qmake
11
12 #
13 # specific stuff for NMake and ICC
14 #
15 !if "$(QMAKESPEC)" == "win32-icc"
16 CXX         = icl
17 LINK        = link
18 CFLAGS      = /Zc:forScope
19 !else
20 CXX         = cl
21 LINK        = link
22 !endif
23
24 #
25 # specific stuff for VS2005
26 #
27 !if "$(QMAKESPEC)" == "win32-msvc2005"
28 CFLAGS_EXTRA      = /Zc:wchar_t-
29 !elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012"
30 CFLAGS_EXTRA      = /MP
31 !endif
32
33 CFLAGS_BARE = -c -Fo./ \
34               -W3 -nologo -O1 \
35               $(CFLAGS_EXTRA) \
36               -I$(QMKSRC) -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac -I$(QMKSRC)\generators\integrity \
37               -I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION) -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION)\QtCore \
38               -I$(BUILD_PATH)\src\corelib\global -DHAVE_QCONFIG_CPP \
39               -I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC)  \
40               -I$(SOURCE_PATH)\tools\shared \
41               -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED \
42               -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \
43               -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
44               -DUNICODE
45 CFLAGS   = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS)
46
47 CXXFLAGS_BARE = $(CFLAGS_BARE)
48 CXXFLAGS = $(CFLAGS)
49
50 LFLAGS      =
51 LIBS        = ole32.lib advapi32.lib
52 LINKQMAKE   = $(LINK) $(LFLAGS) -OUT:qmake.exe $(OBJS) $(QTOBJS) $(LIBS)
53 ADDCLEAN    = vc60.pdb vc70.pdb qmake.pdb qmake.ilk
54
55 !ELSE
56 !ERROR Unsupported compiler for this Makefile
57 !ENDIF
58
59 #qmake code
60 OBJS        = project.obj main.obj makefile.obj unixmake.obj unixmake2.obj mingw_make.obj \
61               option.obj winmakefile.obj projectgenerator.obj property.obj meta.obj \
62               makefiledeps.obj metamakefile.obj xmloutput.obj pbuilder_pbx.obj \
63               msvc_nmake.obj msvc_vcproj.obj msvc_vcxproj.obj \
64               msvc_objectmodel.obj msbuild_objectmodel.obj registry.obj \
65               gbuild.obj cesdkhandler.obj
66
67 !IFDEF QMAKE_OPENSOURCE_EDITION
68 CFLAGS      = $(CFLAGS) -DQMAKE_OPENSOURCE_EDITION
69 !ENDIF
70
71 #qt code
72 QTOBJS= \
73         qbitarray.obj \
74         qbuffer.obj \
75         qcryptographichash.obj \
76         qfilesystementry.obj \
77         qfilesystemengine.obj \
78         qfilesystemengine_win.obj \
79         qfilesystemiterator_win.obj \
80         qfsfileengine.obj \
81         qfsfileengine_iterator.obj \
82         qarraydata.obj \
83         qbytearray.obj \
84         qvsnprintf.obj \
85         qbytearraymatcher.obj \
86         qdatetime.obj \
87         qdir.obj \
88         qdiriterator.obj \
89         qfiledevice.obj \
90         qfile.obj \
91         qtemporaryfile.obj \
92         qabstractfileengine.obj \
93         qfsfileengine_win.obj \
94         qsystemlibrary.obj \
95         qfileinfo.obj \
96         qglobal.obj \
97         qhash.obj \
98         qiodevice.obj \
99         qlist.obj \
100         qlinkedlist.obj \
101         qlocale.obj \
102         qlocale_tools.obj \
103         qlocale_win.obj \
104         qmalloc.obj \
105         qmap.obj \
106         qregexp.obj \
107         qtextcodec.obj \
108         qutfcodec.obj \
109         qstring.obj \
110         qstringlist.obj \
111         qstringbuilder.obj \
112         qsystemerror.obj \
113         qtextstream.obj \
114         qdatastream.obj \
115         quuid.obj \
116         qvector.obj \
117         qsettings.obj \
118         qlibraryinfo.obj \
119         qvariant.obj \
120         qsettings_win.obj \
121         qmetatype.obj \
122         qxmlstream.obj \
123         qxmlutils.obj \
124         qnumeric.obj \
125         qlogging.obj
126
127 first all: qmake.exe
128
129 qmake.exe: $(OBJS) $(QTOBJS)
130         $(LINKQMAKE) qmake_pch.obj
131         -copy qmake.exe $(BUILD_PATH)\bin\qmake.exe
132
133 clean::
134         -del $(QTOBJS)
135         -del $(OBJS)
136         -del qmake_pch.obj
137         -del qmake_pch.pch
138         -del qsystemlibrary.obj
139         -del vc60.pdb
140         -del vc70.pdb
141         -del qmake.pdb
142         -del qmake.ilk
143         -del qmake.tds
144
145 distclean:: clean
146         -del qmake
147
148 .c.obj:
149         $(CXX) $(CFLAGS) $<
150
151 .cpp.obj:
152         $(CXX) $(CXXFLAGS) $<
153
154 .cc.obj:
155         $(CXX) $(CXXFLAGS) $<
156
157 .cxx.obj:
158         $(CXX) $(CXXFLAGS) $<
159
160 $(OBJS): qmake_pch.obj
161
162 $(QTOBJS): qmake_pch.obj
163
164 qmake_pch.obj:
165         $(CXX) $(CXXFLAGS_BARE) -c -Yc -Fpqmake_pch.pch -TP $(QMKSRC)\qmake_pch.h
166
167 {$(SOURCE_PATH)\qmake\generators\mac}.cpp{}.obj::
168         $(CXX) $(CXXFLAGS) $<
169
170 {$(SOURCE_PATH)\qmake\generators\integrity}.cpp{}.obj::
171         $(CXX) $(CXXFLAGS) $<
172
173 {$(SOURCE_PATH)\qmake\generators\unix}.cpp{}.obj::
174         $(CXX) $(CXXFLAGS) $<
175
176 {$(SOURCE_PATH)\qmake\generators\win32}.cpp{}.obj::
177         $(CXX) $(CXXFLAGS) $<
178
179 {$(SOURCE_PATH)\qmake\generators}.cpp{}.obj::
180         $(CXX) $(CXXFLAGS) $<
181
182 {$(SOURCE_PATH)\qmake}.cpp{}.obj::
183         $(CXX) $(CXXFLAGS) $<
184
185 {$(SOURCE_PATH)\src\3rdparty\md5}.cpp{}.obj::
186         $(CXX) $(CXXFLAGS) $<
187
188 {$(SOURCE_PATH)\src\corelib\codecs}.cpp{}.obj::
189         $(CXX) $(CXXFLAGS) $<
190
191 {$(SOURCE_PATH)\src\corelib\global}.cpp{}.obj::
192         $(CXX) $(CXXFLAGS) $<
193
194 {$(SOURCE_PATH)\src\corelib\io}.cpp{}.obj::
195         $(CXX) $(CXXFLAGS) $<
196
197 {$(SOURCE_PATH)\src\corelib\kernel}.cpp{}.obj::
198         $(CXX) $(CXXFLAGS) $<
199
200 {$(SOURCE_PATH)\src\corelib\plugin}.cpp{}.obj::
201         $(CXX) $(CXXFLAGS) $<
202
203 {$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj::
204         $(CXX) $(CXXFLAGS) $<
205
206 {$(SOURCE_PATH)\src\corelib\xml}.cpp{}.obj::
207         $(CXX) $(CXXFLAGS) $<
208
209 {$(SOURCE_PATH)\tools\shared\windows}.cpp{}.obj::
210         $(CXX) $(CXXFLAGS) $<