winemaker: Naming fixes

Francois Gouget fgouget at codeweavers.com
Wed Sep 25 20:26:37 CDT 2002


Martin Wilck: note that I did not test the wrapper case so that may be 
slightly broken.


Changelog:

    Francois Gouget <fgouget at codeweavers.com>

  * tools/winemaker

    Bring the naming of libraries and executable up to current standards
    Install dlls and executables in dlldir
    It is no longer necessary to import ntdll.dll


-- 
Francois Gouget
fgouget at codeweavers.com

-------------- next part --------------
Index: tools/winemaker
===================================================================
RCS file: /home/wine/wine/tools/winemaker,v
retrieving revision 1.53
diff -u -r1.53 winemaker
--- tools/winemaker	18 Sep 2002 18:30:29 -0000	1.53
+++ tools/winemaker	26 Sep 2002 01:21:29 -0000
@@ -548,11 +548,7 @@
 	# resulting executable/library. They should not contain anything else.
 	my @candidates=grep /\.(exe|dll)$/i, @{get_directory_contents("$fullentry")};
 	foreach my $candidate (@candidates) {
-	  if ($candidate =~ s/\.exe$//i) {
-	    $targets{$candidate}=1;
-	  } elsif ($candidate =~ s/^(.*)\.dll$/lib$1.so/i) {
-	    $targets{$candidate}=1;
-	  }
+	  $targets{$candidate}=1;
 	}
       } elsif ($dentry =~ /^include/i) {
         # This directory must contain headers we're going to need
@@ -565,9 +561,7 @@
 	source_scan_directory($project,"$fullentry/","$dentry/",$no_target);
       }
     } elsif (-f "$fullentry") {
-      if ($dentry =~ s/\.exe$//i) {
-	$targets{$dentry}=1;
-      } elsif ($dentry =~ s/^(.*)\.dll$/lib$1.so/i) {
+      if ($dentry =~ /\.(exe|dll)$/i) {
 	$targets{$dentry}=1;
       } elsif ($dentry =~ /\.c$/i and $dentry !~ /\.spec\.c$/) {
 	push @sources_c,"$dentry";
@@ -653,7 +647,7 @@
       foreach my $filename (@$prj_list) {
 	$filename =~ s/\.(dsp|mak)$//i;
 	if ($opt_target_type == $TT_DLL) {
-	  $filename = "lib$filename.so";
+	  $filename = "$filename.dll";
 	}
 	$targets{$filename}=1;
       }
@@ -682,7 +676,7 @@
 	}
 	$name =~ s+(/|\.[^.]*)$++;
 	if ($opt_target_type == $TT_DLL) {
-	  $name = "lib$name.so";
+	  $name = "$name.dll";
 	}
 	$targets{$name}=1;
       }
@@ -713,9 +707,6 @@
 	foreach my $target (split /,/,$target_list) {
 	  $target =~ s+^\s*++;
 	  $target =~ s+\s*$++;
-	  # Also accept .exe and .dll as a courtesy
-	  $target =~ s+(.*)\.dll$+lib$1.so+;
-	  $target =~ s+\.exe$++;
 	  $targets{$target}=1;
 	}
       }
@@ -786,28 +777,26 @@
   my @exe_list=();
   foreach my $target_name (map (lc, (sort { $b cmp $a } keys %targets))) {
     # Create the target...
-    my $basename;
     my $target=[];
     target_init($target);
     @$target[$T_NAME]=$target_name;
     @$target[$T_FLAGS]|=@$project_settings[$T_FLAGS];
-    if ($target_name =~ /^lib(.*)\.so$/) {
+    if ($target_name =~ /\.dll$/) {
       @$target[$T_TYPE]=$TT_DLL;
       @$target[$T_INIT]=get_default_init($TT_DLL);
       @$target[$T_FLAGS]&=~$TF_WRAP;
-      $basename=$1;
-      push @local_depends,$target_name;
-      push @local_dlls,$basename;
+      push @local_depends,"$target_name.so";
+      push @local_dlls,$target_name;
     } else {
       @$target[$T_TYPE]=$opt_target_type;
       @$target[$T_INIT]=get_default_init($opt_target_type);
-      $basename=$target_name;
       push @exe_list,$target;
     }
+    my $basename=$target_name;
+    $basename=~ s/\.(dll|exe)$//i;
     # This is the default link list of Visual Studio, except odbccp32
-    # which we don't have in Wine. Also I add ntdll which seems
-    # necessary for Winelib.
-    my @std_dlls=qw(advapi32.dll comdlg32.dll gdi32.dll kernel32.dll ntdll.dll odbc32.dll ole32.dll oleaut32.dll shell32.dll user32.dll winspool.drv);
+    # which we don't have in Wine.
+    my @std_dlls=qw(advapi32.dll comdlg32.dll gdi32.dll kernel32.dll odbc32.dll ole32.dll oleaut32.dll shell32.dll user32.dll winspool.drv);
     if ((@$target[$T_FLAGS] & $TF_NODLLS) == 0) {
       @$target[$T_DLLS]=\@std_dlls;
     } else {
@@ -946,11 +935,7 @@
   if (@local_dlls > 0 and @exe_list > 0) {
     foreach my $target (@exe_list) {
       push @{@$target[$T_DLL_PATH]},"-L.";
-      push @{@$target[$T_DLLS]},map { "$_.dll" } @local_dlls;
-      # Also link in the Unix sense since none of the functions
-      # will be exported.
-      push @{@$target[$T_LIBRARY_PATH]},"-L.";
-      push @{@$target[$T_LIBRARIES]}, at local_dlls;
+      push @{@$target[$T_DLLS]}, at local_dlls;
       push @{@$target[$T_DEPENDS]}, at local_depends;
     }
   }
@@ -965,11 +950,7 @@
     # Create the main target
     my $main_target=[];
     target_init($main_target);
-    if ($opt_target_type == $TT_DLL) {
-      @$main_target[$T_NAME]="lib$opt_single_target.so";
-    } else {
-      @$main_target[$T_NAME]="$opt_single_target";
-    }
+    @$main_target[$T_NAME]=$opt_single_target;
     @$main_target[$T_TYPE]=$opt_target_type;
 
     # Add it to the list
@@ -1018,7 +999,7 @@
 	@$wrapper[$T_TYPE]=@$target[$T_TYPE];
 	@$wrapper[$T_INIT]=get_default_init(@$target[$T_TYPE]);
 	@$wrapper[$T_FLAGS]=$TF_WRAPPER | (@$target[$T_FLAGS] & $TF_MFC);
-	@$wrapper[$T_DLLS]=[ "kernel32.dll", "ntdll.dll", "user32.dll" ];
+	@$wrapper[$T_DLLS]=[ "kernel32.dll", "user32.dll" ];
 	push @{@$wrapper[$T_LIBRARIES]}, "dl";
 	push @{@$wrapper[$T_SOURCES_C]},"@$wrapper[$T_NAME]_wrapper.c";
 
@@ -1026,7 +1007,8 @@
 	if (defined $index) {
 	  splice(@{@$target[$T_SOURCES_C]},$index,1);
 	}
-	@$target[$T_NAME]="lib@$target[$T_NAME].so";
+	@$target[$T_NAME]=@$target[$T_NAME];
+	@$target[$T_NAME]=~ s/.exe$/.dll/;
 	@$target[$T_TYPE]=$TT_DLL;
 
 	push @{@$project[$P_TARGETS]},$wrapper;
@@ -1627,23 +1609,16 @@
 # Generates a target's .spec file
 sub generate_spec_file($$$)
 {
-  if ($opt_no_generated_specs) {
-    return;
-  }
+  return if ($opt_no_generated_specs);
+
   my $path=$_[0];
   my $target=$_[1];
   my $project_settings=$_[2];
 
   my $basename=@$target[$T_NAME];
-  $basename =~ s+\.so$++;
-  if (@$target[$T_FLAGS] & $TF_WRAP) {
-    $basename =~ s+^lib++;
-  } elsif (@$target[$T_FLAGS] & $TF_WRAPPER) {
+  if (@$target[$T_FLAGS] & $TF_WRAPPER) {
     $basename.="_wrapper";
   }
-  if (@$target[$T_TYPE] != $TT_DLL) {
-      $basename .= '.exe';
-  }
 
   if (!open(FILEO,">$path$basename.spec")) {
     print STDERR "error: could not open \"$path$basename.spec\" for writing\n";
@@ -1783,7 +1758,7 @@
 		  });
     generate_list("EXES",1,\@exe_list,sub
 		  {
-		    return "@{$_[0]}[$T_NAME].exe";
+		    return "@{$_[0]}[$T_NAME]";
 		  });
     print FILEO "\n\n\n";
 
@@ -1818,18 +1793,7 @@
       generate_list("${canon}_C_SRCS",1,@$target[$T_SOURCES_C]);
       generate_list("${canon}_CXX_SRCS",1,@$target[$T_SOURCES_CXX]);
       generate_list("${canon}_RC_SRCS",1,@$target[$T_SOURCES_RC]);
-      my $basename=@$target[$T_NAME];
-      $basename =~ s+\.so$++;
-      if (@$target[$T_FLAGS] & $TF_WRAP) {
-	$basename =~ s+^lib++;
-      } elsif (@$target[$T_FLAGS] & $TF_WRAPPER) {
-	$basename.="_wrapper";
-      }
-      if (@$target[$T_TYPE] != $TT_DLL) {
-        generate_list("${canon}_SPEC_SRCS",1,[ "$basename.exe.spec" ]);
-      } else {
-        generate_list("${canon}_SPEC_SRCS",1,[ "$basename.spec" ]);
-      }
+      generate_list("${canon}_SPEC_SRCS",1,[ "@$target[$T_NAME].spec" ]);
       generate_list("${canon}_DLL_PATH",1,@$target[$T_DLL_PATH]);
       generate_list("${canon}_DLLS",1,@$target[$T_DLLS]);
       generate_list("${canon}_LIBRARY_PATH",1,@$target[$T_LIBRARY_PATH]);
@@ -1883,7 +1847,7 @@
     print FILEO " \$(SUBDIRS)";
   }
   if (@{@$project[$P_TARGETS]} > 0) {
-    print FILEO " \$(DLLS) \$(EXES:%=%.so)";
+    print FILEO " \$(DLLS:%=%.so) \$(EXES:%=%.so)";
   }
   print FILEO "\n\n";
   if (@$project[$P_PATH] eq "") {
@@ -1902,8 +1866,8 @@
     print FILEO "\t_list=\"\$(SUBDIRS)\"; for i in \$\$_list; do (cd \$\$i; \$(MAKE) install) || exit 1; done\n";
   }
   if (@{@$project[$P_TARGETS]} > 0) {
-    print FILEO "\t_list=\"\$(EXES:%=%.so)\"; for i in \$\$_list; do \$(INSTALL_PROGRAM) \$\$i \$(dlldir); done\n";
-    print FILEO "\t_list=\"\$(DLLS)\"; for i in \$\$_list; do \$(INSTALL_PROGRAM) \$\$i \$(libdir); done\n";
+    print FILEO "\t_list=\"\$(EXES)\"; for i in \$\$_list; do \$(INSTALL_SCRIPT) \$\$i \$(bindir); done\n";
+    print FILEO "\t_list=\"$(EXES:%=%.so) \$(DLLS:%=%.so)\"; for i in \$\$_list; do \$(INSTALL_PROGRAM) \$\$i \$(dlldir); done\n";
   }
   print FILEO "\n";
   print FILEO "uninstall::\n";
@@ -1913,8 +1877,8 @@
     print FILEO "\t_list=\"\$(SUBDIRS)\"; for i in \$\$_list; do (cd \$\$i; \$(MAKE) uninstall) || exit 1; done\n";
   }
   if (@{@$project[$P_TARGETS]} > 0) {
-    print FILEO "\t_list=\"\$(EXES:%=%.so)\"; for i in \$\$_list; do \$(RM) \$(dlldir)/\$\$i;done\n";
-    print FILEO "\t_list=\"\$(DLLS)\"; for i in \$\$_list; do \$(RM) \$(libdir)/\$\$i;done\n";
+    print FILEO "\t_list=\"\$(EXES)\"; for i in \$\$_list; do \$(RM) \$(bindir)/\$\$i;done\n";
+    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";
@@ -1952,20 +1916,20 @@
         $all_libs="\$(${canon}_LIBRARIES:%=-l%) \$(ALL_LIBRARIES)";
       }
 
-      print FILEO "\$(${canon}_SPEC_SRCS:.spec=.spec.c): \$(${canon}_SPEC_SRCS) \$(${canon}_OBJS) \$(${canon}_RC_SRCS:.rc=.res)\n";
-      print FILEO "\t\$(LD_PATH) \$(WINEBUILD) -fPIC \$(${canon}_DLL_PATH) \$(ALL_DLL_PATH) $all_dlls \$(${canon}_RC_SRCS:%.rc=-res %.res) $mode \$(${canon}_OBJS) -o \$\@ -spec \$(SRCDIR)/\$(${canon}_SPEC_SRCS)\n";
+      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 "\n";
       my $t_name=@$target[$T_NAME];
       if (@$target[$T_TYPE]!=$TT_DLL) {
         $t_name.=".exe.so";
       }
-      print FILEO "$t_name: \$(${canon}_SPEC_SRCS:.spec=.spec.o) \$(${canon}_OBJS) \$(${canon}_DEPENDS) \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) {
         print FILEO "\t\$(LDXXSHARED)";
       } else {
         print FILEO "\t\$(LDSHARED)";
       }
-      print FILEO " \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS) \$(${canon}_SPEC_SRCS:.spec=.spec.o) \$(${canon}_LIBRARY_PATH) \$(ALL_LIBRARY_PATH) $all_libs \$(LIBS)\n";
+      print FILEO " \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS) @$target[$T_NAME].spec.o \$(${canon}_LIBRARY_PATH) \$(ALL_LIBRARY_PATH) $all_libs \$(LIBS)\n";
       if (@$target[$T_TYPE] ne $TT_DLL) {
         print FILEO "\ttest -f @$target[$T_NAME] || \$(INSTALL_SCRIPT) wineapploader @$target[$T_NAME]\n";
       }
@@ -3165,7 +3129,7 @@
 	-cd `dirname $@` && $(RM) $(CLEAN_FILES)
 
 clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
-	$(RM) $(CLEAN_FILES) $(RC_SRCS:.rc=.res) $(OBJS) $(EXES) $(EXES:%=%.so) $(DLLS)
+	$(RM) $(CLEAN_FILES) $(RC_SRCS:.rc=.res) $(OBJS) $(EXES:%.exe=%) $(EXES:%=%.so) $(EXES:%=%.spec.o) $(DLLS:%=%.so) $(DLLS:%=%.spec.o)
 
 # Rules for installing
 


More information about the wine-patches mailing list