diff --git a/Make.rules.in b/Make.rules.in index f4001096ef3..696614469c7 100644 --- a/Make.rules.in +++ b/Make.rules.in @@ -14,7 +14,7 @@ DEFS = -D__WINESRC__ $(EXTRADEFS) ALLCFLAGS = $(DEFS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS) IDLFLAGS = $(DEFS) $(EXTRAIDLFLAGS) -RCFLAGS = --nostdinc $(PORCFLAGS) $(TARGETFLAGS) $(DEFS) $(EXTRARCFLAGS) +RCFLAGS = --nostdinc $(PORCFLAGS) $(DEFS) OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(OBJC_SRCS:.m=.o) \ $(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.res) $(EXTRA_OBJS) diff --git a/Make.vars.in b/Make.vars.in index d4b346a2bf7..92d8c064e90 100644 --- a/Make.vars.in +++ b/Make.vars.in @@ -65,8 +65,8 @@ LIBPORT = $(top_builddir)/libs/port/libwine_port.a LIBWPP = $(top_builddir)/libs/wpp/libwpp.a LIBWINE = -L$(top_builddir)/libs/wine -lwine LIBWINE_STATIC = $(top_builddir)/libs/wine/libwine_static.a -WINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc $(TARGETFLAGS) -B$(TOOLSDIR)/tools/winebuild --sysroot=$(top_builddir) @UNWINDFLAGS@ -CROSSWINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc $(CROSSTARGET:%=-b %) -B$(TOOLSDIR)/tools/winebuild --sysroot=$(top_builddir) --lib-suffix=.cross.a +WINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc -B$(TOOLSDIR)/tools/winebuild --sysroot=$(top_builddir) @UNWINDFLAGS@ +CROSSWINEGCC = $(TOOLSDIR)/tools/winegcc/winegcc -B$(TOOLSDIR)/tools/winebuild --sysroot=$(top_builddir) --lib-suffix=.cross.a SED_CMD = LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g' LDRPATH_INSTALL = @LDRPATH_INSTALL@ LDRPATH_LOCAL = @LDRPATH_LOCAL@ diff --git a/dlls/display.drv16/Makefile.in b/dlls/display.drv16/Makefile.in index 1c2f34c0f1b..e3fd200f0fa 100644 --- a/dlls/display.drv16/Makefile.in +++ b/dlls/display.drv16/Makefile.in @@ -2,7 +2,6 @@ MODULE = display.drv16 IMPORTS = user32 EXTRADLLFLAGS = -m16 -EXTRARCFLAGS = -m16 C_SRCS = display.c diff --git a/dlls/gdi.exe16/Makefile.in b/dlls/gdi.exe16/Makefile.in index 8f87e289025..5b0676a1a34 100644 --- a/dlls/gdi.exe16/Makefile.in +++ b/dlls/gdi.exe16/Makefile.in @@ -2,7 +2,6 @@ MODULE = gdi.exe16 IMPORTS = user32 advapi32 gdi32 EXTRADLLFLAGS = -m16 -Wb,--main-module,gdi32.dll,--heap,65520 -EXTRARCFLAGS = -m16 C_SRCS = \ bidi.c \ diff --git a/dlls/krnl386.exe16/Makefile.in b/dlls/krnl386.exe16/Makefile.in index 4facf93a0cd..5db734de28e 100644 --- a/dlls/krnl386.exe16/Makefile.in +++ b/dlls/krnl386.exe16/Makefile.in @@ -3,7 +3,6 @@ IMPORTLIB = kernel IMPORTS = winecrt0 kernel32 ntdll DELAYIMPORTS = ddraw dsound user32 EXTRADLLFLAGS = -m16 -nodefaultlibs -Wb,--dll-name,kernel -EXTRARCFLAGS = -m16 C_SRCS = \ atom.c \ diff --git a/dlls/mouse.drv16/Makefile.in b/dlls/mouse.drv16/Makefile.in index c74e4234591..a50fd21cda7 100644 --- a/dlls/mouse.drv16/Makefile.in +++ b/dlls/mouse.drv16/Makefile.in @@ -2,7 +2,6 @@ MODULE = mouse.drv16 IMPORTS = user32 EXTRADLLFLAGS = -m16 -EXTRARCFLAGS = -m16 C_SRCS = mouse.c diff --git a/dlls/ole2nls.dll16/Makefile.in b/dlls/ole2nls.dll16/Makefile.in index f7cf7357ff9..ff5a883d9e7 100644 --- a/dlls/ole2nls.dll16/Makefile.in +++ b/dlls/ole2nls.dll16/Makefile.in @@ -1,7 +1,6 @@ MODULE = ole2nls.dll16 EXTRADLLFLAGS = -m16 -Wb,--main-module,ole32.dll -EXTRARCFLAGS = -m16 C_SRCS = ole2nls.c diff --git a/dlls/shell.dll16/Makefile.in b/dlls/shell.dll16/Makefile.in index 5512b54c0cc..ef7cc30610a 100644 --- a/dlls/shell.dll16/Makefile.in +++ b/dlls/shell.dll16/Makefile.in @@ -2,7 +2,6 @@ MODULE = shell.dll16 IMPORTS = shell32 user32 gdi32 advapi32 EXTRADLLFLAGS = -m16 -Wb,--main-module,shell32.dll -EXTRARCFLAGS = -m16 C_SRCS = shell.c diff --git a/dlls/user.exe16/Makefile.in b/dlls/user.exe16/Makefile.in index b50b3c95a5d..2952f0d318f 100644 --- a/dlls/user.exe16/Makefile.in +++ b/dlls/user.exe16/Makefile.in @@ -1,7 +1,6 @@ MODULE = user.exe16 IMPORTS = mpr user32 gdi32 EXTRADLLFLAGS = -m16 -Wb,--main-module,user32.dll,--heap,65520 -EXTRARCFLAGS = -m16 C_SRCS = \ bidi.c \ diff --git a/tools/makedep.c b/tools/makedep.c index 3b6b84a1b95..9bd8295392c 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -1361,7 +1361,7 @@ static void output_include( struct incl_file *pFile, struct incl_file *owner ) static struct strarray output_sources(void) { struct incl_file *source; - int i; + int i, is_win16 = 0; const char *dllext = ".so"; struct strarray object_files = empty_strarray; struct strarray crossobj_files = empty_strarray; @@ -1379,7 +1379,9 @@ static struct strarray output_sources(void) struct strarray dllflags = get_expanded_make_var_array( "DLLFLAGS" ); struct strarray imports = get_expanded_make_var_array( "IMPORTS" ); struct strarray all_targets = get_expanded_make_var_array( "PROGRAMS" ); + struct strarray targetflags = get_expanded_make_var_array( "TARGETFLAGS" ); struct strarray delayimports = get_expanded_make_var_array( "DELAYIMPORTS" ); + struct strarray extradllflags = get_expanded_make_var_array( "EXTRADLLFLAGS" ); char *module = get_expanded_make_variable( "MODULE" ); char *exeext = get_expanded_make_variable( "EXEEXT" ); char *testdll = get_expanded_make_variable( "TESTDLL" ); @@ -1389,6 +1391,7 @@ static struct strarray output_sources(void) if (exeext && !strcmp( exeext, ".exe" )) dllext = ""; if (module && strendswith( module, ".a" )) staticlib = module; + for (i = 0; i < extradllflags.count; i++) if (!strcmp( extradllflags.str[i], "-m16" )) is_win16 = 1; strarray_add( &includes, "-I." ); if (src_dir) strarray_add( &includes, strmake( "-I%s", src_dir )); @@ -1457,6 +1460,8 @@ static struct strarray output_sources(void) output( "%s.res: $(WRC) $(ALL_MO_FILES) %s\n", obj, sourcedep ); output( "\t$(WRC) -o $@ %s", source->filename ); output_filenames( includes ); + if (is_win16) output_filename( "-m16" ); + else output_filenames( targetflags ); output_filename( "$(RCFLAGS)" ); output( "\n" ); output( "%s.res rsrc.pot:", obj ); @@ -1467,6 +1472,8 @@ static struct strarray output_sources(void) output( "%s.res: $(WRC) %s\n", obj, sourcedep ); output( "\t$(WRC) -o $@ %s", source->filename ); output_filenames( includes ); + if (is_win16) output_filename( "-m16" ); + else output_filenames( targetflags ); output_filename( "$(RCFLAGS)" ); output( "\n" ); output( "%s.res:", obj ); @@ -1502,7 +1509,7 @@ static struct strarray output_sources(void) output( ": $(WIDL)\n" ); output( "\t$(WIDL) -o $@ %s", source->filename ); output_filenames( includes ); - output_filename( "$(TARGETFLAGS)" ); + output_filenames( targetflags ); output_filename( "$(IDLFLAGS)" ); output( "\n" ); output_filenames( targets ); @@ -1621,6 +1628,8 @@ static struct strarray output_sources(void) output( "\n" ); output( "\t$(WRC) -O pot -o $@" ); output_filenames( includes ); + if (is_win16) output_filename( "-m16" ); + else output_filenames( targetflags ); output_filename( "$(RCFLAGS)" ); output_filenames( po_files ); output( "\n" ); @@ -1648,7 +1657,6 @@ static struct strarray output_sources(void) if (module && !staticlib) { - int is_win16 = strendswith( module, "16" ); char *importlib = get_expanded_make_variable( "IMPORTLIB" ); struct strarray all_libs = empty_strarray; char *spec_file = appmode ? NULL : replace_extension( module, ".dll", ".spec" ); @@ -1681,10 +1689,11 @@ static struct strarray output_sources(void) output_filenames( res_files ); output( "\n" ); output( "\t$(WINEGCC) -o $@" ); + output_filenames( targetflags ); if (spec_file) { output( " -shared %s", spec_file ); - output_filenames( get_expanded_make_var_array( "EXTRADLLFLAGS" )); + output_filenames( extradllflags ); } else output_filename( appmode ); output_filenames( object_files ); @@ -1700,7 +1709,7 @@ static struct strarray output_sources(void) strarray_add( &clean_files, strmake( "lib%s.def", importlib )); output( "lib%s.def: %s\n", importlib, spec_file ); output( "\t$(WINEBUILD) -w --def -o $@ --export %s", spec_file ); - output_filenames( get_expanded_make_var_array( "TARGETFLAGS" )); + output_filenames( targetflags ); if (is_win16) output_filename( "-m16" ); output( "\n" ); if (implib_objs.count) @@ -1723,7 +1732,7 @@ static struct strarray output_sources(void) output_filenames( implib_objs ); output( "\n" ); output( "\t$(WINEBUILD) -w --implib -o $@ --export %s", spec_file ); - output_filenames( get_expanded_make_var_array( "TARGETFLAGS" )); + output_filenames( targetflags ); output_filenames( implib_objs ); output( "\n" ); } @@ -1816,6 +1825,7 @@ static struct strarray output_sources(void) strarray_add( &clean_files, strmake( "%s%s", stripped, dllext )); output( "%s%s:\n", testmodule, dllext ); output( "\t$(WINEGCC) -o $@" ); + output_filenames( targetflags ); if (appmode) output_filename( appmode ); output_filenames( object_files ); output_filenames( res_files ); @@ -1823,7 +1833,9 @@ static struct strarray output_sources(void) output_filename( "$(LDFLAGS)" ); output( "\n" ); output( "%s%s:\n", stripped, dllext ); - output( "\t$(WINEGCC) -s -o $@ -Wb,-F,%s", testmodule ); + output( "\t$(WINEGCC) -s -o $@" ); + output_filenames( targetflags ); + output_filename( strmake( "-Wb,-F,%s", testmodule )); if (appmode) output_filename( appmode ); output_filenames( object_files ); output_filenames( res_files ); @@ -1840,7 +1852,7 @@ static struct strarray output_sources(void) char *testres = replace_extension( testdll, ".dll", "_test.res" ); output( "all: %s/programs/winetest/%s\n", top_obj_dir, testres ); output( "%s/programs/winetest/%s: %s%s\n", top_obj_dir, testres, stripped, dllext ); - output( "\techo \"%s TESTRES \\\"%s%s\\\"\" | $(WRC) $(RCFLAGS) -o $@\n", + output( "\techo \"%s TESTRES \\\"%s%s\\\"\" | $(WRC) -o $@\n", testmodule, stripped, dllext ); } @@ -1854,7 +1866,7 @@ static struct strarray output_sources(void) output_filenames( crossobj_files ); output_filenames( res_files ); output( "\n" ); - output( "\t$(CROSSWINEGCC) -o $@" ); + output( "\t$(CROSSWINEGCC) -o $@ -b %s", crosstarget ); output_filenames( crossobj_files ); output_filenames( res_files ); output_filenames( all_libs );