makefiles: Automatically add the necessary msvcrt flags to the generated rules.

This commit is contained in:
Alexandre Julliard 2014-01-08 12:38:55 +01:00
parent ddc7f300e2
commit 3e40fea9d6
31 changed files with 31 additions and 62 deletions

View File

@ -11,7 +11,7 @@
# First some useful definitions # First some useful definitions
ALLCFLAGS = $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS) ALLCFLAGS = $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS)
IDLFLAGS = $(EXTRAIDLFLAGS) IDLFLAGS = $(EXTRAIDLFLAGS)
RCFLAGS = --nostdinc $(PORCFLAGS) RCFLAGS = --nostdinc $(PORCFLAGS)

View File

@ -22,6 +22,7 @@ CROSSCC = @CROSSCC@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
EXTRACFLAGS = @EXTRACFLAGS@ EXTRACFLAGS = @EXTRACFLAGS@
MSVCRTFLAGS = @BUILTINFLAG@
TARGETFLAGS = @TARGETFLAGS@ TARGETFLAGS = @TARGETFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
BISON = @BISON@ BISON = @BISON@

2
configure vendored
View File

@ -14388,6 +14388,8 @@ install install-lib:: $wine_binary-preloader
uninstall:: uninstall::
\$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader
preloader_EXTRADEFS = $BUILTINFLAG
" ;; " ;;
esac esac
;; ;;

View File

@ -1994,6 +1994,8 @@ install install-lib:: $wine_binary-preloader
uninstall:: uninstall::
\$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader
preloader_EXTRADEFS = $BUILTINFLAG
"]) ;; "]) ;;
esac esac
;; ;;

View File

@ -1,8 +1,6 @@
MODULE = crtdll.dll MODULE = crtdll.dll
IMPORTLIB = crtdll IMPORTLIB = crtdll
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
crtdll_main.c crtdll_main.c

View File

@ -17,7 +17,6 @@
*/ */
#include "config.h" #include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>

View File

@ -1,7 +1,5 @@
MODULE = msvcp100.dll MODULE = msvcp100.dll
IMPORTS = msvcr100 IMPORTS = msvcr100
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -D_MSVCP_VER=100 EXTRADEFS = -D_MSVCP_VER=100
PARENTSRC = ../msvcp90 PARENTSRC = ../msvcp90

View File

@ -1,7 +1,5 @@
TESTDLL = msvcp100.dll TESTDLL = msvcp100.dll
APPMODE = -mno-cygwin APPMODE = -mno-cygwin
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
misc.c \ misc.c \

View File

@ -1,7 +1,5 @@
MODULE = msvcp110.dll MODULE = msvcp110.dll
IMPORTS = msvcr110 IMPORTS = msvcr110
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -D_MSVCP_VER=110 EXTRADEFS = -D_MSVCP_VER=110
PARENTSRC = ../msvcp90 PARENTSRC = ../msvcp90

View File

@ -1,7 +1,5 @@
MODULE = msvcp60.dll MODULE = msvcp60.dll
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
exception.c \ exception.c \

View File

@ -1,7 +1,5 @@
TESTDLL = msvcp60.dll TESTDLL = msvcp60.dll
APPMODE = -mno-cygwin APPMODE = -mno-cygwin
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
ios.c \ ios.c \

View File

@ -1,7 +1,5 @@
MODULE = msvcp71.dll MODULE = msvcp71.dll
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -D_MSVCP_VER=71 EXTRADEFS = -D_MSVCP_VER=71
PARENTSRC = ../msvcp90 PARENTSRC = ../msvcp90

View File

@ -1,7 +1,5 @@
MODULE = msvcp80.dll MODULE = msvcp80.dll
IMPORTS = msvcr80 IMPORTS = msvcr80
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -D_MSVCP_VER=80 EXTRADEFS = -D_MSVCP_VER=80
PARENTSRC = ../msvcp90 PARENTSRC = ../msvcp90

View File

@ -1,7 +1,5 @@
MODULE = msvcp90.dll MODULE = msvcp90.dll
IMPORTS = msvcr90 IMPORTS = msvcr90
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -D_MSVCP_VER=90 EXTRADEFS = -D_MSVCP_VER=90
C_SRCS = \ C_SRCS = \

View File

@ -1,7 +1,5 @@
TESTDLL = msvcp90.dll TESTDLL = msvcp90.dll
APPMODE = -mno-cygwin APPMODE = -mno-cygwin
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
ios.c \ ios.c \

View File

@ -1,8 +1,6 @@
MODULE = msvcr100.dll MODULE = msvcr100.dll
IMPORTLIB = msvcr100 IMPORTLIB = msvcr100
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
msvcr100.c msvcr100.c

View File

@ -1,7 +1,5 @@
TESTDLL = msvcr100.dll TESTDLL = msvcr100.dll
APPMODE = -mno-cygwin APPMODE = -mno-cygwin
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
msvcr100.c msvcr100.c

View File

@ -1,8 +1,6 @@
MODULE = msvcr110.dll MODULE = msvcr110.dll
IMPORTLIB = msvcr110 IMPORTLIB = msvcr110
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
msvcr110.c msvcr110.c

View File

@ -1,8 +1,6 @@
MODULE = msvcr80.dll MODULE = msvcr80.dll
IMPORTLIB = msvcr80 IMPORTLIB = msvcr80
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
msvcr80.c msvcr80.c

View File

@ -1,8 +1,6 @@
MODULE = msvcr90.dll MODULE = msvcr90.dll
IMPORTLIB = msvcr90 IMPORTLIB = msvcr90
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
msvcr90.c msvcr90.c

View File

@ -1,7 +1,5 @@
TESTDLL = msvcr90.dll TESTDLL = msvcr90.dll
APPMODE = -mno-cygwin APPMODE = -mno-cygwin
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
msvcr90.c msvcr90.c

View File

@ -1,7 +1,6 @@
TESTDLL = msvcrt.dll TESTDLL = msvcrt.dll
APPMODE = -mno-cygwin APPMODE = -mno-cygwin
MODCFLAGS = @BUILTINFLAG@ EXTRAINCL = -I$(srcdir)/..
EXTRAINCL = -I$(top_srcdir)/include/msvcrt -I$(srcdir)/..
C_SRCS = \ C_SRCS = \
cpp.c \ cpp.c \

View File

@ -1,8 +1,6 @@
MODULE = msvcrtd.dll MODULE = msvcrtd.dll
IMPORTLIB = msvcrtd IMPORTLIB = msvcrtd
IMPORTS = msvcrt IMPORTS = msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
C_SRCS = \ C_SRCS = \
debug.c debug.c

View File

@ -1,7 +1,5 @@
TESTDLL = msvcrtd.dll TESTDLL = msvcrtd.dll
APPMODE = -mno-cygwin APPMODE = -mno-cygwin
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
MODCFLAGS = @BUILTINFLAG@
C_SRCS = \ C_SRCS = \
debug.c debug.c

View File

@ -1,4 +1,3 @@
MODCFLAGS = @BUILTINFLAG@
EXTRALIBS = @LIBPTHREAD@ EXTRALIBS = @LIBPTHREAD@
C_SRCS = \ C_SRCS = \

View File

@ -1,9 +1,6 @@
MODULE = notepad.exe MODULE = notepad.exe
APPMODE = -mwindows -mno-cygwin APPMODE = -mwindows -mno-cygwin
IMPORTS = comdlg32 shell32 shlwapi user32 gdi32 advapi32 IMPORTS = comdlg32 shell32 shlwapi user32 gdi32 advapi32
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
MODCFLAGS = @BUILTINFLAG@
EXTRADEFS = -DNO_LIBWINE_PORT
C_SRCS = \ C_SRCS = \
dialog.c \ dialog.c \

View File

@ -2,9 +2,6 @@ MODULE = regedit.exe
APPMODE = -mwindows -mno-cygwin APPMODE = -mwindows -mno-cygwin
IMPORTS = advapi32 IMPORTS = advapi32
DELAYIMPORTS = shlwapi shell32 comdlg32 comctl32 user32 gdi32 DELAYIMPORTS = shlwapi shell32 comdlg32 comctl32 user32 gdi32
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -DNO_LIBWINE_PORT
MODCFLAGS = @BUILTINFLAG@
C_SRCS = \ C_SRCS = \
about.c \ about.c \

View File

@ -1,9 +1,6 @@
MODULE = taskmgr.exe MODULE = taskmgr.exe
APPMODE = -mwindows -mno-cygwin APPMODE = -mwindows -mno-cygwin
IMPORTS = psapi shell32 comctl32 user32 gdi32 advapi32 IMPORTS = psapi shell32 comctl32 user32 gdi32 advapi32
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -DNO_LIBWINE_PORT
MODCFLAGS = @BUILTINFLAG@
C_SRCS = \ C_SRCS = \
about.c \ about.c \

View File

@ -1,9 +1,6 @@
MODULE = wordpad.exe MODULE = wordpad.exe
APPMODE = -mwindows -mno-cygwin APPMODE = -mwindows -mno-cygwin
IMPORTS = comdlg32 uuid ole32 shell32 user32 gdi32 advapi32 comctl32 IMPORTS = comdlg32 uuid ole32 shell32 user32 gdi32 advapi32 comctl32
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
EXTRADEFS = -DNO_LIBWINE_PORT
MODCFLAGS = @BUILTINFLAG@
C_SRCS = \ C_SRCS = \
olecallback.c \ olecallback.c \

View File

@ -1,8 +1,6 @@
MODULE = xcopy.exe MODULE = xcopy.exe
APPMODE = -mconsole -municode -mno-cygwin APPMODE = -mconsole -municode -mno-cygwin
IMPORTS = shell32 user32 IMPORTS = shell32 user32
EXTRAINCL = -I$(top_srcdir)/include/msvcrt
MODCFLAGS = @BUILTINFLAG@
C_SRCS = \ C_SRCS = \
xcopy.c xcopy.c

View File

@ -93,6 +93,9 @@ static const struct strarray empty_strarray;
static struct strarray include_args; static struct strarray include_args;
static struct strarray define_args; static struct strarray define_args;
static struct strarray appmode;
static struct strarray dllflags;
static struct strarray imports;
static struct strarray make_vars; static struct strarray make_vars;
static struct strarray cmdline_vars; static struct strarray cmdline_vars;
@ -1393,8 +1396,6 @@ static struct strarray output_sources(void)
struct strarray includes = empty_strarray; struct strarray includes = empty_strarray;
struct strarray subdirs = empty_strarray; struct strarray subdirs = empty_strarray;
struct strarray phony_targets = empty_strarray; struct strarray phony_targets = empty_strarray;
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 all_targets = get_expanded_make_var_array( "PROGRAMS" );
struct strarray targetflags = get_expanded_make_var_array( "TARGETFLAGS" ); struct strarray targetflags = get_expanded_make_var_array( "TARGETFLAGS" );
struct strarray delayimports = get_expanded_make_var_array( "DELAYIMPORTS" ); struct strarray delayimports = get_expanded_make_var_array( "DELAYIMPORTS" );
@ -1402,7 +1403,6 @@ static struct strarray output_sources(void)
char *module = get_expanded_make_variable( "MODULE" ); char *module = get_expanded_make_variable( "MODULE" );
char *exeext = get_expanded_make_variable( "EXEEXT" ); char *exeext = get_expanded_make_variable( "EXEEXT" );
char *testdll = get_expanded_make_variable( "TESTDLL" ); char *testdll = get_expanded_make_variable( "TESTDLL" );
char *appmode = get_expanded_make_variable( "APPMODE" );
char *staticlib = get_expanded_make_variable( "STATICLIB" ); char *staticlib = get_expanded_make_variable( "STATICLIB" );
char *crosstarget = get_expanded_make_variable( "CROSSTARGET" ); char *crosstarget = get_expanded_make_variable( "CROSSTARGET" );
@ -1690,7 +1690,7 @@ static struct strarray output_sources(void)
{ {
char *importlib = get_expanded_make_variable( "IMPORTLIB" ); char *importlib = get_expanded_make_variable( "IMPORTLIB" );
struct strarray all_libs = empty_strarray; struct strarray all_libs = empty_strarray;
char *spec_file = appmode ? NULL : replace_extension( module, ".dll", ".spec" ); char *spec_file = appmode.count ? NULL : replace_extension( module, ".dll", ".spec" );
if (spec_file && src_dir) spec_file = strmake( "%s/%s", src_dir, spec_file ); if (spec_file && src_dir) spec_file = strmake( "%s/%s", src_dir, spec_file );
for (i = 0; i < delayimports.count; i++) for (i = 0; i < delayimports.count; i++)
@ -1726,7 +1726,7 @@ static struct strarray output_sources(void)
output( " -shared %s", spec_file ); output( " -shared %s", spec_file );
output_filenames( extradllflags ); output_filenames( extradllflags );
} }
else output_filename( appmode ); else output_filenames( appmode );
output_filenames( object_files ); output_filenames( object_files );
output_filenames( res_files ); output_filenames( res_files );
output_filenames( all_libs ); output_filenames( all_libs );
@ -1857,7 +1857,7 @@ static struct strarray output_sources(void)
output( "%s%s:\n", testmodule, dllext ); output( "%s%s:\n", testmodule, dllext );
output( "\t$(WINEGCC) -o $@" ); output( "\t$(WINEGCC) -o $@" );
output_filenames( targetflags ); output_filenames( targetflags );
if (appmode) output_filename( appmode ); output_filenames( appmode );
output_filenames( object_files ); output_filenames( object_files );
output_filenames( res_files ); output_filenames( res_files );
output_filenames( all_libs ); output_filenames( all_libs );
@ -1867,7 +1867,7 @@ static struct strarray output_sources(void)
output( "\t$(WINEGCC) -s -o $@" ); output( "\t$(WINEGCC) -s -o $@" );
output_filenames( targetflags ); output_filenames( targetflags );
output_filename( strmake( "-Wb,-F,%s", testmodule )); output_filename( strmake( "-Wb,-F,%s", testmodule ));
if (appmode) output_filename( appmode ); output_filenames( appmode );
output_filenames( object_files ); output_filenames( object_files );
output_filenames( res_files ); output_filenames( res_files );
output_filenames( all_libs ); output_filenames( all_libs );
@ -2101,6 +2101,7 @@ static void update_makefile( const char *path )
}; };
const char **var; const char **var;
unsigned int i; unsigned int i;
int use_msvcrt = 0;
struct strarray value; struct strarray value;
struct incl_file *file; struct incl_file *file;
@ -2113,6 +2114,15 @@ static void update_makefile( const char *path )
top_obj_dir = get_expanded_make_variable( "top_builddir" ); top_obj_dir = get_expanded_make_variable( "top_builddir" );
parent_dir = get_expanded_make_variable( "PARENTSRC" ); parent_dir = get_expanded_make_variable( "PARENTSRC" );
appmode = get_expanded_make_var_array( "APPMODE" );
dllflags = get_expanded_make_var_array( "DLLFLAGS" );
imports = get_expanded_make_var_array( "IMPORTS" );
for (i = 0; i < appmode.count && !use_msvcrt; i++)
use_msvcrt = !strcmp( appmode.str[i], "-mno-cygwin" );
for (i = 0; i < imports.count && !use_msvcrt; i++)
use_msvcrt = !strncmp( imports.str[i], "msvcr", 5 );
include_args = empty_strarray; include_args = empty_strarray;
define_args = empty_strarray; define_args = empty_strarray;
strarray_add( &define_args, "-D__WINESRC__" ); strarray_add( &define_args, "-D__WINESRC__" );
@ -2127,6 +2137,13 @@ static void update_makefile( const char *path )
init_paths(); init_paths();
if (use_msvcrt)
{
strarray_add( &dllflags, get_expanded_make_variable( "MSVCRTFLAGS" ));
strarray_add( &include_args,
strmake( "-I%s/include/msvcrt", top_src_dir ? top_src_dir : top_obj_dir ));
}
list_init( &sources ); list_init( &sources );
list_init( &includes ); list_init( &includes );