* Makefile.am: Add windmc tool.

* Makefile.in: Regenerate.
* configure.in: Add windmc tool.
* configure: Regenerate.
* mclex.c: New.
* mcparse.y: New.
* windmc.c: New.
* windmc.h: New.
* doc/Makefile.am: Add windmc tool.
* doc/Makefile.in: Regenerate.
* doc/binutils.texi: Add windmc documentation.
* NEWS: Mention new tool.
This commit is contained in:
Nick Clifton 2007-06-19 13:24:33 +00:00
parent 293a012441
commit 692ed3e78f
13 changed files with 2443 additions and 43 deletions

View file

@ -28,6 +28,7 @@ man_MANS = \
strings.1 \
strip.1 \
windres.1 \
windmc.1 \
$(DEMANGLER_NAME).1
info_TEXINFOS = binutils.texi
@ -130,6 +131,13 @@ windres.1: $(binutils_TEXI) $(binutils_TEXINFOS)
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
rm -f windres.pod
windmc.1: $(binutils_TEXI) $(binutils_TEXINFOS)
touch $@
-$(TEXI2POD) $(MANCONF) -Dwindmc < $(binutils_TEXI) > windmc.pod
-($(POD2MAN) windmc.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
rm -f windmc.pod
cxxfilt.man: $(binutils_TEXI) $(binutils_TEXINFOS)
touch $@
-$(TEXI2POD) $(MANCONF) -Dcxxfilt < $(binutils_TEXI) > $(DEMANGLER_NAME).pod

View file

@ -93,6 +93,7 @@ BUILD_INSTALL_MISC = @BUILD_INSTALL_MISC@
BUILD_MISC = @BUILD_MISC@
BUILD_NLMCONV = @BUILD_NLMCONV@
BUILD_SRCONV = @BUILD_SRCONV@
BUILD_WINDMC = @BUILD_WINDMC@
BUILD_WINDRES = @BUILD_WINDRES@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
@ -249,6 +250,7 @@ man_MANS = \
strings.1 \
strip.1 \
windres.1 \
windmc.1 \
$(DEMANGLER_NAME).1
info_TEXINFOS = binutils.texi
@ -280,9 +282,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus doc/Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --cygnus doc/Makefile
$(AUTOMAKE) --foreign doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@ -679,6 +681,13 @@ windres.1: $(binutils_TEXI) $(binutils_TEXINFOS)
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
rm -f windres.pod
windmc.1: $(binutils_TEXI) $(binutils_TEXINFOS)
touch $@
-$(TEXI2POD) $(MANCONF) -Dwindmc < $(binutils_TEXI) > windmc.pod
-($(POD2MAN) windmc.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
rm -f windmc.pod
cxxfilt.man: $(binutils_TEXI) $(binutils_TEXINFOS)
touch $@
-$(TEXI2POD) $(MANCONF) -Dcxxfilt < $(binutils_TEXI) > $(DEMANGLER_NAME).pod

View file

@ -25,6 +25,7 @@ START-INFO-DIR-ENTRY
* addr2line: (binutils)addr2line. Convert addresses to file and line
* nlmconv: (binutils)nlmconv. Converts object code into an NLM
* windres: (binutils)windres. Manipulate Windows resources
* windmc: (binutils)windmc. Generator for Windows message resources
* dlltool: (binutils)dlltool. Create files needed to build and use DLLs
END-INFO-DIR-ENTRY
@end format
@ -145,6 +146,9 @@ Convert object code into a Netware Loadable Module
@item windres
Manipulate Windows resources
@item windmc
Genertor for Windows message resources
@item dlltool
Create the files needed to build and use Dynamic Link Libraries
@end table
@ -169,6 +173,7 @@ section entitled "GNU Free Documentation License".
* addr2line:: Convert addresses to file and line
* nlmconv:: Converts object code into an NLM
* windres:: Manipulate Windows resources
* windmc:: Generator for Windows message resources
* dlltool:: Create files needed to build and use DLLs
* Common Options:: Command-line options for all utilities
* Selecting The Target System:: How these utilities determine the target.
@ -2869,6 +2874,168 @@ the Info entries for @file{binutils}.
@c man end
@end ignore
@node windmc
@chapter windmc
@command{windmc} may be used to generator Windows message resources.
@quotation
@emph{Warning:} @command{windmc} is not always built as part of the binary
utilities, since it is only useful for Windows targets.
@end quotation
@c man title windmc generates Windows message resources.
@smallexample
@c man begin SYNOPSIS windres
windmc [options] input-file
@c man end
@end smallexample
@c man begin DESCRIPTION windmc
@command{windmc} reads message definitions from an input file (.mc) and
translate them into a set of output files. The output files may be of
four kinds:
@table @code
@item h
A C header file containing the message definitions.
@item rc
A resource file compilable by the @command{windres} tool.
@item bin
One or more binary files containing the resource data for a specific
message language.
@item dbg
A C include file that maps message id's to their symbolic name.
@end table
The exact description of these different formats is available in
documentation from Microsoft.
When @command{windmc} converts from the @code{mc} format to the @code{bin}
format, @code{rc}, @code{h}, and optional @code{dbg} it is acting like the
Windows Message Compiler.
@c man end
@c man begin OPTIONS windmc
@table @env
@item -a
@itemx --ascii_in
Specifies that the input file specified is ANSI. This is the default
behaviour.
@item -A
@itemx --ascii_out
Specifies that messages in the output @code{bin} files should be in ANSI
format.
@item -b
@itemx --binprefix
Specifies that @code{bin} filenames should have to be prefixed by the
basename of the source file.
@item -c
@itemx --customflag
Sets the customer bit in all message id's.
@item -C @var{codepage}
@itemx --codepage_in @var{codepage}
Sets the default codepage to be used to convert input file to UTF16. The
default is ocdepage 1252.
@item -d
@itemx --decimal_values
Outputs the constants in the header file in decimal. Default is using
hexadecimal output.
@item -e @var{ext}
@itemx --extension @var{ext}
The extension for the header file. The default is .h extension.
@item -F @var{target}
@itemx --target @var{target}
Specify the BFD format to use for a bin file as output. This
is a BFD target name; you can use the @option{--help} option to see a list
of supported targets. Normally @command{windmc} will use the default
format, which is the first one listed by the @option{--help} option.
@ifclear man
@ref{Target Selection}.
@end ifclear
@item -h @var{path}
@itemx --headerdir @var{path}
The target directory of the generated header file. The default is the
current directory.
@item -H
@itemx --help
Displays a list of command line options and then exits.
@item -m @var{characters}
@itemx --maxlength @var{characters}
Instructs @command{windmc} to generate a warning if the length
of any message exceeds the number specified.
@item -n
@itemx --nullterminate
Terminate message text in @code{bin} files by zero. By default they are
terminated by CR/LF.
@item -o
@itemx --hresult_use
Not yet implemented. Instructs @code{windmc} to generate an OLE2 header
file, using HRESULT definitions. Status codes are used if the flag is not
specified.
@item -O @var{codepage}
@itemx --codepage_out @var{codepage}
Sets the default codepage to be used to output text files. The default
is ocdepage 1252.
@item -r @var{path}
@itemx --rcdir @var{path}
The target directory for the generated @code{rc} script and the generated
@code{bin} files that the resource compiler script includes. The default
is the current directory.
@item -u
@itemx --unicode_in
Specifies that the input file is UTF16.
@item -U
@itemx --unicode_out
Specifies that messages in the output @code{bin} file should be in UTF16
format. This is the default behaviour.
@item -v
@item --verbose
Enable verbose mode. This tells you what the preprocessor is if you
didn't specify one.
@item -V
@item --version
Prints the version number for @command{windres}.
@item -x @var{path}
@itemx --xdgb @var{path}
The path of the @code{dbg} C include file that maps message id's to the
symbolic name. No such file is generated without specifying the switch.
@end table
@c man end
@ignore
@c man begin SEEALSO windmc
the Info entries for @file{binutils}.
@c man end
@end ignore
@node windres
@chapter windres