source: trunk/qmake/Makefile.os2-g++@ 513

Last change on this file since 513 was 513, checked in by Dmitry A. Kuminov, 15 years ago

qmake: Revert to a static build that doesn't depend on Qt DLLs to simplify the build process (other tools like moc.exe are static too so it makes even less sense to put the dependency on one of them).

File size: 6.7 KB
Line 
1ifeq "$(SOURCE_PATH)" ""
2SOURCE_PATH = ..
3endif
4
5# CMD.EXE version
6
7ifeq "$(BUILD_PATH)" ""
8BUILD_PATH = ..
9endif
10
11#
12# specific stuff for GNU make
13#
14CXX = g++
15CFLAGS = -O -s -Zomf \
16 -I. -Igenerators -Igenerators/unix \
17 -Igenerators/win32 -Igenerators/os2 -Igenerators/mac \
18 -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
19 -I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore \
20 -I$(BUILD_PATH)/src/corelib/global \
21 -I$(BUILD_PATH)/include/QtScript \
22 -I$(SOURCE_PATH)/mkspecs/os2-g++ \
23 -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \
24 -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DHAVE_QCONFIG_CPP \
25 -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM
26CXXFLAGS = $(CFLAGS)
27ifeq "$(EMXOMFLD_TYPE)" "WLINK"
28LFLAGS = -s -Zomf -Zstack 0x2000 -Zlinker DISABLE\ 1121
29else
30LFLAGS = -s -Zomf -Zstack 0x2000 -Zlinker /PM:VIO -Zlinker /EXEPACK:2
31endif
32LIBS = -lregistry.dll
33LINK = g++ $(LFLAGS)
34ADDCLEAN =
35
36ifdef QMAKE_OPENSOURCE_EDITION
37CFLAGS += -DQMAKE_OPENSOURCE_EDITION
38endif
39
40# make sure the output dir matches the one in qmake.pro
41OBJECTS_DIR = release-shared
42
43# qmake code
44
45SOURCES = \
46 project.cpp \
47 property.cpp \
48 main.cpp \
49 generators\makefile.cpp \
50 generators\unix\unixmake2.cpp \
51 generators\unix\unixmake.cpp \
52 meta.cpp \
53 option.cpp \
54 generators\win32\winmakefile.cpp \
55 generators\win32\mingw_make.cpp \
56 generators\makefiledeps.cpp \
57 generators\metamakefile.cpp \
58 generators\mac\pbuilder_pbx.cpp \
59 generators\xmloutput.cpp \
60 generators\win32\borland_bmake.cpp \
61 generators\win32\msvc_nmake.cpp \
62 generators\projectgenerator.cpp \
63 generators\win32\msvc_dsp.cpp \
64 generators\win32\msvc_vcproj.cpp \
65 generators\win32\msvc_objectmodel.cpp \
66 generators\os2\gnumake.cpp
67
68# Qt code
69
70SOURCES += \
71 $(SOURCE_PATH)\src\corelib\tools\qbitarray.cpp \
72 $(SOURCE_PATH)\src\corelib\io\qbuffer.cpp \
73 $(SOURCE_PATH)\src\corelib\tools\qbytearray.cpp \
74 $(SOURCE_PATH)\src\corelib\tools\qbytearraymatcher.cpp \
75 $(SOURCE_PATH)\src\corelib\tools\qcryptographichash.cpp \
76 $(SOURCE_PATH)\src\corelib\tools\qdatetime.cpp \
77 $(SOURCE_PATH)\src\corelib\io\qdir.cpp \
78 $(SOURCE_PATH)\src\corelib\io\qdiriterator.cpp \
79 $(SOURCE_PATH)\src\corelib\io\qfile.cpp \
80 $(SOURCE_PATH)\src\corelib\io\qabstractfileengine.cpp \
81 $(SOURCE_PATH)\src\corelib\io\qfileinfo.cpp \
82 $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp \
83 $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator.cpp \
84 $(SOURCE_PATH)\src\corelib\global\qglobal.cpp \
85 $(SOURCE_PATH)\src\corelib\global\qnumeric.cpp \
86 $(SOURCE_PATH)\src\corelib\tools\qhash.cpp \
87 $(SOURCE_PATH)\src\corelib\io\qiodevice.cpp \
88 $(SOURCE_PATH)\src\corelib\tools\qlistdata.cpp \
89 $(SOURCE_PATH)\src\corelib\tools\qlinkedlist.cpp \
90 $(SOURCE_PATH)\src\corelib\tools\qlocale.cpp \
91 $(SOURCE_PATH)\src\corelib\global\qmalloc.cpp \
92 $(SOURCE_PATH)\src\corelib\tools\qmap.cpp \
93 $(SOURCE_PATH)\src\corelib\kernel\qmetatype.cpp \
94 $(SOURCE_PATH)\src\corelib\tools\qregexp.cpp \
95 $(SOURCE_PATH)\src\corelib\tools\qstring.cpp \
96 $(SOURCE_PATH)\src\corelib\tools\qstringlist.cpp \
97 $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp \
98 $(SOURCE_PATH)\src\corelib\io\qtextstream.cpp \
99 $(SOURCE_PATH)\src\corelib\io\qurl.cpp \
100 $(SOURCE_PATH)\src\corelib\plugin\quuid.cpp \
101 $(SOURCE_PATH)\src\corelib\io\qsettings.cpp \
102 $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp \
103 $(SOURCE_PATH)\src\corelib\kernel\qvariant.cpp \
104 $(SOURCE_PATH)\src\corelib\tools\qvector.cpp \
105 $(SOURCE_PATH)\src\corelib\tools\qvsnprintf.cpp \
106 $(SOURCE_PATH)\src\corelib\io\qfsfileengine_os2.cpp \
107 $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_os2.cpp \
108 $(SOURCE_PATH)\src\corelib\io\qsettings_os2.cpp \
109 $(SOURCE_PATH)\src\script\qscriptasm.cpp \
110 $(SOURCE_PATH)\src\script\qscriptast.cpp \
111 $(SOURCE_PATH)\src\script\qscriptastvisitor.cpp \
112 $(SOURCE_PATH)\src\script\qscriptcompiler.cpp \
113 $(SOURCE_PATH)\src\script\qscriptecmaarray.cpp \
114 $(SOURCE_PATH)\src\script\qscriptecmaboolean.cpp \
115 $(SOURCE_PATH)\src\script\qscriptecmacore.cpp \
116 $(SOURCE_PATH)\src\script\qscriptecmadate.cpp \
117 $(SOURCE_PATH)\src\script\qscriptecmafunction.cpp \
118 $(SOURCE_PATH)\src\script\qscriptecmaglobal.cpp \
119 $(SOURCE_PATH)\src\script\qscriptecmamath.cpp \
120 $(SOURCE_PATH)\src\script\qscriptecmanumber.cpp \
121 $(SOURCE_PATH)\src\script\qscriptecmaobject.cpp \
122 $(SOURCE_PATH)\src\script\qscriptecmaregexp.cpp \
123 $(SOURCE_PATH)\src\script\qscriptecmastring.cpp \
124 $(SOURCE_PATH)\src\script\qscriptecmaerror.cpp \
125 $(SOURCE_PATH)\src\script\qscriptcontext_p.cpp \
126 $(SOURCE_PATH)\src\script\qscriptengine.cpp \
127 $(SOURCE_PATH)\src\script\qscriptengine_p.cpp \
128 $(SOURCE_PATH)\src\script\qscriptengineagent.cpp \
129 $(SOURCE_PATH)\src\script\qscriptextenumeration.cpp \
130 $(SOURCE_PATH)\src\script\qscriptextvariant.cpp \
131 $(SOURCE_PATH)\src\script\qscriptcontext.cpp \
132 $(SOURCE_PATH)\src\script\qscriptcontextinfo.cpp \
133 $(SOURCE_PATH)\src\script\qscriptfunction.cpp \
134 $(SOURCE_PATH)\src\script\qscriptgrammar.cpp \
135 $(SOURCE_PATH)\src\script\qscriptlexer.cpp \
136 $(SOURCE_PATH)\src\script\qscriptclassdata.cpp \
137 $(SOURCE_PATH)\src\script\qscriptparser.cpp \
138 $(SOURCE_PATH)\src\script\qscriptprettypretty.cpp \
139 $(SOURCE_PATH)\src\script\qscriptxmlgenerator.cpp \
140 $(SOURCE_PATH)\src\script\qscriptsyntaxchecker.cpp \
141 $(SOURCE_PATH)\src\script\qscriptstring.cpp \
142 $(SOURCE_PATH)\src\script\qscriptclass.cpp \
143 $(SOURCE_PATH)\src\script\qscriptclasspropertyiterator.cpp \
144 $(SOURCE_PATH)\src\script\qscriptvalueiteratorimpl.cpp \
145 $(SOURCE_PATH)\src\script\qscriptvalueiterator.cpp \
146 $(SOURCE_PATH)\src\script\qscriptvalueimpl.cpp \
147 $(SOURCE_PATH)\src\script\qscriptvalue.cpp
148
149define SRC_TO_OBJ
150$(OBJECTS_DIR)\$(basename $(notdir $(1))).obj
151endef
152
153OBJECTS = $(foreach src,$(SOURCES),$(call SRC_TO_OBJ,$(src)))
154
155qmake.exe: $(OBJECTS_DIR) $(OBJECTS)
156 $(LINK) -o $@ $(OBJECTS) $(LIBS)
157ifneq "$(QMAKE_EXEPACK)" ""
158 $(QMAKE_EXEPACK) $(QMAKE_EXEPACK_FLAGS) $@ $(QMAKE_EXEPACK_POST_FLAGS)
159endif
160 copy $@ $(BUILD_PATH)\bin\
161
162$(OBJECTS_DIR):
163 @mkdir $(OBJECTS_DIR)
164
165Makefile: Makefile.os2-g++
166 @echo "Out of date, please rerun configure"
167
168define DEL_ONE
169clean::
170 -del $(1) >nul 2>&1
171endef
172
173$(foreach file,$(OBJECTS) $(ADDCLEAN),$(eval $(call DEL_ONE,$(file))))
174
175distclean:: clean
176 -del qmake.exe >nul 2>&1
177
178.SUFFIXES: .cpp .c
179
180.c.obj:
181 $(CXX) -c $(CFLAGS) -o $@ $<
182
183.cpp.obj:
184 $(CXX) -c $(CXXFLAGS) -o $@ $<
185
186define SRC_TO_OBJ_RULE
187$(call SRC_TO_OBJ,$(1)): $(1)
188 $(CXX) -c $(CXXFLAGS) -o $$@ $$<
189endef
190
191$(foreach src,$(SOURCES),$(eval $(call SRC_TO_OBJ_RULE,$(src))))
Note: See TracBrowser for help on using the repository browser.