(This message was originally posted on wine-users who suggest it belongs on
wine-devel, my apologies if this is inappropriate.)
I am trying to build a program using the wine libraries. I am following the
recipies given in the docs without much understanding of what is actually
happening. The first step, running winemaker, seemed to work,
the ./configure step took some time, as it would fail, and then I would go
searching for the file it was looking for, amend the options, and run it
again, finally coming up with:
./configure --with-wine-includes=/usr/include/wine/windows
--with-wine-libraries=/usr/lib --with-wine-dlls=/usr/lib
--with-wine-tools=/usr/bin
<lots of output snipped>
creating Makefile
Configure finished. Do 'make' to build the project.
The reason I mention this is that I am not sure that my arguments to configure
are correct. For example, I have noticed that there are also include files at
/usr/includes/wine/msvcrt, and configure doesn't seem to care about that, so
how are these include files found?
In any case configure is happy, so I tried to run make:
[parz@h24-79-72-61 MyWin]$ make
sed -e 's,@bindir\@,/usr/local/bin,g' -e 's,@winelibdir\@,.,g'
./wineapploader.in >wineapploader || rm -f wineapploader
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" /usr/bin/wrc -J -m -I.
-I/usr/include/wine/windows -o MyWin.res -r MyWin.rc
Usage: wrc [options...] [infile[.rc|.res]] [outfile]
-a n Alignment of resource (win16 only, default is 4)
-A Auto register resources (only with gcc 2.7 and better)
-b Create an assembly array from a binary .res file
-B x Set output byte-order x={n[ative], l[ittle], b[ig]}
(win32 only; default is little-endian)
-c Add 'const' prefix to C constants
-C cp Set the resource's codepage to cp (default is 0)
-d n Set debug level to 'n'
-D id[=val] Define preprocessor identifier id=val
-e Disable recognition of win32 keywords in 16bit compile
-E Preprocess only
-F target Ignored for compatibility with windres
-g Add symbols to the global c namespace
-h Prints this summary.
-i file The name of the input file.
-I path Set include search dir to path (multiple -I allowed)
-J Do not search the standard include path
-l lan Set default language to lan (default is neutral {0, 0})
-m Do not remap numerical resource IDs
-N Do not preprocess input
-o file Output to file (default is infile.[res|s|h]
-O format The output format: one of `res', 'asm', 'hdr'.
-p prefix Give a prefix for the generated names
-s Add structure with win32/16 (PE/NE) resource directory
-t Generate indirect loadable resource tables
-T Generate only indirect loadable resources tables
-v Enable verbose mode.
-V Print version and exit
-w 16|32 Select win16 or win32 output (default is win32)
-W Enable pedantic warnings
The following long options are supported:
--input Synonym for -i.
--output Synonym for -o.
--target Synonym for -F.
--format Synonym for -O.
--include-dir Synonym for -I.
--nostdinc Synonym for -J.
--define Synonym for -D.
--language Synonym for -l.
--use-temp-file Ignored for compatibility with windres.
--no-use-temp-file Ignored for compatibility with windres.
--preprocessor Specify the preprocessor to use, including arguments.
--help Synonym for -h.
--version Synonym for -V.
Input is taken from stdin if no sourcefile specified.
Debug level 'n' is a bitmask with following meaning:
* 0x01 Tell which resource is parsed (verbose mode)
* 0x02 Dump internal structures
* 0x04 Create a parser trace (yydebug=1)
* 0x08 Preprocessor messages
* 0x10 Preprocessor lex messages
* 0x20 Preprocessor yacc trace
If no input filename is given and the output name is not overridden
with -o, then the output is written to "wrc.tab.[sh]"
make: *** [MyWin.res] Error 1
[parz@h24-79-72-61 MyWin]$
So, it looks like the automatically generated Makefile gives wrc a "-r"
option, which it doesn't like. Is this a bug? How can I work around it?
I am using the wine installed with Mandrake 9.1. I found the following
funny bug:
[parz@h24-79-72-61 MyWin]$ wine --version
Usage: wine.bin [options] [--] program_name [arguments]
The -- has to be used if you specify arguments OR options
Options:
--debugmsg name Turn debugging-messages on or off
--dll name Enable or disable built-in DLLs
--help,-h Show this help message
--version,-v Display the Wine version
[parz@h24-79-72-61 MyWin]$
So it won't display its version, but
[parz@h24-79-72-61 MyWin]$ wine -v
Wine 20030115
[parz@h24-79-72-61 MyWin]$
In all of the "Why doesn't it work" struggles I did previously, to get another
program to run in emulation mode, I also tried installing a more recent
version of wine from sources, but this version would crash loading my
programs, so I reverted to the Mandrake 9.1 installed version. I don't really
want to work on my present problem by re-installing the (newer, I believe
from August) version, because the config files are not compatible, so it is a
lot of work to move between the versions, and of course, my programs that I
want to run, don't seem to work then.
Does anyone have a clue how to solve the Makefile problem?
--
Parzival Herzog