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