|
1 #! |
|
2 #! This is a tmake template for building Win32 applications or libraries. |
|
3 #! |
|
4 #${ |
|
5 if ( Config("qt") ) { |
|
6 if ( !(Project("DEFINES") =~ /QT_NODLL/) && |
|
7 ((Project("DEFINES") =~ /QT_(?:MAKE)?DLL/) || |
|
8 ($ENV{"QT_DLL"} && !$ENV{"QT_NODLL"})) ) { |
|
9 Project('TMAKE_QT_DLL = 1'); |
|
10 if ( (Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG") ) { |
|
11 Project('CONFIG += dll'); |
|
12 } |
|
13 } |
|
14 } |
|
15 if ( Config("dll") || Project("TMAKE_APP_FLAG") ) { |
|
16 Project('CONFIG -= staticlib'); |
|
17 Project('TMAKE_APP_OR_DLL = 1'); |
|
18 } else { |
|
19 Project('CONFIG += staticlib'); |
|
20 } |
|
21 if ( Config("warn_off") ) { |
|
22 Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_OFF'); |
|
23 Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_OFF'); |
|
24 } elsif ( Config("warn_on") ) { |
|
25 Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_ON'); |
|
26 Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_ON'); |
|
27 } |
|
28 if ( Config("debug") ) { |
|
29 Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_DEBUG'); |
|
30 Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_DEBUG'); |
|
31 Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_DEBUG'); |
|
32 } elsif ( Config("release") ) { |
|
33 Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_RELEASE'); |
|
34 Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_RELEASE'); |
|
35 Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_RELEASE'); |
|
36 } |
|
37 if ( Config("qt") || Config("opengl") ) { |
|
38 Project('CONFIG += windows' ); |
|
39 } |
|
40 if ( Config("qt") ) { |
|
41 Project('CONFIG *= moc'); |
|
42 AddIncludePath(Project("TMAKE_INCDIR_QT")); |
|
43 if ( Config("release") ) { |
|
44 Project('DEFINES += NO_DEBUG'); |
|
45 } |
|
46 if ( Config("opengl") ) { |
|
47 Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_OPENGL'); |
|
48 } |
|
49 if ( (Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG") ) { |
|
50 if ( Project("TMAKE_QT_DLL") ) { |
|
51 Project('DEFINES -= QT_DLL'); |
|
52 Project('DEFINES *= QT_MAKEDLL'); |
|
53 Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_QT_DLL'); |
|
54 } |
|
55 } else { |
|
56 if ( Project("TMAKE_QT_DLL") ) { |
|
57 Project('DEFINES *= QT_DLL'); |
|
58 } |
|
59 Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT'); |
|
60 if ( Project("TMAKE_QT_DLL") ) { |
|
61 my $qtver =FindHighestLibVersion($ENV{"QTDIR"} . "/lib", "qt"); |
|
62 Project("TMAKE_LIBS /= s/qt.lib/qt${qtver}.lib/"); |
|
63 if ( !Config("dll") ) { |
|
64 Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_DLL'); |
|
65 } |
|
66 } |
|
67 } |
|
68 } |
|
69 if ( Config("opengl") ) { |
|
70 Project('TMAKE_LIBS *= $$TMAKE_LIBS_OPENGL'); |
|
71 } |
|
72 if ( Config("dll") ) { |
|
73 Project('TMAKE_LFLAGS_CONSOLE_ANY = $$TMAKE_LFLAGS_CONSOLE_DLL'); |
|
74 Project('TMAKE_LFLAGS_WINDOWS_ANY = $$TMAKE_LFLAGS_WINDOWS_DLL'); |
|
75 if ( Project("TMAKE_LIB_FLAG") ) { |
|
76 my $ver = Project("VERSION"); |
|
77 $ver =~ s/\.//g; |
|
78 $project{"TARGET_EXT"} = "${ver}.dll"; |
|
79 } else { |
|
80 $project{"TARGET_EXT"} = ".dll"; |
|
81 } |
|
82 } else { |
|
83 Project('TMAKE_LFLAGS_CONSOLE_ANY = $$TMAKE_LFLAGS_CONSOLE'); |
|
84 Project('TMAKE_LFLAGS_WINDOWS_ANY = $$TMAKE_LFLAGS_WINDOWS'); |
|
85 if ( Project("TMAKE_APP_FLAG") ) { |
|
86 $project{"TARGET_EXT"} = ".exe"; |
|
87 } else { |
|
88 $project{"TARGET_EXT"} = ".lib"; |
|
89 } |
|
90 } |
|
91 if ( Config("windows") ) { |
|
92 if ( Config("console") ) { |
|
93 Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_CONSOLE_ANY'); |
|
94 Project('TMAKE_LIBS *= $$TMAKE_LIBS_CONSOLE'); |
|
95 } else { |
|
96 Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_WINDOWS_ANY'); |
|
97 } |
|
98 Project('TMAKE_LIBS *= $$TMAKE_LIBS_WINDOWS'); |
|
99 } else { |
|
100 Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_CONSOLE_ANY'); |
|
101 Project('TMAKE_LIBS *= $$TMAKE_LIBS_CONSOLE'); |
|
102 } |
|
103 if ( Config("moc") ) { |
|
104 $moc_aware = 1; |
|
105 } |
|
106 Project('TMAKE_LIBS += $$LIBS'); |
|
107 Project('TMAKE_FILETAGS = HEADERS SOURCES DEF_FILE RC_FILE TARGET TMAKE_LIBS DESTDIR DLLDESTDIR $$FILETAGS'); |
|
108 foreach ( split(/\s/,Project("TMAKE_FILETAGS")) ) { |
|
109 $project{$_} =~ s-[/\\]+-\\-g; |
|
110 } |
|
111 if ( Project("DEF_FILE") ) { |
|
112 Project('TMAKE_LFLAGS *= /DEF:$$DEF_FILE'); |
|
113 } |
|
114 if ( Project("RC_FILE") ) { |
|
115 if ( Project("RES_FILE") ) { |
|
116 tmake_error("Both .rc and .res file specified.\n" . |
|
117 "Please specify one of them, not both."); |
|
118 } |
|
119 $project{"RES_FILE"} = $project{"RC_FILE"}; |
|
120 $project{"RES_FILE"} =~ s/\.rc$/.res/i; |
|
121 Project('TARGETDEPS += $$RES_FILE'); |
|
122 } |
|
123 if ( Project("RES_FILE") ) { |
|
124 Project('TMAKE_LIBS *= $$RES_FILE'); |
|
125 } |
|
126 StdInit(); |
|
127 if ( Project("VERSION") ) { |
|
128 $project{"VER_MAJ"} = $project{"VERSION"}; |
|
129 $project{"VER_MAJ"} =~ s/\.\d+$//; |
|
130 $project{"VER_MIN"} = $project{"VERSION"}; |
|
131 $project{"VER_MIN"} =~ s/^\d+\.//; |
|
132 } |
|
133 Project('debug:TMAKE_CLEAN += $$TARGET.pdb vc*.pdb $$TARGET.ilk'); |
|
134 #$} |
|
135 #! |
|
136 # Makefile for building #$ Expand("TARGET") |
|
137 # Generated by tmake at #$ Now(); |
|
138 # Project: #$ Expand("PROJECT"); |
|
139 # Template: #$ Expand("TEMPLATE"); |
|
140 ############################################################################# |
|
141 |
|
142 ####### Compiler, tools and options |
|
143 |
|
144 CC = #$ Expand("TMAKE_CC"); |
|
145 CXX = #$ Expand("TMAKE_CXX"); |
|
146 CFLAGS = #$ Expand("TMAKE_CFLAGS"); ExpandGlue("DEFINES","-D"," -D",""); |
|
147 CXXFLAGS= #$ Expand("TMAKE_CXXFLAGS"); ExpandGlue("DEFINES","-D"," -D",""); |
|
148 INCPATH = #$ ExpandPath("INCPATH",'-I',' -I',''); |
|
149 #$ !Project("TMAKE_APP_OR_DLL") && DisableOutput(); |
|
150 LINK = #$ Expand("TMAKE_LINK"); |
|
151 LFLAGS = #$ Expand("TMAKE_LFLAGS"); |
|
152 LIBS = #$ Expand("TMAKE_LIBS"); |
|
153 #$ !Project("TMAKE_APP_OR_DLL") && EnableOutput(); |
|
154 #$ Project("TMAKE_APP_OR_DLL") && DisableOutput(); |
|
155 LIB = #$ Expand("TMAKE_LIB"); |
|
156 #$ Project("TMAKE_APP_OR_DLL") && EnableOutput(); |
|
157 MOC = #$ Expand("TMAKE_MOC"); |
|
158 |
|
159 ZIP = #$ Expand("TMAKE_ZIP"); |
|
160 |
|
161 ####### Files |
|
162 |
|
163 HEADERS = #$ ExpandList("HEADERS"); |
|
164 SOURCES = #$ ExpandList("SOURCES"); |
|
165 OBJECTS = #$ ExpandList("OBJECTS"); |
|
166 SRCMOC = #$ ExpandList("SRCMOC"); |
|
167 OBJMOC = #$ ExpandList("OBJMOC"); |
|
168 DIST = #$ ExpandList("DISTFILES"); |
|
169 TARGET = #$ ExpandGlue("TARGET",$project{"DESTDIR"},"",$project{"TARGET_EXT"}); |
|
170 |
|
171 ####### Implicit rules |
|
172 |
|
173 .SUFFIXES: .cpp .cxx .cc .c |
|
174 |
|
175 .cpp.obj: |
|
176 #$ Expand("TMAKE_RUN_CXX_IMP"); |
|
177 |
|
178 .cxx.obj: |
|
179 #$ Expand("TMAKE_RUN_CXX_IMP"); |
|
180 |
|
181 .cc.obj: |
|
182 #$ Expand("TMAKE_RUN_CXX_IMP"); |
|
183 |
|
184 .c.obj: |
|
185 #$ Expand("TMAKE_RUN_CC_IMP"); |
|
186 |
|
187 ####### Build rules |
|
188 |
|
189 all: #$ ExpandGlue("ALL_DEPS",""," "," "); $text .= '$(TARGET)'; |
|
190 |
|
191 $(TARGET): $(OBJECTS) $(OBJMOC) #$ Expand("TARGETDEPS"); |
|
192 #$ Project("TMAKE_APP_OR_DLL") || DisableOutput(); |
|
193 $(LINK) $(LFLAGS) /OUT:$(TARGET) @<< |
|
194 $(OBJECTS) $(OBJMOC) $(LIBS) |
|
195 #$ Project("TMAKE_APP_OR_DLL") || EnableOutput(); |
|
196 #$ Project("TMAKE_APP_OR_DLL") && DisableOutput(); |
|
197 $(LIB) /OUT:$(TARGET) @<< |
|
198 $(OBJECTS) $(OBJMOC) |
|
199 #$ Project("TMAKE_APP_OR_DLL") && EnableOutput(); |
|
200 << |
|
201 #$ (Config("dll") && Project("DLLDESTDIR")) || DisableOutput(); |
|
202 -copy $(TARGET) #$ Expand("DLLDESTDIR"); |
|
203 #$ (Config("dll") && Project("DLLDESTDIR")) || EnableOutput(); |
|
204 #$ Project("RC_FILE") || DisableOutput(); |
|
205 |
|
206 #$ Substitute("\$\$RES_FILE: \$\$RC_FILE\n\t\$\$TMAKE_RC \$\$RC_FILE"); |
|
207 #$ Project("RC_FILE") || EnableOutput(); |
|
208 |
|
209 moc: $(SRCMOC) |
|
210 |
|
211 #$ TmakeSelf(); |
|
212 |
|
213 dist: |
|
214 #$ Substitute('$(ZIP) $$PROJECT.zip $$PROJECT.pro $(SOURCES) $(HEADERS) $(DIST)'); |
|
215 |
|
216 clean: |
|
217 #$ ExpandGlue("OBJECTS","-del ","\n\t-del ",""); |
|
218 #$ ExpandGlue("SRCMOC" ,"-del ","\n\t-del ",""); |
|
219 #$ ExpandGlue("OBJMOC" ,"-del ","\n\t-del ",""); |
|
220 -del $(TARGET) |
|
221 #$ ExpandGlue("TMAKE_CLEAN","-del ","\n\t-del ",""); |
|
222 #$ ExpandGlue("CLEAN_FILES","-del ","\n\t-del ",""); |
|
223 |
|
224 ####### Compile |
|
225 |
|
226 #$ BuildObj(Project("OBJECTS"),Project("SOURCES")); |
|
227 #$ BuildMocObj(Project("OBJMOC"),Project("SRCMOC")); |
|
228 #$ BuildMocSrc(Project("HEADERS")); |
|
229 #$ BuildMocSrc(Project("SOURCES")); |