Added winebuild -e option to specify the entry point and removed the
'init' spec file directive. Winebuild long options now use a more standard double dash format (older format still supported for backwards compatibility).
This commit is contained in:
parent
eb4db9471f
commit
910851a20e
|
@ -126,10 +126,10 @@ LINTS = $(C_SRCS:.c=.ln)
|
|||
$(WINDRES) -i $< -o $@
|
||||
|
||||
.spec.spec.c:
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -M $(MODULE) -spec $<
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -M $(MODULE) --spec $<
|
||||
|
||||
.spec.spec.def:
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -def $<
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --def $<
|
||||
|
||||
.c.ln:
|
||||
$(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
|
||||
|
@ -152,7 +152,7 @@ filter:
|
|||
# Rule for main module debug channels
|
||||
|
||||
$(MODULE).dbg.c: $(C_SRCS) $(C_SRCS16) $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -debug -C$(SRCDIR) $(C_SRCS) $(C_SRCS16)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --debug -C$(SRCDIR) $(C_SRCS) $(C_SRCS16)
|
||||
|
||||
# Rule to rebuild the tools
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ all: $(MODULE)$(DLLEXT)
|
|||
# Rules for .so files
|
||||
|
||||
$(MAINSPEC).c: $(MAINSPEC) $(RC_SRCS:.rc=.res) $(SYMBOLFILE) $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -spec $(SRCDIR)/$(MAINSPEC) $(RC_SRCS:%.rc=-res %.res) $(SYMBOLFILE) -L$(DLLDIR) $(DELAYIMPORTS:%=-dl%) $(IMPORTS:%=-l%)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --spec $(SRCDIR)/$(MAINSPEC) $(RC_SRCS:%.rc=-r %.res) $(SYMBOLFILE) $(DLLMAIN:%=-e %) -L$(DLLDIR) $(DELAYIMPORTS:%=-d%) $(IMPORTS:%=-l%)
|
||||
|
||||
$(MODULE).so: $(MAINSPEC).o $(ALL_OBJS) Makefile.in
|
||||
$(LDSHARED) $(LDDLLFLAGS) $(MAINSPEC).o $(ALL_OBJS) -o $@ -L$(DLLDIR) $(LDIMPORTS:%=-l%) $(ALL_LIBS)
|
||||
|
@ -37,12 +37,12 @@ $(MODULE).tmp.o: $(ALL_OBJS) Makefile.in
|
|||
# Rule for 16-bit glue
|
||||
|
||||
$(MODULE).glue.c: $(C_SRCS) $(C_SRCS16) $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -glue -C$(SRCDIR) $(C_SRCS) $(C_SRCS16)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --glue -C$(SRCDIR) $(C_SRCS) $(C_SRCS16)
|
||||
|
||||
# Rules for .dll files
|
||||
|
||||
$(MODULE): $(RCOBJS) $(OBJS) $(MODULE).dbg.o $(SPEC_DEF) Makefile.in
|
||||
$(DLLWRAP) $(DLLWRAPFLAGS) --def $(SPEC_DEF) --implib lib$(MODULE:.dll=.a) -o $@ $(RCOBJS) $(OBJS) $(MODULE).dbg.o -L$(DLLDIR) $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(ALL_LIBS)
|
||||
$(DLLWRAP) $(DLLWRAPFLAGS) --def $(SPEC_DEF) --implib lib$(MODULE:.dll=.a) -o $@ $(RCOBJS) $(OBJS) $(MODULE).dbg.o $(DLLMAIN:%=--entry %) -L$(DLLDIR) $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(ALL_LIBS)
|
||||
|
||||
$(SPEC_DEF): $(WINEBUILD)
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ CROSSOBJS = $(C_SRCS:.c=.cross.o) $(TESTLIST:.c=.cross.o)
|
|||
# Rule for main module spec file
|
||||
|
||||
$(MODULE).spec.c: $(RC_SRCS:.rc=.res) $(OBJS) $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -exe $(MODULE) -mcui $(RC_SRCS:%.rc=-res %.res) $(OBJS) -L$(DLLDIR) $(DELAYIMPORTS:%=-dl%) $(IMPORTS:%=-l%)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -exe $(MODULE) -mcui $(RC_SRCS:%.rc=-r %.res) $(OBJS) -L$(DLLDIR) $(DELAYIMPORTS:%=-d%) $(IMPORTS:%=-l%)
|
||||
|
||||
# Rules for .so main module
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ MODULE = kernel32.dll
|
|||
IMPORTS = ntdll
|
||||
ALTNAMES = krnl386.exe comm.dll stress.dll system.dll toolhelp.dll windebug.dll win87em.dll wprocs.dll
|
||||
LDIMPORTS = ntdll.dll
|
||||
DLLMAIN = MAIN_KernelInit
|
||||
|
||||
C_SRCS = \
|
||||
$(TOPOBJDIR)/ole/ole2nls.c \
|
||||
|
@ -51,7 +52,7 @@ kernel.res: $(MC_SRCS:.mc=.mc.rc)
|
|||
# Special rules for 16-bit resource and spec files
|
||||
|
||||
krnl386.exe.spec.c: krnl386.exe.spec version16.res $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -N kernel -o $@ -M $(MODULE) -spec $(SRCDIR)/krnl386.exe.spec
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -N kernel -o $@ -M $(MODULE) --spec $(SRCDIR)/krnl386.exe.spec
|
||||
|
||||
version16.res: version16.rc
|
||||
$(LDPATH) $(WRC) $(DIVINCL) -o $@ -w16 -m -r $(SRCDIR)/version16.rc
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
init MAIN_KernelInit
|
||||
|
||||
# Functions exported by the Win95 kernel32.dll
|
||||
# (these need to have these exact ordinals, for some win95 dlls
|
||||
# import kernel32.dll by ordinal)
|
||||
|
|
|
@ -138,10 +138,10 @@ EXTRASUBDIRS = \
|
|||
@MAKE_DLL_RULES@
|
||||
|
||||
relay16.s: $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -relay16
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --relay16
|
||||
|
||||
relay32.s: $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -relay32
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --relay32
|
||||
|
||||
clean::
|
||||
$(RM) $(ASM_SRCS)
|
||||
|
|
|
@ -7,6 +7,7 @@ MODULE = user32.dll
|
|||
IMPORTS = gdi32 advapi32 kernel32
|
||||
ALTNAMES = user.exe keyboard.dll ddeml.dll display.dll mouse.dll
|
||||
EXTRALIBS = $(LIBUNICODE)
|
||||
DLLMAIN = UserClientDllInitialize
|
||||
|
||||
LDDLLFLAGS = @LDDLLFLAGS@
|
||||
SYMBOLFILE = $(MODULE).tmp.o
|
||||
|
@ -104,7 +105,7 @@ EXTRASUBDIRS = \
|
|||
# Special rules for 16-bit resource and spec files
|
||||
|
||||
user.exe.spec.c: user.exe.spec resources/version16.res
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -H 65520 -o $@ -M $(MODULE) -spec $(SRCDIR)/user.exe.spec
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -H 65520 -o $@ -M $(MODULE) --spec $(SRCDIR)/user.exe.spec
|
||||
|
||||
resources/display.res: resources/display.rc
|
||||
$(LDPATH) $(WRC) $(DIVINCL) -o $@ -w16 -m -r $(SRCDIR)/resources/display.rc
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
init UserClientDllInitialize
|
||||
|
||||
@ stdcall ActivateKeyboardLayout(long long) ActivateKeyboardLayout
|
||||
@ stdcall AdjustWindowRect(ptr long long) AdjustWindowRect
|
||||
@ stdcall AdjustWindowRectEx(ptr long long long) AdjustWindowRectEx
|
||||
|
|
|
@ -21,8 +21,8 @@ ALL_OBJS = $(SPEC_SRCS:.spec=.spec.o) $(OBJS)
|
|||
$(MODULE): $(ALL_OBJS)
|
||||
$(CC) -o $@ $(ALL_OBJS) -L$(DLLDIR) $(LDIMPORTS:%=-l%) $(LIBWINE) $(LIBUNICODE) $(LIBS) $(LDFLAGS)
|
||||
|
||||
wine.spec.c: wine.spec
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -spec $(SRCDIR)/wine.spec -mgui -L$(DLLDIR) $(IMPORTS:%=-l%)
|
||||
wine.spec.c: $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --exe wine -mgui -e wine_initial_task -L$(DLLDIR) $(IMPORTS:%=-l%)
|
||||
|
||||
install:: $(MODULE)
|
||||
$(MKINSTALLDIRS) $(bindir)
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
init wine_initial_task
|
|
@ -24,7 +24,7 @@ all: $(MODULE)$(DLLEXT) $(BASEMODULE)$(EXEEXT)
|
|||
# Rule for main module spec file
|
||||
|
||||
$(MODULE).spec.c: $(RC_SRCS:.rc=.res) $(ALL_OBJS) $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -exe $(MODULE) $(APPMODE:%=-m%) $(RC_SRCS:%.rc=-res %.res) $(ALL_OBJS) -L$(DLLDIR) $(DELAYIMPORTS:%=-dl%) $(IMPORTS:%=-l%)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --exe $(MODULE) $(APPMODE:%=-m%) $(RC_SRCS:%.rc=-r %.res) $(ALL_OBJS) -L$(DLLDIR) $(DELAYIMPORTS:%=-d%) $(IMPORTS:%=-l%)
|
||||
|
||||
# Rules for .so main module
|
||||
|
||||
|
|
|
@ -18,13 +18,13 @@ C_SRCS = \
|
|||
all: $(PROGRAMS:%=%$(DLLEXT)) $(PROGRAMS:.exe=$(EXEEXT))
|
||||
|
||||
aviinfo.exe.spec.c: aviinfo.o $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -exe aviinfo.exe -mgui aviinfo.o -L$(DLLDIR) -lkernel32
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --exe aviinfo.exe -mgui aviinfo.o -L$(DLLDIR) -lkernel32
|
||||
|
||||
aviplay.exe.spec.c: aviplay.o $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -exe aviplay.exe -mgui aviplay.o -L$(DLLDIR) -lddraw -lkernel32
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --exe aviplay.exe -mgui aviplay.o -L$(DLLDIR) -lddraw -lkernel32
|
||||
|
||||
icinfo.exe.spec.c: icinfo.o $(WINEBUILD)
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -exe icinfo.exe -mgui icinfo.o -L$(DLLDIR) -lmsvfw32 -lkernel32
|
||||
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ --exe icinfo.exe -mgui icinfo.o -L$(DLLDIR) -lmsvfw32 -lkernel32
|
||||
|
||||
aviinfo.exe.so: aviinfo.o aviinfo.exe.spec.o
|
||||
$(LDSHARED) $(LDDLLFLAGS) -o $@ aviinfo.o aviinfo.exe.spec.o $(ALL_LIBS)
|
||||
|
|
|
@ -125,6 +125,7 @@ static void do_exe_mode( const char *arg );
|
|||
static void do_module( const char *arg );
|
||||
static void do_heap( const char *arg );
|
||||
static void do_name( const char *arg );
|
||||
static void do_entry( const char *arg );
|
||||
static void do_spec( const char *arg );
|
||||
static void do_def( const char *arg );
|
||||
static void do_exe( const char *arg );
|
||||
|
@ -132,7 +133,6 @@ static void do_glue(void);
|
|||
static void do_relay16(void);
|
||||
static void do_relay32(void);
|
||||
static void do_debug(void);
|
||||
static void do_sym(void);
|
||||
static void do_chdir( const char *arg );
|
||||
static void do_lib( const char *arg );
|
||||
static void do_import( const char *arg );
|
||||
|
@ -141,30 +141,31 @@ static void do_rsrc( const char *arg );
|
|||
|
||||
static const struct option_descr option_table[] =
|
||||
{
|
||||
{ "-h", 0, do_usage, "-h Display this help message" },
|
||||
{ "-w", 0, do_warnings,"-w Turn on warnings" },
|
||||
{ "-C", 1, do_chdir, "-C dir Change directory to <dir> before opening source files" },
|
||||
{ "-f", 1, do_f_flags, "-f flags Compiler flags (only -fPIC is supported)" },
|
||||
{ "-D", 1, do_define, "-D sym Ignored for C flags compatibility" },
|
||||
{ "-I", 1, do_include, "-I dir Ignored for C flags compatibility" },
|
||||
{ "-K", 1, do_k_flags, "-K flags Compiler flags (only -KPIC is supported)" },
|
||||
{ "-m", 1, do_exe_mode,"-m mode Set the executable mode (cui|gui|cuiw|guiw)" },
|
||||
{ "-M", 1, do_module, "-M module Set the name of the main (Win32) module for a Win16 dll" },
|
||||
{ "-L", 1, do_lib, "-L directory Look for imports libraries in 'directory'" },
|
||||
{ "-l", 1, do_import, "-l lib.dll Import the specified library" },
|
||||
{ "-dl", 1, do_dimport, "-dl lib.dll Delay-import the specified library" },
|
||||
{ "-H", 1, do_heap, "-H size Set the heap size for a Win16 dll" },
|
||||
{ "-N", 1, do_name, "-N dllname Set the DLL name (default: set from input file name)" },
|
||||
{ "-res", 1, do_rsrc, "-res rsrc.res Load resources from rsrc.res" },
|
||||
{ "-o", 1, do_output, "-o name Set the output file name (default: stdout)\n" },
|
||||
{ "-sym", 0, do_sym, NULL }, /* ignored for backwards compatibility */
|
||||
{ "-spec", 1, do_spec, "-spec file.spec Build a .c file from a spec file" },
|
||||
{ "-def", 1, do_def, "-def file.spec Build a .def file from a spec file" },
|
||||
{ "-exe", 1, do_exe, "-exe name Build a .c file for the named executable" },
|
||||
{ "-debug", 0, do_debug, "-debug [files] Build a .c file containing debug channels declarations" },
|
||||
{ "-glue", 0, do_glue, "-glue [files] Build the 16-bit glue for the source files" },
|
||||
{ "-relay16", 0, do_relay16, "-relay16 Build the 16-bit relay assembly routines" },
|
||||
{ "-relay32", 0, do_relay32, "-relay32 Build the 32-bit relay assembly routines" },
|
||||
{ "-h", 0, do_usage, "-h Display this help message" },
|
||||
{ "-w", 0, do_warnings,"-w Turn on warnings" },
|
||||
{ "-C", 1, do_chdir, "-C dir Change directory to <dir> before opening source files" },
|
||||
{ "-f", 1, do_f_flags, "-f flags Compiler flags (only -fPIC is supported)" },
|
||||
{ "-D", 1, do_define, "-D sym Ignored for C flags compatibility" },
|
||||
{ "-I", 1, do_include, "-I dir Ignored for C flags compatibility" },
|
||||
{ "-K", 1, do_k_flags, "-K flags Compiler flags (only -KPIC is supported)" },
|
||||
{ "-m", 1, do_exe_mode,"-m mode Set the executable mode (cui|gui|cuiw|guiw)" },
|
||||
{ "-M", 1, do_module, "-M module Set the name of the main (Win32) module for a Win16 dll" },
|
||||
{ "-L", 1, do_lib, "-L directory Look for imports libraries in 'directory'" },
|
||||
{ "-l", 1, do_import, "-l lib.dll Import the specified library" },
|
||||
{ "-d", 1, do_dimport, "-d lib.dll Delay-import the specified library" },
|
||||
{ "-H", 1, do_heap, "-H size Set the heap size for a Win16 dll" },
|
||||
{ "-N", 1, do_name, "-N dllname Set the DLL name (default: set from input file name)" },
|
||||
{ "-e", 1, do_entry, "-e function Set the DLL entry point function (default: DllMain)" },
|
||||
{ "-r", 1, do_rsrc, "-r rsrc.res Load resources from rsrc.res" },
|
||||
{ "-res", 1, do_rsrc, NULL }, /* for backwards compatibility, will disappear */
|
||||
{ "-o", 1, do_output, "-o name Set the output file name (default: stdout)\n" },
|
||||
{ "--spec", 1, do_spec, "--spec file.spec Build a .c file from a spec file" },
|
||||
{ "--def", 1, do_def, "--def file.spec Build a .def file from a spec file" },
|
||||
{ "--exe", 1, do_exe, "--exe name Build a .c file for the named executable" },
|
||||
{ "--debug", 0, do_debug, "--debug [files] Build a .c file containing debug channels declarations" },
|
||||
{ "--glue", 0, do_glue, "--glue [files] Build the 16-bit glue for the source files" },
|
||||
{ "--relay16", 0, do_relay16, "--relay16 Build the 16-bit relay assembly routines" },
|
||||
{ "--relay32", 0, do_relay32, "--relay32 Build the 32-bit relay assembly routines" },
|
||||
{ NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
|
@ -192,7 +193,7 @@ static void do_usage(void)
|
|||
for (opt = option_table; opt->name; opt++)
|
||||
if (opt->usage) fprintf( stderr, " %s\n", opt->usage );
|
||||
|
||||
fprintf( stderr, "\nExactly one of -spec, -def, -exe, -debug, -glue, -relay16 or -relay32 must be specified.\n\n" );
|
||||
fprintf( stderr, "\nExactly one of --spec, --def, --exe, --debug, --glue, --relay16 or --relay32 must be specified.\n\n" );
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -238,6 +239,11 @@ static void do_name( const char *arg )
|
|||
DLLName[sizeof(DLLName) - 1] = 0;
|
||||
}
|
||||
|
||||
static void do_entry( const char *arg )
|
||||
{
|
||||
init_func = xstrdup( arg );
|
||||
}
|
||||
|
||||
static void do_spec( const char *arg )
|
||||
{
|
||||
if (exec_mode != MODE_NONE || !arg[0]) do_usage();
|
||||
|
@ -310,11 +316,6 @@ static void do_relay32(void)
|
|||
exec_mode = MODE_RELAY32;
|
||||
}
|
||||
|
||||
static void do_sym(void)
|
||||
{
|
||||
/* nothing */
|
||||
}
|
||||
|
||||
static void do_lib( const char *arg )
|
||||
{
|
||||
lib_path = xrealloc( lib_path, (nb_lib_paths+1) * sizeof(*lib_path) );
|
||||
|
@ -345,22 +346,29 @@ static void parse_options( char *argv[] )
|
|||
|
||||
for (ptr = last = argv + 1; *ptr; ptr++)
|
||||
{
|
||||
/* first check the exact option name */
|
||||
for (opt = option_table; opt->name; opt++)
|
||||
{
|
||||
if (opt->has_arg && !strncmp( *ptr, opt->name, strlen(opt->name) ))
|
||||
if (!strcmp( *ptr, opt->name ) ||
|
||||
/* for long option check without the first dash too */
|
||||
(opt->name[1] == '-' && !strcmp( *ptr, opt->name+1 )))
|
||||
{
|
||||
arg=*ptr+strlen(opt->name);
|
||||
if (*arg=='\0')
|
||||
{
|
||||
ptr++;
|
||||
arg=*ptr;
|
||||
}
|
||||
if (opt->has_arg) arg = *(++ptr);
|
||||
else arg = NULL;
|
||||
break;
|
||||
}
|
||||
if (!strcmp( *ptr, opt->name ))
|
||||
}
|
||||
|
||||
/* now check for option name concatenated with argument */
|
||||
if (!opt->name)
|
||||
{
|
||||
for (opt = option_table; opt->name; opt++)
|
||||
{
|
||||
arg=NULL;
|
||||
break;
|
||||
if (opt->has_arg && !strncmp( *ptr, opt->name, strlen(opt->name) ))
|
||||
{
|
||||
arg = *ptr + strlen(opt->name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -504,13 +504,7 @@ SPEC_TYPE ParseTopLevel( FILE *file, int def_only )
|
|||
|
||||
while ((token = GetToken(1)) != NULL)
|
||||
{
|
||||
if (strcmp(token, "init") == 0)
|
||||
{
|
||||
if (SpecType == SPEC_WIN16)
|
||||
fatal_error( "init cannot be used for Win16 spec files\n" );
|
||||
init_func = xstrdup( GetToken(0) );
|
||||
}
|
||||
else if (strcmp(token, "rsrc") == 0)
|
||||
if (strcmp(token, "rsrc") == 0)
|
||||
{
|
||||
if (!def_only)
|
||||
{
|
||||
|
|
|
@ -19,7 +19,7 @@ option can be specified, as described in the \fBOPTIONS\fR section.
|
|||
You have to specify exactly one of the following options, depending on
|
||||
what you want winebuild to generate.
|
||||
.TP
|
||||
.BI \-spec\ file.spec
|
||||
.BI \--spec\ file.spec
|
||||
Build a C file from a spec file (see \fBSPEC FILE SYNTAX\fR for
|
||||
details). The resulting C file must be compiled and linked to the
|
||||
other object files to build a working Wine dll.
|
||||
|
@ -32,20 +32,20 @@ final dll, to allow
|
|||
to get the list of all undefined symbols that need to be imported from
|
||||
other dlls.
|
||||
.TP
|
||||
.BI \-exe\ name
|
||||
.BI \--exe\ name
|
||||
Build a C file for the named executable. This is basically the same as
|
||||
the -spec mode except that it doesn't require a .spec file as input,
|
||||
the --spec mode except that it doesn't require a .spec file as input,
|
||||
since an executable doesn't export functions. The resulting C file
|
||||
must be compiled and linked to the other object files to build a
|
||||
working Wine executable, and all the other object files must be listed
|
||||
as
|
||||
.I input files.
|
||||
.TP
|
||||
.BI \-def\ file.spec
|
||||
.BI \--def\ file.spec
|
||||
Build a .def file from a spec file. This is used when building dlls
|
||||
with a PE (Win32) compiler.
|
||||
.TP
|
||||
.B \-debug
|
||||
.B \--debug
|
||||
Build a C file containing the definitions for debugging channels. In
|
||||
that mode the
|
||||
.I input files
|
||||
|
@ -53,18 +53,18 @@ should be a list of C files to search for debug channel
|
|||
definitions. The resulting C file must be compiled and linked with the
|
||||
dll.
|
||||
.TP
|
||||
.B \-glue
|
||||
.B \--glue
|
||||
Build a C file containing the glue code for the 16-bit calls contained
|
||||
in the
|
||||
.I input files.
|
||||
These calls must be specified in the source files using special
|
||||
markers, as described in the \fBGLUE FUNCTIONS\fR section.
|
||||
.TP
|
||||
.B \-relay16
|
||||
.B \--relay16
|
||||
Generate the assembly code for the 16-bit relay routines. This is for
|
||||
Wine internal usage only, you should never need to use this option.
|
||||
.TP
|
||||
.B \-relay32
|
||||
.B \--relay32
|
||||
Generate the assembly code for the 32-bit relay routines. This is for
|
||||
Wine internal usage only, you should never need to use this option.
|
||||
.SH OPTIONS
|
||||
|
@ -72,11 +72,22 @@ Wine internal usage only, you should never need to use this option.
|
|||
.BI \-C\ directory
|
||||
Change to the specified directory before reading source files. Only
|
||||
meaningful in
|
||||
.BR \-debug\ and\ -glue\ modes.
|
||||
.BR \--debug\ and\ --glue\ modes.
|
||||
.TP
|
||||
.BI \-D\ symbol
|
||||
Ignored for compatibility with the C compiler.
|
||||
.TP
|
||||
.BI \-e\ function
|
||||
Specify the module entry point function; if not specified, the default
|
||||
is
|
||||
.B DllMain
|
||||
for dlls, and
|
||||
.B main
|
||||
or
|
||||
.B WinMain
|
||||
for CUI or GUI executables respectively. This is only valid for Win32
|
||||
modules.
|
||||
.TP
|
||||
.BI \-f\ flags
|
||||
Ignored for compatibility with the C compiler.
|
||||
.TP
|
||||
|
@ -110,7 +121,7 @@ imported from it is actually called).
|
|||
.BI \-M\ module
|
||||
Specify that we are building a 16-bit dll, that will ultimately be
|
||||
linked together with the 32-bit dll specified in \fImodule\fR. Only
|
||||
meaningful in \fB-spec\fR mode.
|
||||
meaningful in \fB--spec\fR mode.
|
||||
.TP
|
||||
.BI \-m\ mode
|
||||
Set the executable mode, which can be one of the following:
|
||||
|
@ -132,7 +143,7 @@ function. A graphical executable has a \fBWinMain\fR entry point
|
|||
instead. The ASCII/Unicode distinction applies to the strings that are
|
||||
passed to the entry point.
|
||||
.br
|
||||
This option is only meaningful in \fB-exe\fR mode.
|
||||
This option is only meaningful in \fB--exe\fR mode.
|
||||
.TP
|
||||
.BI \-N\ dllname
|
||||
Set the internal name of the module. It is only used in Win16
|
||||
|
@ -143,7 +154,7 @@ KRNL386.EXE. It shouldn't be needed otherwise.
|
|||
.BI \-o\ file
|
||||
Set the name of the output file (default is standard output).
|
||||
.TP
|
||||
.BI \-res\ rsrc.res
|
||||
.BI \-r\ rsrc.res
|
||||
Load resources from the specified binary resource file. The
|
||||
\fIrsrc.res\fR can be produced from a source resource file with
|
||||
.BR wrc(1)
|
||||
|
@ -156,8 +167,6 @@ Turn on warnings.
|
|||
A spec file should contain a number of optional directives, and then a
|
||||
list of ordinal declarations. The general syntax is the following:
|
||||
.PP
|
||||
.RB [ init\ \fIfunction\fR]
|
||||
.br
|
||||
.RB [ rsrc\ \fIresfile\fR]
|
||||
.br
|
||||
.RB [ ignore\ (\ [ \fIsymbols...\fR ]\ )\ ]
|
||||
|
@ -182,10 +191,6 @@ list of ordinal declarations. The general syntax is the following:
|
|||
.IB ordinal\ forward
|
||||
.RI [ flags ]\ exportname\ forwardname
|
||||
.SS "Optional directives"
|
||||
.B init
|
||||
specifies a function which will be called when this dll is
|
||||
loaded. This is only valid for Win32 modules.
|
||||
.PP
|
||||
.B rsrc
|
||||
specifies the path of the compiled resource file.
|
||||
.PP
|
||||
|
@ -388,7 +393,7 @@ Glue functions are used to call down to 16-bit code from a 32-bit
|
|||
function. This is done by declaring a special type of function
|
||||
prototype in the source file that needs to call to 16-bit code, and
|
||||
processing the source file through
|
||||
.I winebuild -glue.
|
||||
.I winebuild --glue.
|
||||
.PP
|
||||
These prototypes must be of one of the following forms:
|
||||
.PP
|
||||
|
|
|
@ -1626,11 +1626,6 @@ sub generate_spec_file($$$)
|
|||
return;
|
||||
}
|
||||
|
||||
if (defined @$target[$T_INIT] and ((@$target[$T_FLAGS] & $TF_WRAP) == 0)) {
|
||||
print FILEO "init @$target[$T_INIT]\n";
|
||||
}
|
||||
print FILEO "\n";
|
||||
|
||||
# Don't forget to export the 'Main' function for wrapped executables,
|
||||
# except for MFC ones!
|
||||
if ((@$target[$T_FLAGS]&($TF_WRAP|$TF_WRAPPER|$TF_MFC)) == $TF_WRAP) {
|
||||
|
@ -1902,9 +1897,9 @@ sub generate_project_files($)
|
|||
|
||||
$canon =~ s/_so$//;
|
||||
if (@$target[$T_TYPE] == $TT_GUIEXE) {
|
||||
$mode = "-m gui -exe @$target[$T_NAME]";
|
||||
$mode = "-m gui --exe @$target[$T_NAME]";
|
||||
} elsif (@$target[$T_TYPE] == $TT_CUIEXE) {
|
||||
$mode = "-m cui -exe @$target[$T_NAME]";
|
||||
$mode = "-m cui --exe @$target[$T_NAME]";
|
||||
} else {
|
||||
$mode = "";
|
||||
}
|
||||
|
@ -1918,7 +1913,7 @@ sub generate_project_files($)
|
|||
}
|
||||
|
||||
print FILEO "@$target[$T_NAME].spec.c: \$(${canon}_SPEC_SRCS) \$(${canon}_RC_SRCS:.rc=.res) \$(${canon}_OBJS)\n";
|
||||
print FILEO "\t\$(LD_PATH) \$(WINEBUILD) -fPIC -o \$\@ \$(${canon}_SPEC_SRCS:%=-spec %) \$(${canon}_RC_SRCS:%.rc=-res %.res) \$(${canon}_DLL_PATH) \$(WINE_DLL_PATH) \$(GLOBAL_DLL_PATH) $all_dlls $mode \$(${canon}_OBJS)\n";
|
||||
print FILEO "\t\$(LD_PATH) \$(WINEBUILD) -fPIC -o \$\@ \$(${canon}_SPEC_SRCS:%=--spec %) \$(${canon}_RC_SRCS:%.rc=-r %.res) \$(${canon}_DLL_PATH) \$(WINE_DLL_PATH) \$(GLOBAL_DLL_PATH) $all_dlls $mode \$(${canon}_OBJS)\n";
|
||||
print FILEO "\n";
|
||||
print FILEO "@$target[$T_NAME].so: @$target[$T_NAME].spec.o \$(${canon}_OBJS) \$(${canon}_DEPENDS) \n";
|
||||
if (@{@$target[$T_SOURCES_CXX]} > 0 or @{@$project_settings[$T_SOURCES_CXX]} > 0) {
|
||||
|
|
Loading…
Reference in New Issue