!if "$(SOURCE_PATH)" == "" SOURCE_PATH = .. !endif !if "$(BUILD_PATH)" == "" BUILD_PATH = .. !endif QMKSRC = $(SOURCE_PATH)\qmake # # per-compiler options # !if "$(QMAKESPEC)" == "win32-icc" CXX = icl LINKER = link CFLAGS_EXTRA = /Zc:forScope /Qstd=c++11 !elseif "$(QMAKESPEC)" == "win32-clang-msvc2015" CXX = clang-cl LINKER = link CFLAGS_EXTRA = -fms-compatibility-version=19.00.23506 -Wno-microsoft-enum-value !else CXX = cl LINKER = link ! if "$(QMAKESPEC)" == "win32-msvc2013" CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS $(CFLAGS_CRT) ! elseif "$(QMAKESPEC)" == "win32-msvc2015" || "$(QMAKESPEC)" == "win32-clang-msvc2015" CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS /Zc:strictStrings /w44456 /w44457 /w44458 /wd4577 $(CFLAGS_CRT) ! else ! error Unsupported compiler for this Makefile ! endif !endif # !win32-icc !if "$(QMAKESPEC)" != "win32-clang-msvc2015" CFLAGS_PCH = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch PCH_OBJECT = qmake_pch.obj !endif CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \ -W3 -nologo -O1 \ $(CFLAGS_EXTRA) \ -I$(QMKSRC) -I$(QMKSRC)\library -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac -I$(QMKSRC)\generators\integrity \ -I$(INC_PATH) -I$(INC_PATH)\QtCore -I$(INC_PATH)\QtCore\$(QT_VERSION) -I$(INC_PATH)\QtCore\$(QT_VERSION)\QtCore \ -I$(BUILD_PATH)\src\corelib\global \ -I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \ -I$(SOURCE_PATH)\tools\shared \ -DQT_VERSION_STR=\"$(QT_VERSION)\" -DQT_VERSION_MAJOR=$(QT_MAJOR_VERSION) -DQT_VERSION_MINOR=$(QT_MINOR_VERSION) -DQT_VERSION_PATCH=$(QT_PATCH_VERSION) \ -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \ -DQT_NO_FOREACH -DUNICODE CFLAGS = $(CFLAGS_PCH) $(CFLAGS_BARE) $(CFLAGS) CXXFLAGS_BARE = $(CFLAGS_BARE) CXXFLAGS = $(CFLAGS) LFLAGS = LIBS = ole32.lib advapi32.lib shell32.lib LINKQMAKE = $(LINKER) $(LFLAGS) -OUT:qmake.exe $(OBJS) $(QTOBJS) $(LIBS) ADDCLEAN = qmake.pdb qmake.ilk #qmake code OBJS = project.obj main.obj ioutils.obj proitems.obj qmakevfs.obj \ qmakeglobals.obj qmakeparser.obj qmakeevaluator.obj qmakebuiltins.obj \ makefile.obj unixmake.obj unixmake2.obj mingw_make.obj \ option.obj winmakefile.obj projectgenerator.obj property.obj meta.obj \ makefiledeps.obj metamakefile.obj xmloutput.obj \ msvc_nmake.obj msvc_vcproj.obj msvc_vcxproj.obj \ msvc_objectmodel.obj msbuild_objectmodel.obj registry.obj #qt code QTOBJS= \ qbitarray.obj \ qbuffer.obj \ qcryptographichash.obj \ qfilesystementry.obj \ qfilesystemengine.obj \ qfilesystemengine_win.obj \ qfilesystemiterator_win.obj \ qfsfileengine.obj \ qfsfileengine_iterator.obj \ qarraydata.obj \ qbytearray.obj \ qvsnprintf.obj \ qbytearraymatcher.obj \ qdatetime.obj \ qdir.obj \ qdiriterator.obj \ qfiledevice.obj \ qfile.obj \ qtemporaryfile.obj \ qabstractfileengine.obj \ qfsfileengine_win.obj \ qsystemlibrary.obj \ qfileinfo.obj \ qglobal.obj \ qhash.obj \ qiodevice.obj \ qringbuffer.obj \ qdebug.obj \ qlist.obj \ qlinkedlist.obj \ qlocale.obj \ qlocale_tools.obj \ qlocale_win.obj \ qmalloc.obj \ qmap.obj \ qregexp.obj \ qtextcodec.obj \ qutfcodec.obj \ qstring.obj \ qstring_compat.obj \ qstringlist.obj \ qstringbuilder.obj \ qsystemerror.obj \ qtextstream.obj \ qdatastream.obj \ quuid.obj \ qvector.obj \ qsettings.obj \ qlibraryinfo.obj \ qvariant.obj \ qsettings_win.obj \ qmetatype.obj \ qxmlstream.obj \ qxmlutils.obj \ qnumeric.obj \ qlogging.obj \ qjson.obj \ qjsondocument.obj \ qjsonparser.obj \ qjsonarray.obj \ qjsonobject.obj \ qjsonvalue.obj first all: qmake.exe qmake.exe: $(OBJS) $(QTOBJS) $(LINKQMAKE) $(PCH_OBJECT) -copy qmake.exe $(BUILD_PATH)\bin\qmake.exe clean:: -del $(QTOBJS) -del $(OBJS) -del qmake_pch.obj -del qmake_pch.pch -del qmake.pdb -del qmake.ilk -del qmake.tds distclean:: clean -del qmake.exe -del $(BUILD_PATH)\bin\qmake.exe -del Makefile .c.obj: $(CXX) $(CFLAGS) $< .cpp.obj: $(CXX) $(CXXFLAGS) $< .cc.obj: $(CXX) $(CXXFLAGS) $< .cxx.obj: $(CXX) $(CXXFLAGS) $< $(OBJS): $(PCH_OBJECT) $(QTOBJS): $(PCH_OBJECT) qlibraryinfo.obj: $(BUILD_PATH)\src\corelib\global\qconfig.cpp qmake_pch.obj: $(CXX) $(CXXFLAGS_BARE) -c -Yc -Fpqmake_pch.pch -TP $(QMKSRC)\qmake_pch.h {$(SOURCE_PATH)\qmake\library}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\qmake\generators\mac}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\qmake\generators\integrity}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\qmake\generators\unix}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\qmake\generators\win32}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\qmake\generators}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\qmake}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\3rdparty\md5}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\codecs}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\global}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\io}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\kernel}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\plugin}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\xml}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\json}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\tools\shared\windows}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< # Make sure qstring_compat.obj isn't compiled with PCH enabled qstring_compat.obj: $(SOURCE_PATH)\src\corelib\tools\qstring_compat.cpp $(CXX) -c $(CXXFLAGS_BARE) $(SOURCE_PATH)\src\corelib\tools\qstring_compat.cpp