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/mac \ -Igenerators/symbian -Igenerators/os2 \ -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)/src/corelib/xml \ -I$(SOURCE_PATH)/mkspecs/os2-g++ \ -I$(SOURCE_PATH)/tools/shared \ -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 \ -DQT_BOOTSTRAPPED 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 (taken from qmake.pri) 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_vcproj.cpp \ generators/win32/msvc_vcxproj.cpp \ generators/win32/msvc_objectmodel.cpp \ generators/win32/msbuild_objectmodel.cpp \ generators/symbian/symmake.cpp \ generators/symbian/symmake_abld.cpp \ generators/symbian/symmake_sbsv2.cpp \ generators/symbian/initprojectdeploy_symbian.cpp \ generators/symbian/symbiancommon.cpp \ generators/os2/gnumake.cpp # Qt code (taken from qmake.pri) 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/qlist.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/codecs/qtextcodec.cpp \ $(SOURCE_PATH)/src/corelib/codecs/qutfcodec.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/xml/qxmlstream.cpp \ $(SOURCE_PATH)/src/corelib/xml/qxmlutils.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)/tools/shared/windows/registry.cpp \ $(SOURCE_PATH)/tools/shared/symbian/epocroot.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))))