599
|
1 |
# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
|
|
2 |
# All rights reserved.
|
|
3 |
# This component and the accompanying materials are made available
|
|
4 |
# under the terms of "Eclipse Public License v1.0"
|
|
5 |
# which accompanies this distribution, and is available
|
|
6 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
|
7 |
#
|
|
8 |
# Initial Contributors:
|
|
9 |
# Nokia Corporation - initial contribution.
|
|
10 |
#
|
|
11 |
# Contributors:
|
|
12 |
#
|
|
13 |
# Description:
|
|
14 |
#
|
|
15 |
|
|
16 |
|
|
17 |
package Makhelp;
|
|
18 |
require Exporter;
|
|
19 |
@ISA=qw(Exporter);
|
|
20 |
@EXPORT=qw(
|
|
21 |
Help_Invocation
|
|
22 |
Help_Mmp
|
|
23 |
Help_Plat
|
|
24 |
);
|
|
25 |
|
|
26 |
|
|
27 |
use E32tpver;
|
|
28 |
use featurevariantparser;
|
|
29 |
# also requires main module to have loaded platform module(s) and Modload.pm and Trgtype.pm
|
|
30 |
|
|
31 |
sub Help_Invocation () {
|
|
32 |
|
|
33 |
print
|
|
34 |
"\n",
|
|
35 |
"MAKMAKE - Makefile Creation Utility (Build ",&E32tpver,")\n",
|
|
36 |
"\n",
|
|
37 |
"MAKMAKE {flags} [{MMPFilePath}MMPFileRoot] [Platform[.Feature Variant]]\n",
|
|
38 |
"\n",
|
|
39 |
"Flags: (case insensitive)\n",
|
|
40 |
" -D -> create makefile in ", $E32env::Data{BldPath}, "[project]\\[platform]\\\n",
|
|
41 |
" -MMP -> information - basic mmp syntax\n",
|
|
42 |
" -PLAT [platform] -> information - platform-specific mmp syntax\n",
|
|
43 |
" -V -> verbose mode\n",
|
|
44 |
" -ND -> generate no dependencies info\n",
|
|
45 |
" -[debug|no_debug]-> enable/disable generation of symbolic debug information for ARM ABI compliant platforms\n",
|
|
46 |
" -LOGFC -> enable function call logging\n",
|
|
47 |
" -INVARIANT -> force default feature variant processing only, unless FEATUREVARIANT is present in the .mmp file\n",
|
|
48 |
"\n"
|
|
49 |
;
|
|
50 |
|
|
51 |
my @Plats=&main::Plat_List;
|
|
52 |
print
|
|
53 |
"Available Platforms: (case insensitive)\n",
|
|
54 |
" @Plats\n"
|
|
55 |
;
|
|
56 |
|
|
57 |
my @BuildableFeatureVariants=featurevariantparser->GetBuildableFeatureVariants();
|
|
58 |
if (@BuildableFeatureVariants)
|
|
59 |
{
|
|
60 |
@BuildableFeatureVariants = map{uc($_)} @BuildableFeatureVariants;
|
|
61 |
|
|
62 |
print
|
|
63 |
"\nAvailable Feature Variants for Supporting Platforms: (case insensitive)\n",
|
|
64 |
" @BuildableFeatureVariants\n"
|
|
65 |
;
|
|
66 |
}
|
|
67 |
}
|
|
68 |
|
|
69 |
sub Help_Mmp () {
|
|
70 |
|
|
71 |
my @TrgTypes=&main::Trg_List;
|
|
72 |
my $TrgTypes='TARGETTYPE [';
|
|
73 |
my $Spacing=length($TrgTypes);
|
|
74 |
my $LineLen=$Spacing;
|
|
75 |
foreach (@TrgTypes) {
|
|
76 |
$TrgTypes.=$_.'|';
|
|
77 |
$LineLen+=(length($_)+1);
|
|
78 |
if ($LineLen>($Spacing+50)) {
|
|
79 |
$TrgTypes.="\n".(' 'x$Spacing);
|
|
80 |
$LineLen=$Spacing;
|
|
81 |
}
|
|
82 |
}
|
|
83 |
chop $TrgTypes;
|
|
84 |
$TrgTypes.=']';
|
|
85 |
|
|
86 |
print <<ENDHERE;
|
|
87 |
|
|
88 |
Makmake Project File - Basic Syntax
|
|
89 |
|
|
90 |
/* Use C++ comments if required */
|
|
91 |
START BITMAP [target]
|
|
92 |
TARGETPATH [emulated_path_on_target_machine]
|
|
93 |
HEADER
|
|
94 |
SOURCEPATH [.mmp-relative_source_path (default - .mmp_dir)]
|
|
95 |
SOURCE [color_depth] [source_bitmaps]
|
|
96 |
END
|
|
97 |
|
|
98 |
START RESOURCE [source]
|
|
99 |
TARGET [target (default - source)]
|
|
100 |
TARGETPATH [emulated_path_on_target_machine]
|
|
101 |
HEADER
|
|
102 |
LANG [languages (overrides global LANG)]
|
|
103 |
UID [uid(s) for resource file]
|
|
104 |
END
|
|
105 |
|
|
106 |
START STRINGTABLE [source]
|
|
107 |
EXPORTPATH [location]
|
|
108 |
HEADERONLY [export only header file]
|
|
109 |
END
|
|
110 |
|
|
111 |
AIF [target] [src_path] [resource] {[color_depth] [bitmaps]}
|
|
112 |
ALWAYS_BUILD_AS_ARM
|
|
113 |
ARMFPU [SOFTVFP | VFPV2]
|
|
114 |
ASSPABI
|
|
115 |
ASSPEXPORTS
|
|
116 |
ASSPLIBRARY [ASSP_libraries]
|
|
117 |
BYTEPAIRCOMPRESSTARGET
|
|
118 |
CAPABILITY [NONE | list of {-}CAPABILITY_NAME]
|
|
119 |
COMPRESSTARGET
|
|
120 |
DEBUGGABLE [Executable can be debugged in a running system]
|
|
121 |
DEBUGGABLE_UDEBONLY [Only Debug (UDEB) executables can be debugged in a running system]
|
|
122 |
DEBUGLIBRARY [libraries - use in addition to LIBRARY for DEBUG builds]
|
|
123 |
|
|
124 |
DEFFILE [{path}{deffile} (default -
|
|
125 |
\[project]\B[platform]\[target basename].DEF)
|
|
126 |
If the path ends in \~\ the ~ is replace by B[platform] ]
|
|
127 |
|
|
128 |
DOCUMENT [sourcepath-relative_documents]
|
|
129 |
EPOCALLOWDLLDATA
|
|
130 |
EPOCCALLDLLENTRYPOINTS
|
|
131 |
EPOCDATALINKADDRESS [relocation_address]
|
|
132 |
EPOCFIXEDPROCESS
|
|
133 |
EPOCHEAPSIZE [min_size][max_size]
|
|
134 |
EPOCPROCESSPRIORITY [PRIORITY_NAME]
|
|
135 |
EPOCSTACKSIZE [stack_size]
|
|
136 |
EXPORTLIBRARY [executables export library name if different from TARGET]
|
|
137 |
EXPORTUNFROZEN
|
|
138 |
FIRSTLIB [first link object - overrides EEXE.LIB or EDLL.LIB]
|
|
139 |
FEATUREVARIANT [process for all variants when '-invariant' is used in MAKMAKE calls]
|
|
140 |
INFLATECOMPRESSTARGET
|
|
141 |
LANG [languages (defaults to SC)]
|
|
142 |
LIBRARY [libraries]
|
|
143 |
LINKAS [executable's linking name if different from TARGET]
|
|
144 |
LINKEROPTION [COMPILER] [rest of line is linker options]
|
|
145 |
MACRO [user-defined_macros]
|
|
146 |
NEWLIB [override default operator new/operator delete library]
|
|
147 |
NOCOMPRESSTARGET
|
|
148 |
NOEXPORTLIBRARY [don't generate an export library]
|
|
149 |
NOSTRICTDEF
|
|
150 |
OPTION [COMPILER] [rest of line is extra compiler options]
|
|
151 |
OPTION_REPLACE [oldComplierOption] [newOption]
|
|
152 |
PAGED
|
|
153 |
PAGEDCODE
|
|
154 |
PAGEDDATA
|
|
155 |
RAMTARGET // syntax not yet finalized
|
|
156 |
RESOURCE [sourcepath-relative_resources]
|
|
157 |
ROMTARGET // syntax not yet finalized
|
|
158 |
SECUREID [secure ID]
|
|
159 |
SMPSAFE [mark executable as SMP safe]
|
|
160 |
SOURCE [sourcepath-relative_sources]
|
|
161 |
SOURCEPATH [.mmp relative_source_path (default - .mmp_dir]
|
|
162 |
SRCDBG
|
|
163 |
STATICLIBRARY [static_libraries]
|
|
164 |
STDCPP
|
|
165 |
NOSTDCPP
|
|
166 |
STRICTDEPEND
|
|
167 |
SYSTEMINCLUDE [system_include_path]
|
|
168 |
SYSTEMRESOURCE [sourcepath-relative_system_resources]
|
|
169 |
TARGET [target]
|
|
170 |
TARGETPATH [emulated_path_on_target_machine]
|
|
171 |
$TrgTypes
|
|
172 |
UID [uid2|0 {uid3}]
|
|
173 |
UNPAGED
|
|
174 |
UNPAGEDCODE
|
|
175 |
UNPAGEDDATA
|
|
176 |
USERINCLUDE [user_include_path - source_dir searched first always]
|
|
177 |
VENDORID [vendorid]
|
|
178 |
VERSION [MAJOR.minor {explicit} - specify version number of
|
|
179 |
the target. If EXPLICIT specified decorate target
|
|
180 |
filename and DEF file name with version.]
|
|
181 |
WCHARENTRYPOINT
|
|
182 |
|
|
183 |
#if defined([PLATFORM])
|
|
184 |
[universal keyword statements restricted to [PLATFORM] ]
|
|
185 |
#endif
|
|
186 |
|
|
187 |
START [PLATFORM]
|
|
188 |
[platform-specific keyword statements]
|
|
189 |
// use MAKMAKE /PLAT [PLATFORM] to display these
|
|
190 |
END
|
|
191 |
|
|
192 |
ENDHERE
|
|
193 |
|
|
194 |
}
|
|
195 |
|
|
196 |
sub Help_Plat ($$$$$) {
|
|
197 |
my ($Plat,$CPU,$DefFile,$MmpMacrosRef, $MacrosRef)=@_;
|
|
198 |
|
|
199 |
# list of source macros is incomplete in this function. It may also contain:
|
|
200 |
# __MARM_<ABI>__ if the platform CPU is MARM - (ABI may vary according to .MMP contents though)
|
|
201 |
# Any macros defined in the .MMP file
|
|
202 |
# __DLL__ or __EXE__ respectively if the $BasicTrgType is DLL or EXE
|
|
203 |
# WIN32 and _WINDOWS if the project links to Win32 libraries
|
|
204 |
#
|
|
205 |
# Furthermore, build macros _UNICODE, _DEBUG or _NDEBUG aren't listed - the _UNICODE
|
|
206 |
# macro should probably be defined as a permanent macro now that we're not doing Narrow
|
|
207 |
# builds anymore.
|
|
208 |
|
|
209 |
$DefFile= 'B'.$DefFile unless ($DefFile eq 'EABI');
|
|
210 |
print
|
|
211 |
"\n",
|
|
212 |
"Makmake Project File - Platform-specific Syntax\n",
|
|
213 |
"\n",
|
|
214 |
"// Platform -> $Plat\n",
|
|
215 |
"// Default_Def_Dir -> \\[project]\\$DefFile\\\n",
|
|
216 |
"// MMP_Macros -> @$MmpMacrosRef\n",
|
|
217 |
"// Source_Macros -> @$MacrosRef (+ others)\n",
|
|
218 |
"\n",
|
|
219 |
"START [MMP_Macro]\n"
|
|
220 |
;
|
|
221 |
&main::PMHelp_Mmp if defined &main::PMHelp_Mmp;
|
|
222 |
print "END\n";
|
|
223 |
}
|
|
224 |
|
|
225 |
1;
|