sbsv1/abld/makmake/makhelp.pm
changeset 599 fa7a3cc6effd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1/abld/makmake/makhelp.pm	Fri Jun 25 17:29:25 2010 +0800
@@ -0,0 +1,225 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Makhelp;
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Help_Invocation
+	Help_Mmp
+	Help_Plat
+);
+
+
+use E32tpver;
+use featurevariantparser;
+# also requires main module to have loaded platform module(s) and Modload.pm and Trgtype.pm
+
+sub Help_Invocation () {
+
+	print
+		"\n",
+		"MAKMAKE - Makefile Creation Utility (Build ",&E32tpver,")\n",
+		"\n",
+		"MAKMAKE {flags} [{MMPFilePath}MMPFileRoot] [Platform[.Feature Variant]]\n",
+		"\n",
+		"Flags: (case insensitive)\n",
+		" -D               -> create makefile in ", $E32env::Data{BldPath}, "[project]\\[platform]\\\n",
+		" -MMP             -> information - basic mmp syntax\n",
+		" -PLAT [platform] -> information - platform-specific mmp syntax\n",
+		" -V               -> verbose mode\n",
+		" -ND              -> generate no dependencies info\n",
+		" -[debug|no_debug]-> enable/disable generation of symbolic debug information for ARM ABI compliant platforms\n",
+		" -LOGFC           -> enable function call logging\n",
+		" -INVARIANT       -> force default feature variant processing only, unless FEATUREVARIANT is present in the .mmp file\n",
+		"\n"
+	;
+
+	my @Plats=&main::Plat_List;
+	print
+		"Available Platforms: (case insensitive)\n",
+		" @Plats\n"
+	;
+
+	my @BuildableFeatureVariants=featurevariantparser->GetBuildableFeatureVariants();
+	if (@BuildableFeatureVariants)
+		{
+		@BuildableFeatureVariants = map{uc($_)} @BuildableFeatureVariants;
+
+		print
+			"\nAvailable Feature Variants for Supporting Platforms: (case insensitive)\n",
+			" @BuildableFeatureVariants\n"
+		;
+		}
+}
+
+sub Help_Mmp () {
+
+	my @TrgTypes=&main::Trg_List;
+	my $TrgTypes='TARGETTYPE             [';
+	my $Spacing=length($TrgTypes);
+	my $LineLen=$Spacing;
+	foreach (@TrgTypes) {
+		$TrgTypes.=$_.'|';
+		$LineLen+=(length($_)+1);
+		if ($LineLen>($Spacing+50)) {
+			$TrgTypes.="\n".(' 'x$Spacing);
+			$LineLen=$Spacing;
+		}
+	}
+	chop $TrgTypes;
+	$TrgTypes.=']';
+
+	print <<ENDHERE;
+
+Makmake Project File - Basic Syntax
+
+/* Use C++ comments if required */
+START BITMAP           [target]
+TARGETPATH             [emulated_path_on_target_machine]
+HEADER
+SOURCEPATH             [.mmp-relative_source_path (default - .mmp_dir)]
+SOURCE                 [color_depth] [source_bitmaps]
+END
+
+START RESOURCE         [source]
+TARGET                 [target (default - source)]
+TARGETPATH             [emulated_path_on_target_machine]
+HEADER
+LANG                   [languages (overrides global LANG)]
+UID                    [uid(s) for resource file]
+END
+
+START STRINGTABLE      [source]
+EXPORTPATH             [location]
+HEADERONLY             [export only header file]
+END
+
+AIF                    [target] [src_path] [resource] {[color_depth] [bitmaps]}
+ALWAYS_BUILD_AS_ARM
+ARMFPU                 [SOFTVFP | VFPV2]
+ASSPABI
+ASSPEXPORTS
+ASSPLIBRARY            [ASSP_libraries]
+BYTEPAIRCOMPRESSTARGET
+CAPABILITY             [NONE | list of {-}CAPABILITY_NAME]
+COMPRESSTARGET
+DEBUGGABLE             [Executable can be debugged in a running system]
+DEBUGGABLE_UDEBONLY    [Only Debug (UDEB) executables can be debugged in a running system]
+DEBUGLIBRARY           [libraries - use in addition to LIBRARY for DEBUG builds]
+
+DEFFILE                [{path}{deffile} (default -
+                          \[project]\B[platform]\[target basename].DEF)
+                        If the path ends in \~\ the ~ is replace by B[platform] ]
+
+DOCUMENT               [sourcepath-relative_documents]
+EPOCALLOWDLLDATA
+EPOCCALLDLLENTRYPOINTS
+EPOCDATALINKADDRESS    [relocation_address]
+EPOCFIXEDPROCESS
+EPOCHEAPSIZE           [min_size][max_size]
+EPOCPROCESSPRIORITY    [PRIORITY_NAME]
+EPOCSTACKSIZE          [stack_size]
+EXPORTLIBRARY          [executables export library name if different from TARGET]
+EXPORTUNFROZEN
+FIRSTLIB               [first link object - overrides EEXE.LIB or EDLL.LIB]
+FEATUREVARIANT         [process for all variants when '-invariant' is used in MAKMAKE calls]
+INFLATECOMPRESSTARGET
+LANG                   [languages (defaults to SC)]
+LIBRARY                [libraries]
+LINKAS                 [executable's linking name if different from TARGET]
+LINKEROPTION           [COMPILER] [rest of line is linker options]
+MACRO                  [user-defined_macros]
+NEWLIB                 [override default operator new/operator delete library]
+NOCOMPRESSTARGET
+NOEXPORTLIBRARY        [don't generate an export library]
+NOSTRICTDEF
+OPTION                 [COMPILER] [rest of line is extra compiler options]
+OPTION_REPLACE         [oldComplierOption] [newOption]
+PAGED
+PAGEDCODE
+PAGEDDATA
+RAMTARGET              // syntax not yet finalized
+RESOURCE               [sourcepath-relative_resources]
+ROMTARGET              // syntax not yet finalized
+SECUREID               [secure ID]
+SMPSAFE                [mark executable as SMP safe]
+SOURCE                 [sourcepath-relative_sources]
+SOURCEPATH             [.mmp relative_source_path (default - .mmp_dir]
+SRCDBG
+STATICLIBRARY          [static_libraries]
+STDCPP
+NOSTDCPP
+STRICTDEPEND
+SYSTEMINCLUDE          [system_include_path]
+SYSTEMRESOURCE         [sourcepath-relative_system_resources]
+TARGET                 [target]
+TARGETPATH             [emulated_path_on_target_machine]
+$TrgTypes
+UID                    [uid2|0 {uid3}]
+UNPAGED
+UNPAGEDCODE
+UNPAGEDDATA
+USERINCLUDE            [user_include_path - source_dir searched first always]
+VENDORID               [vendorid]
+VERSION                [MAJOR.minor {explicit} - specify version number of
+                         the target. If EXPLICIT specified decorate target
+                         filename and DEF file name with version.]
+WCHARENTRYPOINT
+
+#if defined([PLATFORM])
+[universal keyword statements restricted to [PLATFORM] ]
+#endif
+
+START [PLATFORM]
+[platform-specific keyword statements]
+// use MAKMAKE /PLAT [PLATFORM] to display these
+END
+
+ENDHERE
+
+}
+
+sub Help_Plat ($$$$$) {
+	my ($Plat,$CPU,$DefFile,$MmpMacrosRef, $MacrosRef)=@_;
+
+#	list of source macros is incomplete in this function.  It may also contain:
+#	__MARM_<ABI>__ if the platform CPU is MARM - (ABI may vary according to .MMP contents though)
+#	Any macros defined in the .MMP file
+#	__DLL__ or __EXE__ respectively if the $BasicTrgType is DLL or EXE
+#	WIN32 and _WINDOWS if the project links to Win32 libraries
+#
+#	Furthermore, build macros _UNICODE, _DEBUG or _NDEBUG aren't listed - the _UNICODE
+#	macro should probably be defined as a permanent macro now that we're not doing Narrow
+#	builds anymore.
+
+	$DefFile= 'B'.$DefFile unless ($DefFile eq 'EABI');
+	print
+		"\n",
+		"Makmake Project File - Platform-specific Syntax\n",
+		"\n",
+		"// Platform   -> $Plat\n",
+		"// Default_Def_Dir -> \\[project]\\$DefFile\\\n",
+		"// MMP_Macros -> @$MmpMacrosRef\n",
+		"// Source_Macros -> @$MacrosRef (+ others)\n",
+		"\n",
+		"START [MMP_Macro]\n"
+	;
+	&main::PMHelp_Mmp if defined &main::PMHelp_Mmp;
+	print "END\n";
+}
+
+1;