diff --git a/configure b/configure index 8c4175d81c7..102bca448b2 100755 --- a/configure +++ b/configure @@ -631,8 +631,6 @@ LDAPLIBS LIBRT LIBPOLL LIBDL -EXTRA_BINARIES -MAIN_BINARY TOOLSEXT UNWINDFLAGS BUILTINFLAG @@ -696,7 +694,6 @@ FRAMEWORK_OPENAL COREAUDIO SECURITYLIB DISKARBITRATIONLIB -LDEXECFLAGS APPKITLIB CORESERVICESLIB APPLICATIONSERVICESLIB @@ -706,6 +703,7 @@ COREFOUNDATIONLIB LIBWINE_RULES SOCKETLIBS DLLTOOL +LOADER_RULES READELF LDD LDRPATH_LOCAL @@ -7182,6 +7180,20 @@ else fi +wine_binary="wine" +test "x$enable_win64" != "xyes" || wine_binary="wine64" + +LOADER_RULES=" +all: $wine_binary wine-installed + +install install-lib:: wine-installed \$(DESTDIR)\$(bindir) + \$(INSTALL_PROGRAM) wine-installed \$(DESTDIR)\$(bindir)/$wine_binary + +uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary +" + + case $host_os in cygwin*|mingw32*) if test -n "$ac_tool_prefix"; then @@ -7340,13 +7352,9 @@ clean:: APPKITLIB="-framework AppKit" + LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" case $host_os in - darwin11*) - LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" - ;; - *) - LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" - ;; + darwin11*) LDEXECFLAGS="-Wl,-macosx_version_min,10.6 $LDEXECFLAGS" ;; esac if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" then @@ -7523,12 +7531,24 @@ clean:: \$(RM) libwine.dylib libwine.\$(VERSION).dylib libwine.\$(SOVERSION).dylib version.c " + + as_fn_append LOADER_RULES " +$wine_binary: main.o Makefile.in wine_info.plist + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) + +wine-installed: main.o Makefile.in wine_info.plist + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + +wine_info.plist: wine_info.plist.in \$(top_builddir)/include/config.h + LC_ALL=C sed -e 's,@PACKAGE_VERSION@,$PACKAGE_VERSION,g' \$(srcdir)/wine_info.plist.in >\$@ || (\$(RM) \$@ && false) +" ;; linux-android*) DLLFLAGS="$DLLFLAGS -fPIC" DLLEXT=".so" DLLPREFIX="lib" + LDEXECFLAGS="" dlldir="\${libdir}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--export-dynamic" >&5 $as_echo_n "checking whether the compiler supports -fPIC -Wl,--export-dynamic... " >&6; } @@ -7554,7 +7574,6 @@ fi $as_echo "$ac_cv_cflags__fPIC__Wl___export_dynamic" >&6; } if test $ac_cv_cflags__fPIC__Wl___export_dynamic = yes; then : LDEXECFLAGS="-Wl,--export-dynamic" - fi as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\\$ORIGIN/../lib" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 @@ -7686,11 +7705,20 @@ clean:: \$(RM) libwine.so version.c " + + as_fn_append LOADER_RULES " +$wine_binary: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) + +wine-installed: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) +" ;; *) DLLFLAGS="$DLLFLAGS -fPIC" DLLEXT=".so" + LDEXECFLAGS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a GNU style ELF dll" >&5 $as_echo_n "checking whether we can build a GNU style ELF dll... " >&6; } if ${ac_cv_c_dll_gnuelf+:} false; then : @@ -7820,7 +7848,6 @@ fi $as_echo "$ac_cv_cflags__fPIC__Wl___export_dynamic" >&6; } if test $ac_cv_cflags__fPIC__Wl___export_dynamic = yes; then : LDEXECFLAGS="-Wl,--export-dynamic" - fi as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\\$ORIGIN/../lib" | $as_tr_sh` @@ -8040,6 +8067,14 @@ clean:: \$(RM) libwine.so.\$(SOVERSION) libwine.so.\$(VERSION) version.c " + + as_fn_append LOADER_RULES " +$wine_binary: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) + +wine-installed: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) +" ;; esac @@ -13972,17 +14007,22 @@ case $build_os in ;; esac -MAIN_BINARY="wine" - -test "x$enable_win64" != "xyes" || MAIN_BINARY="wine64" - case $host_os in linux*) case $host_cpu in - *i[3456789]86*) EXTRA_BINARIES="wine-preloader" - ;; - x86_64*) EXTRA_BINARIES="wine64-preloader" - ;; + *i[3456789]86*|x86_64*) + as_fn_append LOADER_RULES " +all: $wine_binary-preloader + +$wine_binary-preloader: preloader.o Makefile.in + \$(CC) -o \$@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o \$(LIBPORT) \$(LDFLAGS) + +install install-lib:: $wine_binary-preloader \$(DESTDIR)\$(bindir) + \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader + +uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader +" ;; esac ;; esac @@ -17439,7 +17479,7 @@ fi if test -n "$with_wine64" then -wine_fn_append_rule "all: fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader + wine_fn_append_rule "all: fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader fonts server tools: \$(RM) \$@ && \$(LN_S) $with_wine64/\$@ \$@ $with_wine64/loader/wine: @@ -17448,6 +17488,9 @@ $with_wine64/loader/wine-preloader: \$(RM) \$@ && \$(LN_S) $ac_pwd/loader/wine-preloader \$@ clean:: \$(RM) fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader" +else + as_fn_append LOADER_RULES " +install install-lib:: install-man-pages" fi $as_echo " done" >&6 diff --git a/configure.ac b/configure.ac index c98e0ea7bce..5ce589fef4e 100644 --- a/configure.ac +++ b/configure.ac @@ -687,6 +687,19 @@ LIBEXT="so" STATIC_IMPLIBEXT="def.a" WINE_PATH_SONAME_TOOLS +wine_binary="wine" +test "x$enable_win64" != "xyes" || wine_binary="wine64" + +AC_SUBST(LOADER_RULES,[" +all: $wine_binary wine-installed + +install install-lib:: wine-installed \$(DESTDIR)\$(bindir) + \$(INSTALL_PROGRAM) wine-installed \$(DESTDIR)\$(bindir)/$wine_binary + +uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary +"]) + case $host_os in cygwin*|mingw32*) AC_CHECK_TOOL(DLLTOOL,dlltool,false) @@ -750,11 +763,9 @@ clean:: AC_SUBST(APPLICATIONSERVICESLIB,"-framework ApplicationServices") AC_SUBST(CORESERVICESLIB,"-framework CoreServices") AC_SUBST(APPKITLIB,"-framework AppKit") + LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" case $host_os in - darwin11*) - AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;; - *) - AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;; + darwin11*) LDEXECFLAGS="-Wl,-macosx_version_min,10.6 $LDEXECFLAGS" ;; esac if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" then @@ -868,15 +879,27 @@ uninstall:: clean:: \$(RM) libwine.dylib libwine.\$(VERSION).dylib libwine.\$(SOVERSION).dylib version.c "]) + + AS_VAR_APPEND([LOADER_RULES],[" +$wine_binary: main.o Makefile.in wine_info.plist + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) + +wine-installed: main.o Makefile.in wine_info.plist + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) + +wine_info.plist: wine_info.plist.in \$(top_builddir)/include/config.h + LC_ALL=C sed -e 's,@PACKAGE_VERSION@,$PACKAGE_VERSION,g' \$(srcdir)/wine_info.plist.in >\$@ || (\$(RM) \$@ && false) +"]) ;; linux-android*) DLLFLAGS="$DLLFLAGS -fPIC" DLLEXT=".so" DLLPREFIX="lib" + LDEXECFLAGS="" dlldir="\${libdir}" WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], - [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])]) + [LDEXECFLAGS="-Wl,--export-dynamic"]) WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"], @@ -909,11 +932,20 @@ uninstall:: clean:: \$(RM) libwine.so version.c "]) + + AS_VAR_APPEND([LOADER_RULES],[" +$wine_binary: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) + +wine-installed: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) +"]) ;; *) DLLFLAGS="$DLLFLAGS -fPIC" DLLEXT=".so" + LDEXECFLAGS="" AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf, [WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-Bsymbolic], ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")]) @@ -931,7 +963,7 @@ clean:: rm -f conftest.map WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], - [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])]) + [LDEXECFLAGS="-Wl,--export-dynamic"]) WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`" @@ -993,6 +1025,14 @@ uninstall:: clean:: \$(RM) libwine.so.\$(SOVERSION) libwine.so.\$(VERSION) version.c "]) + + AS_VAR_APPEND([LOADER_RULES],[" +$wine_binary: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL) + +wine-installed: main.o Makefile.in + \$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL) +"]) ;; esac @@ -1976,14 +2016,22 @@ case $build_os in cygwin*|mingw32*) AC_SUBST(TOOLSEXT,".exe") ;; esac -AC_SUBST(MAIN_BINARY,"wine") -test "x$enable_win64" != "xyes" || MAIN_BINARY="wine64" - case $host_os in linux*) case $host_cpu in - *i[[3456789]]86*) AC_SUBST(EXTRA_BINARIES,"wine-preloader") ;; - x86_64*) AC_SUBST(EXTRA_BINARIES,"wine64-preloader") ;; + *i[[3456789]]86*|x86_64*) + AS_VAR_APPEND([LOADER_RULES],[" +all: $wine_binary-preloader + +$wine_binary-preloader: preloader.o Makefile.in + \$(CC) -o \$@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o \$(LIBPORT) \$(LDFLAGS) + +install install-lib:: $wine_binary-preloader \$(DESTDIR)\$(bindir) + \$(INSTALL_PROGRAM) $wine_binary-preloader \$(DESTDIR)\$(bindir)/$wine_binary-preloader + +uninstall:: + \$(RM) \$(DESTDIR)\$(bindir)/$wine_binary-preloader +"]) ;; esac ;; esac @@ -3407,7 +3455,7 @@ fi if test -n "$with_wine64" then -WINE_APPEND_RULE( + WINE_APPEND_RULE( [all: fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader fonts server tools: \$(RM) \$[@] && \$(LN_S) $with_wine64/\$[@] \$[@] @@ -3417,6 +3465,9 @@ $with_wine64/loader/wine-preloader: \$(RM) \$[@] && \$(LN_S) $ac_pwd/loader/wine-preloader \$[@] clean:: \$(RM) fonts server tools $with_wine64/loader/wine $with_wine64/loader/wine-preloader]) +else + AS_VAR_APPEND([LOADER_RULES],[" +install install-lib:: install-man-pages"]) fi AS_ECHO(" done") >&AS_MESSAGE_FD diff --git a/loader/Makefile.in b/loader/Makefile.in index 9b0436aff14..e5a69826069 100644 --- a/loader/Makefile.in +++ b/loader/Makefile.in @@ -1,16 +1,15 @@ MODCFLAGS = @BUILTINFLAG@ +EXTRALIBS = @LIBPTHREAD@ C_SRCS = \ main.c \ preloader.c -MAIN_BINARY = @MAIN_BINARY@ -EXTRA_BINARIES = @EXTRA_BINARIES@ - PROGRAMS = \ wine \ wine-installed \ wine-preloader \ + wine_info.plist \ wine64 \ wine64-preloader @@ -28,32 +27,13 @@ INSTALLDIRS = \ $(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext) \ $(DESTDIR)$(mandir)/pl.UTF-8/man$(prog_manext) -all: $(MAIN_BINARY) wine-installed $(EXTRA_BINARIES) - @MAKE_RULES@ -LIBPTHREAD = @LIBPTHREAD@ -LDEXECFLAGS = @LDEXECFLAGS@ +@LOADER_RULES@ -wine-preloader wine64-preloader: preloader.o Makefile.in - $(CC) -o $@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o $(LIBPORT) $(LDFLAGS) - -$(MAIN_BINARY): main.o Makefile.in wine_info.plist - $(CC) -o $@ $(LDEXECFLAGS) main.o $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS) $(LDRPATH_LOCAL) - -wine-installed: main.o Makefile.in wine_info.plist - $(CC) -o $@ $(LDEXECFLAGS) main.o $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS) $(LDRPATH_INSTALL) - -wine_info.plist: wine_info.plist.in - LC_ALL=C sed -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g' $(srcdir)/wine_info.plist.in >$@ || ($(RM) $@ && false) - -$(EXTRA_BINARIES:%=__install__%): $(EXTRA_BINARIES) $(DESTDIR)$(bindir) dummy - f=`expr $@ : '__install__\(.*\)'` && $(INSTALL_PROGRAM) $$f $(DESTDIR)$(bindir)/$$f - -.PHONY: $(EXTRA_BINARIES:%=__install__%) - -install install-lib:: wine-installed $(DESTDIR)$(bindir) $(EXTRA_BINARIES:%=__install__%) @WOW64_DISABLE@ install-man-pages - $(INSTALL_PROGRAM) wine-installed $(DESTDIR)$(bindir)/$(MAIN_BINARY) +# Make sure that make_makefiles sees the generated rules +install install-lib:: +clean:: install-man-pages:: $(EXTRA_MANPAGES) $(INSTALLDIRS) dummy $(INSTALL_DATA) wine.de.man $(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)/wine.$(prog_manext) @@ -61,10 +41,6 @@ install-man-pages:: $(EXTRA_MANPAGES) $(INSTALLDIRS) dummy $(INSTALL_DATA) wine.pl.man $(DESTDIR)$(mandir)/pl.UTF-8/man$(prog_manext)/wine.$(prog_manext) uninstall:: - -cd $(DESTDIR)$(bindir) && $(RM) $(MAIN_BINARY) $(EXTRA_BINARIES) $(RM) $(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)/wine.$(prog_manext) $(RM) $(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)/wine.$(prog_manext) $(RM) $(DESTDIR)$(mandir)/pl.UTF-8/man$(prog_manext)/wine.$(prog_manext) - -clean:: - $(RM) wine_info.plist diff --git a/tools/make_makefiles b/tools/make_makefiles index 286f5f4e543..85201ca3956 100755 --- a/tools/make_makefiles +++ b/tools/make_makefiles @@ -95,7 +95,6 @@ my @ignores = ( "*/*/tests/testlist.c", "include/config.h", "include/stamp-h", - "loader/wine_info.plist", "msg.pot", "po/*.mo", "programs/winetest/build.nfo",