Alexandre Julliard : programs: Only create executable wrappers for programs that get installed in the bin directory .

Alexandre Julliard julliard at winehq.org
Tue Feb 24 10:21:11 CST 2009


Module: wine
Branch: master
Commit: a6b91685b727b154de268c43753d09a538c7b6f3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a6b91685b727b154de268c43753d09a538c7b6f3

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Feb 23 17:15:14 2009 +0100

programs: Only create executable wrappers for programs that get installed in the bin directory.

---

 .gitignore                    |   37 -------------------------------------
 configure                     |   14 ++++++++++++++
 configure.ac                  |   13 +++++++++++++
 programs/Makefile.in          |    9 ++++++++-
 programs/Makeprog.rules.in    |    8 ++------
 programs/winetest/Makefile.in |    7 ++-----
 tools/make_makefiles          |    2 +-
 7 files changed, 40 insertions(+), 50 deletions(-)

diff --git a/.gitignore b/.gitignore
index 9ec7ed5..cf63122 100644
--- a/.gitignore
+++ b/.gitignore
@@ -226,46 +226,18 @@ loader/wine.de.man
 loader/wine.fr.man
 loader/wine.man
 programs/Makeprog.rules
-programs/cacls/cacls
-programs/clock/clock
-programs/cmd/cmd
-programs/cmdlgtst/cmdlgtst
-programs/control/control
-programs/eject/eject
-programs/expand/expand
-programs/explorer/explorer
-programs/hh/hh
-programs/icinfo/icinfo
-programs/iexplore/iexplore
-programs/lodctr/lodctr
 programs/msiexec/msiexec
-programs/net/net
 programs/notepad/notepad
-programs/oleview/oleview
-programs/progman/progman
-programs/reg/reg
 programs/regedit/regedit
 programs/regsvr32/regsvr32
 programs/rpcss/epm.h
 programs/rpcss/epm_s.c
 programs/rpcss/irot.h
 programs/rpcss/irot_s.c
-programs/rpcss/rpcss
-programs/rundll32/rundll32
-programs/secedit/secedit
-programs/services/services
 programs/services/svcctl.h
 programs/services/svcctl_s.c
-programs/spoolsv/spoolsv
-programs/start/start
-programs/svchost/svchost
-programs/taskmgr/taskmgr
-programs/uninstaller/uninstaller
-programs/unlodctr/unlodctr
-programs/view/view
 programs/wineapploader
 programs/wineboot/wineboot
-programs/winebrowser/winebrowser
 programs/winecfg/winecfg
 programs/wineconsole/wineconsole
 programs/winedbg/dbg.tab.c
@@ -273,21 +245,12 @@ programs/winedbg/dbg.tab.h
 programs/winedbg/debug.yy.c
 programs/winedbg/winedbg
 programs/winedbg/winedbg.man
-programs/winedevice/winedevice
 programs/winefile/winefile
-programs/winemenubuilder/winemenubuilder
 programs/winemine/winemine
 programs/winepath/winepath
 programs/winetest/*_test.exe
 programs/winetest/tests.rc
-programs/winetest/winetest
-programs/winevdm/winevdm
 programs/winhlp32/macro.lex.yy.c
-programs/winhlp32/winhlp32
-programs/winver/winver
-programs/wordpad/wordpad
-programs/write/write
-programs/xcopy/xcopy
 server/wineserver
 server/wineserver-installed
 server/wineserver.fr.man
diff --git a/configure b/configure
index fc0362f..d51df86 100755
--- a/configure
+++ b/configure
@@ -639,6 +639,7 @@ ac_includes_default="\
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+ALL_PROGRAM_BIN_WRAPPERS
 ALL_WINETEST_DEPENDS
 ALL_PROGRAM_BIN_INSTALL_DIRS
 ALL_PROGRAM_INSTALL_DIRS
@@ -28001,6 +28002,19 @@ $testname: \$(DLLDIR)/$dir/$testname\$(DLLEXT)
     fi
 done
 
+test -n "$DLLEXT" || ALL_PROGRAM_BIN_INSTALL_DIRS=""
+
+ALL_PROGRAM_BIN_WRAPPERS=""
+
+for dir in $ALL_PROGRAM_BIN_INSTALL_DIRS
+do
+    if test "$dir" != "\\"
+    then
+        ALL_PROGRAM_BIN_WRAPPERS="$ALL_PROGRAM_BIN_WRAPPERS \\
+	$dir/$dir"
+    fi
+done
+
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
diff --git a/configure.ac b/configure.ac
index e1e98fa..ad1cdd7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2338,6 +2338,19 @@ $testname: \$(DLLDIR)/$dir/$testname\$(DLLEXT)
     fi
 done
 
+dnl Don't install in bin dir for Windows build
+test -n "$DLLEXT" || ALL_PROGRAM_BIN_INSTALL_DIRS=""
+
+AC_SUBST(ALL_PROGRAM_BIN_WRAPPERS,"")
+for dir in $ALL_PROGRAM_BIN_INSTALL_DIRS
+do
+    if test "$dir" != "\\"
+    then
+        ALL_PROGRAM_BIN_WRAPPERS="$ALL_PROGRAM_BIN_WRAPPERS \\
+	$dir/$dir"
+    fi
+done
+
 AC_OUTPUT
 
 if test "$no_create" = "yes"
diff --git a/programs/Makefile.in b/programs/Makefile.in
index 7bd60b2..3bc7abd 100644
--- a/programs/Makefile.in
+++ b/programs/Makefile.in
@@ -6,6 +6,7 @@ VPATH     = @srcdir@
 SUBDIRS        = @ALL_PROGRAM_DIRS@
 INSTALLSUBDIRS = @ALL_PROGRAM_INSTALL_DIRS@
 INSTALLPROGS   = @ALL_PROGRAM_BIN_INSTALL_DIRS@
+BIN_WRAPPERS   = @ALL_PROGRAM_BIN_WRAPPERS@
 
 INSTALLDIRS = $(DESTDIR)$(bindir)
 
@@ -13,11 +14,14 @@ PROGRAMS = wineapploader
 
 @MAKE_RULES@
 
-all: $(PROGRAMS) $(SUBDIRS)
+all: $(PROGRAMS) $(SUBDIRS) $(BIN_WRAPPERS)
 
 wineapploader: wineapploader.in
 	sed -e 's, at bindir\@,$(bindir),g' $(SRCDIR)/wineapploader.in >$@ || ($(RM) $@ && false)
 
+$(BIN_WRAPPERS): $(WINEWRAPPER)
+	$(RM) $@ && $(LN) $(WINEWRAPPER) $@
+
 # Rules for installation
 
 .PHONY: install-apploader install-progs install-progs.so $(INSTALLPROGS:%=%/__installprog__)
@@ -39,6 +43,9 @@ uninstall::
 	-cd $(DESTDIR)$(bindir) && $(RM) wineapploader $(INSTALLPROGS)
 	-rmdir $(DESTDIR)$(dlldir)
 
+clean::
+	$(RM) $(BIN_WRAPPERS)
+
 # Rules for testing
 
 check test:: $(SUBDIRS:%=%/__test__)
diff --git a/programs/Makeprog.rules.in b/programs/Makeprog.rules.in
index ea39636..1f9fe78 100644
--- a/programs/Makeprog.rules.in
+++ b/programs/Makeprog.rules.in
@@ -12,22 +12,18 @@
 DLLFLAGS    = @DLLFLAGS@
 DEFS        = $(EXTRADEFS)
 ALL_LIBS    = $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(EXTRALIBS) $(LIBPORT) $(LDFLAGS) $(LIBS)
-BASEMODULE  = $(MODULE:.exe=)
 RUNTESTFLAGS= -q -P wine -T $(TOPOBJDIR)
 INSTALLDIRS = $(DESTDIR)$(bindir) $(DESTDIR)$(dlldir) $(DESTDIR)$(mandir)/man$(prog_manext)
 
 @MAKE_RULES@
 
-all: $(MODULE)$(DLLEXT) $(BASEMODULE)$(EXEEXT)
+all: $(MODULE)$(DLLEXT)
 
 # Rules for .so main module
 
 $(MODULE).so: $(OBJS) $(RC_SRCS:.rc=.res) Makefile.in
 	$(WINEGCC) $(APPMODE) $(OBJS) $(RC_SRCS:.rc=.res) -o $@ $(ALL_LIBS) $(DELAYIMPORTS:%=-Wb,-d%)
 
-$(BASEMODULE): $(WINEWRAPPER)
-	$(RM) $@ && $(LN_S) $(WINEWRAPPER) $@
-
 # Rules for .exe main module
 
 $(MODULE): $(OBJS) $(RCOBJS) Makefile.in
@@ -60,4 +56,4 @@ install install-lib:: install_prog$(DLLEXT)
 uninstall:: uninstall_prog$(DLLEXT)
 
 clean::
-	$(RM) $(BASEMODULE) $(MODULE)
+	$(RM) $(MODULE)
diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in
index 20fd2ba..298ca1a 100644
--- a/programs/winetest/Makefile.in
+++ b/programs/winetest/Makefile.in
@@ -36,7 +36,7 @@ tests.rc: Makefile.in $(TOPOBJDIR)/config.status
 	(for i in $(TESTBINS); do echo "$$i TESTRES \"$$i\""; done) >$@ || ($(RM) $@ && false)
 
 clean::
-	$(RM) tests.rc dist.res winetest-dist winetest-dist.exe $(TESTBINS)
+	$(RM) tests.rc dist.res winetest-dist.exe $(TESTBINS)
 
 depend: tests.rc
 
@@ -44,14 +44,11 @@ depend: tests.rc
 
 .PHONY: dist
 
-dist: winetest-dist.exe$(DLLEXT) winetest-dist$(EXEEXT)
+dist: winetest-dist.exe$(DLLEXT)
 
 winetest-dist.exe.so: $(OBJS) dist.res Makefile.in
 	$(WINEGCC) $(APPMODE) $(OBJS) dist.res -o $@ -L$(DLLDIR) $(DELAYIMPORTS:%=-Wb,-d%) $(ALL_LIBS)
 
-winetest-dist: $(WINEWRAPPER)
-	$(RM) $@ && $(LN_S) $(WINEWRAPPER) $@
-
 winetest-dist.exe: $(OBJS) dist.res.o Makefile.in
 	$(CC) $(APPMODE) $(OBJS) dist.res.o -o $@ -L$(DLLDIR) $(IMPORTS:%=-L$(DLLDIR)/%) $(ALL_LIBS)
 	-upx -9 -qqq $@
diff --git a/tools/make_makefiles b/tools/make_makefiles
index e73fabb..c1a58e6 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -541,7 +541,7 @@ sub update_gitignore(@)
         }
         if ($dir =~ /^programs\/(.*)\/$/)
         {
-            push @ignores, "$dir$1";
+            push @ignores, "$dir$1" if $bin_install{$1};
         }
     }
 




More information about the wine-cvs mailing list