ifeq "$(SOURCE_PATH)" "" SOURCE_PATH = .. endif # CMD.EXE version ifeq "$(BUILD_PATH)" "" BUILD_PATH = .. endif # # specific stuff for GNU make # CXX = g++ CFLAGS = -O -s -Zomf \ -I. -Igenerators -Igenerators/unix \ -Igenerators/win32 -Igenerators/os2 -Igenerators/mac \ -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \ -I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore \ -I$(BUILD_PATH)/src/corelib/global \ -I$(BUILD_PATH)/include/QtScript \ -I$(SOURCE_PATH)/mkspecs/os2-g++ \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \ -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DHAVE_QCONFIG_CPP \ -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM CXXFLAGS = $(CFLAGS) ifeq "$(EMXOMFLD_TYPE)" "WLINK" LFLAGS = -s -Zomf -Zstack 0x2000 -Zlinker DISABLE\ 1121 else LFLAGS = -s -Zomf -Zstack 0x2000 -Zlinker /PM:VIO -Zlinker /EXEPACK:2 endif LIBS = -lregistry.dll LINK = g++ $(LFLAGS) ADDCLEAN = ifdef QMAKE_OPENSOURCE_EDITION CFLAGS += -DQMAKE_OPENSOURCE_EDITION endif # make sure the output dir matches the one in qmake.pro OBJECTS_DIR = release-shared # qmake code SOURCES = \ project.cpp \ property.cpp \ main.cpp \ generators\makefile.cpp \ generators\unix\unixmake2.cpp \ generators\unix\unixmake.cpp \ meta.cpp \ option.cpp \ generators\win32\winmakefile.cpp \ generators\win32\mingw_make.cpp \ generators\makefiledeps.cpp \ generators\metamakefile.cpp \ generators\mac\pbuilder_pbx.cpp \ generators\xmloutput.cpp \ generators\win32\borland_bmake.cpp \ generators\win32\msvc_nmake.cpp \ generators\projectgenerator.cpp \ generators\win32\msvc_dsp.cpp \ generators\win32\msvc_vcproj.cpp \ generators\win32\msvc_objectmodel.cpp \ generators\os2\gnumake.cpp # Qt code SOURCES += \ $(SOURCE_PATH)\src\corelib\tools\qbitarray.cpp \ $(SOURCE_PATH)\src\corelib\io\qbuffer.cpp \ $(SOURCE_PATH)\src\corelib\tools\qbytearray.cpp \ $(SOURCE_PATH)\src\corelib\tools\qbytearraymatcher.cpp \ $(SOURCE_PATH)\src\corelib\tools\qcryptographichash.cpp \ $(SOURCE_PATH)\src\corelib\tools\qdatetime.cpp \ $(SOURCE_PATH)\src\corelib\io\qdir.cpp \ $(SOURCE_PATH)\src\corelib\io\qdiriterator.cpp \ $(SOURCE_PATH)\src\corelib\io\qfile.cpp \ $(SOURCE_PATH)\src\corelib\io\qabstractfileengine.cpp \ $(SOURCE_PATH)\src\corelib\io\qfileinfo.cpp \ $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp \ $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator.cpp \ $(SOURCE_PATH)\src\corelib\global\qglobal.cpp \ $(SOURCE_PATH)\src\corelib\global\qnumeric.cpp \ $(SOURCE_PATH)\src\corelib\tools\qhash.cpp \ $(SOURCE_PATH)\src\corelib\io\qiodevice.cpp \ $(SOURCE_PATH)\src\corelib\tools\qlistdata.cpp \ $(SOURCE_PATH)\src\corelib\tools\qlinkedlist.cpp \ $(SOURCE_PATH)\src\corelib\tools\qlocale.cpp \ $(SOURCE_PATH)\src\corelib\global\qmalloc.cpp \ $(SOURCE_PATH)\src\corelib\tools\qmap.cpp \ $(SOURCE_PATH)\src\corelib\kernel\qmetatype.cpp \ $(SOURCE_PATH)\src\corelib\tools\qregexp.cpp \ $(SOURCE_PATH)\src\corelib\tools\qstring.cpp \ $(SOURCE_PATH)\src\corelib\tools\qstringlist.cpp \ $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp \ $(SOURCE_PATH)\src\corelib\io\qtextstream.cpp \ $(SOURCE_PATH)\src\corelib\io\qurl.cpp \ $(SOURCE_PATH)\src\corelib\plugin\quuid.cpp \ $(SOURCE_PATH)\src\corelib\io\qsettings.cpp \ $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp \ $(SOURCE_PATH)\src\corelib\kernel\qvariant.cpp \ $(SOURCE_PATH)\src\corelib\tools\qvector.cpp \ $(SOURCE_PATH)\src\corelib\tools\qvsnprintf.cpp \ $(SOURCE_PATH)\src\corelib\io\qfsfileengine_os2.cpp \ $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_os2.cpp \ $(SOURCE_PATH)\src\corelib\io\qsettings_os2.cpp \ $(SOURCE_PATH)\src\script\qscriptasm.cpp \ $(SOURCE_PATH)\src\script\qscriptast.cpp \ $(SOURCE_PATH)\src\script\qscriptastvisitor.cpp \ $(SOURCE_PATH)\src\script\qscriptcompiler.cpp \ $(SOURCE_PATH)\src\script\qscriptecmaarray.cpp \ $(SOURCE_PATH)\src\script\qscriptecmaboolean.cpp \ $(SOURCE_PATH)\src\script\qscriptecmacore.cpp \ $(SOURCE_PATH)\src\script\qscriptecmadate.cpp \ $(SOURCE_PATH)\src\script\qscriptecmafunction.cpp \ $(SOURCE_PATH)\src\script\qscriptecmaglobal.cpp \ $(SOURCE_PATH)\src\script\qscriptecmamath.cpp \ $(SOURCE_PATH)\src\script\qscriptecmanumber.cpp \ $(SOURCE_PATH)\src\script\qscriptecmaobject.cpp \ $(SOURCE_PATH)\src\script\qscriptecmaregexp.cpp \ $(SOURCE_PATH)\src\script\qscriptecmastring.cpp \ $(SOURCE_PATH)\src\script\qscriptecmaerror.cpp \ $(SOURCE_PATH)\src\script\qscriptcontext_p.cpp \ $(SOURCE_PATH)\src\script\qscriptengine.cpp \ $(SOURCE_PATH)\src\script\qscriptengine_p.cpp \ $(SOURCE_PATH)\src\script\qscriptengineagent.cpp \ $(SOURCE_PATH)\src\script\qscriptextenumeration.cpp \ $(SOURCE_PATH)\src\script\qscriptextvariant.cpp \ $(SOURCE_PATH)\src\script\qscriptcontext.cpp \ $(SOURCE_PATH)\src\script\qscriptcontextinfo.cpp \ $(SOURCE_PATH)\src\script\qscriptfunction.cpp \ $(SOURCE_PATH)\src\script\qscriptgrammar.cpp \ $(SOURCE_PATH)\src\script\qscriptlexer.cpp \ $(SOURCE_PATH)\src\script\qscriptclassdata.cpp \ $(SOURCE_PATH)\src\script\qscriptparser.cpp \ $(SOURCE_PATH)\src\script\qscriptprettypretty.cpp \ $(SOURCE_PATH)\src\script\qscriptxmlgenerator.cpp \ $(SOURCE_PATH)\src\script\qscriptsyntaxchecker.cpp \ $(SOURCE_PATH)\src\script\qscriptstring.cpp \ $(SOURCE_PATH)\src\script\qscriptclass.cpp \ $(SOURCE_PATH)\src\script\qscriptclasspropertyiterator.cpp \ $(SOURCE_PATH)\src\script\qscriptvalueiteratorimpl.cpp \ $(SOURCE_PATH)\src\script\qscriptvalueiterator.cpp \ $(SOURCE_PATH)\src\script\qscriptvalueimpl.cpp \ $(SOURCE_PATH)\src\script\qscriptvalue.cpp define SRC_TO_OBJ $(OBJECTS_DIR)\$(basename $(notdir $(1))).obj endef OBJECTS = $(foreach src,$(SOURCES),$(call SRC_TO_OBJ,$(src))) qmake.exe: $(OBJECTS_DIR) $(OBJECTS) $(LINK) -o $@ $(OBJECTS) $(LIBS) ifneq "$(QMAKE_EXEPACK)" "" $(QMAKE_EXEPACK) $(QMAKE_EXEPACK_FLAGS) $@ $(QMAKE_EXEPACK_POST_FLAGS) endif copy $@ $(BUILD_PATH)\bin\ $(OBJECTS_DIR): @mkdir $(OBJECTS_DIR) Makefile: Makefile.os2-g++ @echo "Out of date, please rerun configure" define DEL_ONE clean:: -del $(1) >nul 2>&1 endef $(foreach file,$(OBJECTS) $(ADDCLEAN),$(eval $(call DEL_ONE,$(file)))) distclean:: clean -del qmake.exe >nul 2>&1 .SUFFIXES: .cpp .c .c.obj: $(CXX) -c $(CFLAGS) -o $@ $< .cpp.obj: $(CXX) -c $(CXXFLAGS) -o $@ $< define SRC_TO_OBJ_RULE $(call SRC_TO_OBJ,$(1)): $(1) $(CXX) -c $(CXXFLAGS) -o $$@ $$< endef $(foreach src,$(SOURCES),$(eval $(call SRC_TO_OBJ_RULE,$(src))))