Here's a patch to start the winemaker clean up. There's still a lot more to do.
Changelog:
Francois Gouget <fgouget@codeweavers.com>
* tools/winemaker
Add support for .dbg.c files. This makes it possible to use the Wine tracing macros in Winelib applications.
The wine/lib, wine/ole, wine/unicode directories are gone. Simplify the wine_unicode and wine_uuid detection.
Fix generation of the clean target (in some corner cases it could generate a $(RM) command with no parameter).
Move the distclean target to the top-level Makefile and make it more thorough.
Update a few autoconf constructs.
Remote commented out code in wrapper.c. If we need that code we can always get it from CVS.
-- Francois Gouget fgouget@codeweavers.com
Index: tools/winemaker =================================================================== RCS file: /home/cvs/wine/tools/winemaker,v retrieving revision 1.66 diff -u -r1.66 winemaker --- tools/winemaker 27 Oct 2003 22:14:15 -0000 1.66 +++ tools/winemaker 28 Oct 2003 02:01:58 -0000 @@ -560,7 +560,7 @@ } elsif (-f "$fullentry") { if ($dentry =~ /\.(exe|dll)$/i) { $targets{$dentry}=1; - } elsif ($dentry =~ /\.c$/i and $dentry !~ /\.spec\.c$/) { + } elsif ($dentry =~ /\.c$/i and $dentry !~ /\.(dbg|spec)\.c$/) { push @sources_c,"$dentry"; } elsif ($dentry =~ /\.(cpp|cxx)$/i) { if ($dentry =~ /^stdafx.cpp$/i && !(@$project_settings[$T_FLAGS] & $TF_NOMFC)) { @@ -1893,15 +1893,16 @@ print FILEO "\t_list=\"\$(EXES:%=%.so) \$(DLLS:%=%.so)\"; for i in \$\$_list; do \$(RM) \$(dlldir)/\$\$i;done\n"; } print FILEO "\n"; - print FILEO "clean::\n"; - print FILEO "\t\$(RM)"; if (@$project[$P_PATH] eq "") { - print FILEO " wineapploader"; - } - if (@{@$project[$P_TARGETS]} > 0) { - print FILEO " \$(EXES:%.exe=%)"; + print FILEO "clean::\n"; + print FILEO "\t\$(RM) wineapploader\n"; + print FILEO "\n"; + print FILEO "distclean: clean\n"; + print FILEO "\t\$(RM) config.* configure.lineno Make.rules\n"; + print FILEO "\t\$(RM) -r autom4te.cache\n"; + print FILEO "\tfind . -name Makefile -exec \$(RM) {} \\;\n"; + print FILEO "\n"; } - print FILEO "\n\n"; if (@{@$project[$P_TARGETS]} > 0) { print FILEO "### Target specific build rules\n\n"; @@ -1926,16 +1927,19 @@ $all_libs="\$(${canon}_LIBRARIES:%=-l%) \$(ALL_LIBRARIES)"; } + print FILEO "\$(${canon}_MODULE).dbg.c: \$(${canon}_C_SRCS) \$(${canon}_CXX_SRCS)\n"; + print FILEO "\t\$(LDPATH) \$(WINEBUILD) -o \$\@ --debug -C\$(SRCDIR) \$(${canon}_C_SRCS) \$(${canon}_CXX_SRCS)\n"; + print FILEO "\n"; print FILEO "\$(${canon}_MODULE).spec.c: \$(${canon}_SPEC_SRCS) \$(${canon}_RC_SRCS:.rc=.res) \$(${canon}_OBJS)\n"; print FILEO "\t\$(LDPATH) \$(WINEBUILD) -fPIC -o \$\@ $mode \$(${canon}_SPEC_SRCS:%=--spec %) \$(${canon}_RC_SRCS:%.rc=%.res) \$(${canon}_OBJS) \$(${canon}_DLL_PATH) \$(WINE_DLL_PATH) \$(GLOBAL_DLL_PATH) $all_dlls\n"; print FILEO "\n"; - print FILEO "\$(${canon}_MODULE).so: \$(${canon}_MODULE).spec.o \$(${canon}_OBJS) \$(${canon}_DEPENDS)\n"; + print FILEO "\$(${canon}_MODULE).so: \$(${canon}_MODULE).dbg.o \$(${canon}_MODULE).spec.o \$(${canon}_OBJS) \$(${canon}_DEPENDS)\n"; if (@{@$target[$T_SOURCES_CXX]} > 0 or @{@$project_settings[$T_SOURCES_CXX]} > 0) { print FILEO "\t\$(LDXXSHARED)"; } else { print FILEO "\t\$(LDSHARED)"; } - print FILEO " \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS) \$(${canon}_MODULE).spec.o \$(${canon}_LIBRARY_PATH) \$(ALL_LIBRARY_PATH) $all_libs \$(LIBS)\n"; + print FILEO " \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS) \$(${canon}_MODULE).dbg.o \$(${canon}_MODULE).spec.o \$(${canon}_LIBRARY_PATH) \$(ALL_LIBRARY_PATH) $all_libs \$(LIBS)\n"; if (@$target[$T_TYPE] != $TT_DLL) { print FILEO "\ttest -f \$(${canon}_BASEMODULE) || \$(INSTALL_SCRIPT) wineapploader \$(${canon}_BASEMODULE)\n"; } @@ -2338,8 +2342,8 @@ if test "x${GCC}" = "xyes" then - AC_CACHE_CHECK( "for gcc strength-reduce bug", ac_cv_c_gcc_strength_bug, - AC_TRY_RUN([ + AC_CACHE_CHECK([for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug, + AC_TRY_RUN([ int main(void) { static int Array[[3]]; unsigned int B = 3; @@ -2361,7 +2365,7 @@ LDSHARED="" LDXXSHARED="" LDDLLFLAGS="" -AC_CACHE_CHECK("whether we can build a Linux dll", +AC_CACHE_CHECK([whether we can build a Linux dll], ac_cv_c_dll_linux, [saved_cflags=$CFLAGS CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic" @@ -2374,7 +2378,7 @@ LDXXSHARED="\$(CXX) -shared" LDDLLFLAGS="-Wl,-Bsymbolic" else - AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, + AC_CACHE_CHECK([whether we can build a UnixWare (Solaris) dll], ac_cv_c_dll_unixware, [saved_cflags=$CFLAGS CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic" @@ -2387,7 +2391,7 @@ LDXXSHARED="\$(CXX) -Wl,-G" LDDLLFLAGS="-Wl,-B,symbolic" else - AC_CACHE_CHECK("whether we can build a NetBSD dll", + AC_CACHE_CHECK([whether we can build a NetBSD dll], ac_cv_c_dll_netbsd, [saved_cflags=$CFLAGS CFLAGS="$CFLAGS -fPIC -Wl,-Bshareable,-Bforcearchive" @@ -2415,7 +2419,7 @@ dnl *** check for the need to define __i386__ -AC_CACHE_CHECK("whether we need to define __i386__",ac_cv_cpp_def_i386, +AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386, AC_EGREP_CPP(yes,[#if (defined(i386) || defined(__i386)) && !defined(__i386__) yes #endif], @@ -2427,7 +2431,7 @@ dnl *** check for the need to define __sparc__ -AC_CACHE_CHECK("whether we need to define __sparc__",ac_cv_cpp_def_sparc, +AC_CACHE_CHECK([whether we need to define __sparc__],ac_cv_cpp_def_sparc, AC_EGREP_CPP(yes,[#if (defined(sparc) || defined(__sparc)) && !defined(__sparc__) yes #endif], @@ -2440,7 +2444,7 @@ dnl *** check for the need to define __sun__ -AC_CACHE_CHECK("whether we need to define __sun__",ac_cv_cpp_def_sun, +AC_CACHE_CHECK([whether we need to define __sun__],ac_cv_cpp_def_sun, AC_EGREP_CPP(yes,[#if (defined(sun) || defined(__sun)) && !defined(__sun__) yes #endif], @@ -2457,7 +2461,7 @@ then OLDCXXFLAGS="$CXXFLAGS"; CXXFLAGS="-fpermissive"; - AC_CACHE_CHECK("for g++ -fpermissive option", has_gxx_permissive, + AC_CACHE_CHECK([for g++ -fpermissive option], has_gxx_permissive, AC_TRY_COMPILE(,[ for (int i=0;i<2;i++); i=0; @@ -2466,7 +2470,7 @@ [has_gxx_permissive="no"]) ) CXXFLAGS="-fno-for-scope"; - AC_CACHE_CHECK("for g++ -fno-for-scope option", has_gxx_no_for_scope, + AC_CACHE_CHECK([for g++ -fno-for-scope option], has_gxx_no_for_scope, AC_TRY_COMPILE(,[ for (int i=0;i<2;i++); i=0; @@ -2631,11 +2635,9 @@ if test -n "$WINE_ROOT" then WINE_INCLUDE_ROOT="$WINE_ROOT/include:$WINE_ROOT/include/wine:$WINE_ROOT/include/wine/windows:$WINE_ROOT/include/windows" - WINE_LIBRARY_ROOT="$WINE_ROOT:$WINE_ROOT/lib:$WINE_ROOT/library" - WINE_UNICODE_ROOT="$WINE_ROOT:$WINE_ROOT/lib:$WINE_ROOT/unicode" - WINE_UUID_ROOT="$WINE_ROOT:$WINE_ROOT/lib:$WINE_ROOT/ole" + WINE_LIBRARY_ROOT="$WINE_ROOT:$WINE_ROOT/libs:$WINE_ROOT/lib" + WINE_DLL_ROOT="$WINE_ROOT/dlls:$WINE_ROOT/lib:$WINE_ROOT/lib/wine" WINE_TOOL_PATH="$WINE_ROOT:$WINE_ROOT/bin:$WINE_ROOT/tools/wrc:$WINE_ROOT/tools/winebuild" - WINE_DLL_ROOT="$WINE_ROOT/dlls:$WINE_ROOT/lib" fi AC_ARG_WITH(wine-includes, @@ -2660,8 +2662,6 @@ if test -n "$WINE_LIBRARIES" then WINE_LIBRARY_ROOT="$WINE_LIBRARIES" - WINE_UNICODE_ROOT="$WINE_LIBRARIES:$WINE_LIBRARIES/unicode:$WINE_LIBRARIES/../unicode" - WINE_UUID_ROOT="$WINE_LIBRARIES:$WINE_LIBRARIES/ole:$WINE_LIBRARIES/../ole" fi AC_ARG_WITH(wine-dlls, @@ -2725,46 +2725,23 @@ WINE_LIBRARY_PATH="" fi -if test -z "$WINE_UNICODE_ROOT" -then - WINE_UNICODE_ROOT=":/usr/lib/wine:/usr/local/lib:/usr/local/lib/wine:/opt/wine/lib" -else - AC_PATH_FILE(WINE_UNICODE_ROOT,[libwine_unicode.so],[ - AC_MSG_ERROR([Could not find the Wine libraries (libwine_unicode.so)]) - ],$WINE_UNICODE_ROOT) -fi -AC_PATH_LIBRARY(WINE_UNICODE_ROOT,[-lwine_unicode],[$WINE_LIBRARY_PATH -lwine],[ - AC_MSG_ERROR([Could not link with the Wine libraries (libwine_unicode.so)]) -],[$WINE_UNICODE_ROOT]) - -if test -n "$WINE_UNICODE_ROOT" -a "$WINE_UNICODE_ROOT" != "$WINE_LIBRARY_ROOT" -then - WINE_LIBRARY_PATH="$WINE_LIBRARY_PATH -L$WINE_UNICODE_ROOT" - LDPATH="$LDPATH:$WINE_UNICODE_ROOT" -fi +save_LIBS="$LIBS" +LIBS="$WINE_LIBRARY_PATH $LIBS" -if test -z "$WINE_UUID_ROOT" -then - WINE_UUID_ROOT=":/usr/lib/wine:/usr/local/lib:/usr/local/lib/wine:/opt/wine/lib" -else - AC_PATH_FILE(WINE_UUID_ROOT,[libwine_uuid.a],[ - AC_MSG_ERROR([Could not find the Wine libraries (libwine_uuid.a)]) - ],$WINE_UUID_ROOT) -fi -AC_PATH_LIBRARY(WINE_UUID_ROOT,[-lwine_uuid],[$WINE_LIBRARY_PATH -lwine],[ - AC_MSG_ERROR([Could not link with the Wine libraries (libwine_uuid.a)]) -],[$WINE_UUID_ROOT]) +AC_CHECK_LIB(wine_unicode,wine_cp_wcstombs,[],[ + AC_MSG_ERROR([Could not find the Wine dlls (libwine_unicode.so)]) +]) +AC_CHECK_LIB(wine_uuid,IID_IUnknown,[],[ + AC_MSG_ERROR([Could not find the Wine dlls (libwine_uuid.so)]) +]) -if test -n "$WINE_UUID_ROOT" -a "$WINE_UUID_ROOT" != "$WINE_LIBRARY_ROOT" -then - WINE_LIBRARY_PATH="$WINE_LIBRARY_PATH -L$WINE_UUID_ROOT" -fi +LIBS="$save_LIBS" if test -z "$WINE_DLL_ROOT" then if test -n "$WINE_LIBRARY_ROOT" then - WINE_DLL_ROOT="$WINE_LIBRARY_ROOT:$WINE_LIBRARY_ROOT/dlls" + WINE_DLL_ROOT="$WINE_LIBRARY_ROOT:$WINE_LIBRARY_ROOT/dlls:$WINE_LIBRARY_ROOT/wine" else WINE_DLL_ROOT="/lib:/lib/wine:/usr/lib:/usr/lib/wine:/usr/local/lib:/usr/local/lib/wine" fi @@ -3052,10 +3029,9 @@ OBJS = $(C_SRCS:.c=.o) $(CXX_SRCS:.cpp=.o) \ $(SPEC_SRCS:.spec=.spec.o) -CLEAN_FILES = *.spec.c y.tab.c y.tab.h lex.yy.c \ +CLEAN_FILES = *.dbg.c *.spec.c y.tab.c y.tab.h lex.yy.c \ core *.orig *.rej \ \\\#*\\\# *~ *% .\\\#* -DISTCLEAN_FILES = config.* Makefile Make.rules # Implicit rules @@ -3094,12 +3070,9 @@ -cd `dirname $@` && $(RM) $(CLEAN_FILES) clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__) - $(RM) $(CLEAN_FILES) $(RC_SRCS:.rc=.res) $(OBJS) $(EXES:%.exe=%) $(EXES:%=%.so) $(EXES:%=%.spec.o) $(DLLS:%=%.so) $(DLLS:%=%.spec.o) - -# Rule for distcleaning - -distclean: clean - $(RM) $(DISTCLEAN_FILES) + $(RM) $(CLEAN_FILES) $(RC_SRCS:.rc=.res) $(OBJS) + $(RM) $(DLLS:%=%.dbg.o) $(DLLS:%=%.spec.o) $(DLLS:%=%.so) + $(RM) $(EXES:%=%.dbg.o) $(EXES:%=%.spec.o) $(EXES:%=%.so) $(EXES:%.exe=%) # Rules for installing @@ -3229,36 +3202,10 @@ int WINAPI main(int argc, char** argv, char** envp) #endif { - /*void* appLibrary;*/ HINSTANCE hApp = 0, hMFC = 0, hMain = 0; void* appMain; - /*char* libName;*/ int retcode; - /* Load the application's library */ - /*libName=(char*)malloc(2+strlen(appName)+3+1);*/ - /* FIXME: we should get the wrapper's path and use that as the base for - * the library - */ - /*sprintf(libName,"./%s.so",appName);*/ - /*appLibrary=dlopen(libName,RTLD_NOW);*/ - /*if (appLibrary==NULL) {*/ - /*sprintf(libName,"%s.so",appName);*/ - /*appLibrary=dlopen(libName,RTLD_NOW);*/ - /*}*/ - /*if (appLibrary==NULL) {*/ - /*char format[]="Could not load the %s library:\r\n%s";*/ - /*char* error;*/ - /*char* msg;*/ - - /*error=dlerror();*/ - /*msg=(char*)malloc(strlen(format)+strlen(libName)+strlen(error));*/ - /*sprintf(msg,format,libName,error);*/ - /*MessageBox(NULL,msg,"dlopen error",MB_OK);*/ - /*free(msg);*/ - /*return 1;*/ - /*}*/ - /* Then if this application is MFC based, load the MFC module */ /* FIXME: I'm not sure this is really necessary */ if (mfcModule!=NULL) { @@ -3324,8 +3271,6 @@ if (hMFC!=NULL) { FreeLibrary(hMFC); } - /*dlclose(appLibrary);*/ - /*free(libName);*/ return retcode; }