!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-msvc" CXX = clang-cl LINKER = link CFLAGS_EXTRA = -fms-compatibility-version=19.00.23506 -Wno-microsoft-enum-value !else CXX = cl LINKER = link CFLAGS_EXTRA = /MP /wd4577 $(CFLAGS_CRT) !endif # !win32-icc !if "$(QMAKESPEC)" != "win32-clang-msvc" CFLAGS_PCH = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch PCH_OBJECT = qmake_pch.obj !endif CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \ -W2 -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$(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) \ -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS \ -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 -D_ENABLE_EXTENDED_ALIGNED_STORAGE CFLAGS = $(CFLAGS_PCH) $(CFLAGS_BARE) $(CFLAGS) CXXFLAGS_BARE = $(CFLAGS_BARE) CXXFLAGS = $(CFLAGS) LFLAGS = LIBS = ole32.lib advapi32.lib shell32.lib netapi32.lib 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 \ qendian.obj \ qglobal.obj \ qhash.obj \ qiodevice.obj \ qringbuffer.obj \ qdebug.obj \ qlist.obj \ qlinkedlist.obj \ qlocale.obj \ qlocale_tools.obj \ qlocale_win.obj \ qversionnumber.obj \ qmalloc.obj \ qmap.obj \ qoperatingsystemversion.obj \ qoperatingsystemversion_win.obj \ qregexp.obj \ qtextcodec.obj \ qutfcodec.obj \ qstring.obj \ qstring_compat.obj \ qstringlist.obj \ qstringbuilder.obj \ qsystemerror.obj \ qtextstream.obj \ qdatastream.obj \ quuid.obj \ qrandom.obj \ qsettings.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: $(BUILD_PATH)\bin\qmake.exe binary: $(BUILD_PATH)\qmake\qmake.exe $(BUILD_PATH)\bin\qmake.exe: $(OBJS) $(QTOBJS) qlibraryinfo.obj $(LINKER) $(LFLAGS) /OUT:$(BUILD_PATH)\bin\qmake.exe $(OBJS) $(QTOBJS) qlibraryinfo.obj $(PCH_OBJECT) $(LIBS) $(BUILD_PATH)\qmake\qmake.exe: $(OBJS) $(QTOBJS) qlibraryinfo_final.obj $(LINKER) $(LFLAGS) /OUT:$(BUILD_PATH)\qmake\qmake.exe $(OBJS) $(QTOBJS) qlibraryinfo_final.obj $(PCH_OBJECT) $(LIBS) clean:: -del $(QTOBJS) qlibraryinfo.obj qlibraryinfo_final.obj -del $(OBJS) -del qmake_pch.obj -del qmake_pch.pch -del qmake.pdb -del qmake.ilk -del qmake.tds distclean:: clean -del $(BUILD_PATH)\bin\qmake.exe -del $(BUILD_PATH)\qmake\qmake.exe -del Makefile .cpp.obj: $(CXX) $(CXXFLAGS) $< $(OBJS): $(PCH_OBJECT) $(QTOBJS): $(PCH_OBJECT) qlibraryinfo.obj: $(PCH_OBJECT) qlibraryinfo_final.obj: $(PCH_OBJECT) 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\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\serialization}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< # Make sure qstring_compat.obj and qlibraryinfo.obj aren'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 qlibraryinfo.obj: $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp $(CXX) $(CXXFLAGS_BARE) -DQT_BUILD_QMAKE_BOOTSTRAP $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp qlibraryinfo_final.obj: $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp $(BUILD_PATH)\src\corelib\global\qconfig.cpp $(CXX) $(CXXFLAGS) -Foqlibraryinfo_final.obj $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp