!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 = xilink CFLAGS_EXTRA = /Zc:forScope /Qstd=c++11 !elseif "$(QMAKESPEC)" == "win32-clang-msvc" CXX = clang-cl LINKER = lld-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 CFLAGS_PCH = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch PCH_OBJECT = qmake_pch.obj CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \ -W2 -nologo -O2 -std:c++17 -Zc:__cplusplus \ $(CFLAGS_EXTRA) \ -I$(QMKSRC) -I$(QMKSRC)\library -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac \ -I$(SOURCE_PATH)/src/3rdparty/tinycbor/src \ -I$(SOURCE_PATH)/src/3rdparty/pcre2/src \ -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 -DQT_USE_QSTRINGBUILDER -DUNICODE -D_ENABLE_EXTENDED_ALIGNED_STORAGE \ -DPCRE2_CODE_UNIT_WIDTH=16 -DHAVE_CONFIG_H -DPCRE2_STATIC -DPCRE2_DISABLE_JIT CFLAGS = $(CFLAGS_BARE) $(CFLAGS) CXXFLAGS_BARE = $(CFLAGS_BARE) CXXFLAGS = $(CFLAGS) $(CFLAGS_PCH) 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 \ qbytearraylist.obj \ qvsnprintf.obj \ qbytearraymatcher.obj \ qcalendar.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 \ qgregoriancalendar.obj \ qhash.obj \ qiodevice.obj \ qringbuffer.obj \ qdebug.obj \ qlocale.obj \ qlocale_tools.obj \ qlocale_win.obj \ qversionnumber.obj \ qmalloc.obj \ qoperatingsystemversion.obj \ qoperatingsystemversion_win.obj \ qromancalendar.obj \ qstring.obj \ qstringconverter.obj \ qstringlist.obj \ qstringbuilder.obj \ qsystemerror.obj \ qtextstream.obj \ qdatastream.obj \ quuid.obj \ qrandom.obj \ qsettings.obj \ qvariant.obj \ qsettings_win.obj \ qiterable.obj \ qmetacontainer.obj \ qmetatype.obj \ qnumeric.obj \ qlogging.obj \ qcborstreamwriter.obj \ qcborvalue.obj \ qjsoncbor.obj \ qjsondocument.obj \ qjsonparser.obj \ qjsonarray.obj \ qjsonobject.obj \ qjsonvalue.obj \ qregularexpression.obj \ pcre2_auto_possess.obj \ pcre2_chartables.obj \ pcre2_compile.obj \ pcre2_config.obj \ pcre2_context.obj \ pcre2_dfa_match.obj \ pcre2_error.obj \ pcre2_extuni.obj \ pcre2_find_bracket.obj \ pcre2_jit_compile.obj \ pcre2_maketables.obj \ pcre2_match.obj \ pcre2_match_data.obj \ pcre2_newline.obj \ pcre2_ord2utf.obj \ pcre2_pattern_info.obj \ pcre2_script_run.obj \ pcre2_serialize.obj \ pcre2_string_utils.obj \ pcre2_study.obj \ pcre2_substitute.obj \ pcre2_substring.obj \ pcre2_tables.obj \ pcre2_ucd.obj \ pcre2_valid_utf.obj \ pcre2_xclass.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\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\text}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\time}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< {$(SOURCE_PATH)\src\3rdparty\pcre2\src}.c{}.obj:: $(CXX) $(CFLAGS) $< # Make sure qlibraryinfo.obj isn't compiled with PCH enabled 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