Changed builtin dlls file names to make it clear they are not normal

Unix libraries, and install them in $libdir/wine instead of $libdir to
avoid name conflicts in /usr/lib.
This commit is contained in:
Alexandre Julliard 2002-03-20 22:19:06 +00:00
parent c90aa7b665
commit c1bfca04e1
86 changed files with 1138 additions and 1013 deletions

View File

@ -36,6 +36,7 @@ YACC = @YACC@
LEX = @LEX@ LEX = @LEX@
LEXLIB = @LEXLIB@ LEXLIB = @LEXLIB@
LIBEXT = @LIBEXT@ LIBEXT = @LIBEXT@
DLLEXT = @DLLEXT@
LDSHARED = @LDSHARED@ LDSHARED = @LDSHARED@
DLLWRAP = @DLLWRAP@ DLLWRAP = @DLLWRAP@
DLLWRAPFLAGS = --add-stdcall-alias DLLWRAPFLAGS = --add-stdcall-alias
@ -93,6 +94,7 @@ bindir = @bindir@
libdir = @libdir@ libdir = @libdir@
infodir = @infodir@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
dlldir = @libdir@/wine
prog_manext = 1 prog_manext = 1
conf_manext = 5 conf_manext = 5
includedir = @includedir@/wine includedir = @includedir@/wine

View File

@ -21,7 +21,7 @@ VPATH = @srcdir@
LIBEXT = @LIBEXT@ LIBEXT = @LIBEXT@
LDCONFIG = @LDCONFIG@ LDCONFIG = @LDCONFIG@
MODULE = wine MODULE = wine
IMPORTS = ntdll IMPORTS = ntdll.dll
# Stand-alone programs # Stand-alone programs
PROGRAMS = \ PROGRAMS = \
@ -39,8 +39,12 @@ LIBRARIES = \
tsx11/libwine_tsx11.$(LIBEXT) \ tsx11/libwine_tsx11.$(LIBEXT) \
unicode/libwine_unicode.$(LIBEXT) unicode/libwine_unicode.$(LIBEXT)
# Dlls that we need to link against (should go away)
LINKABLE_DLLS = winspool.drv x11drv.dll user32.dll gdi32.dll kernel32.dll ntdll.dll
# Libraries symlinks to create at the top level # Libraries symlinks to create at the top level
LIBSYMLINKS = \ LIBSYMLINKS = \
$(LINKABLE_DLLS:%=lib%.$(LIBEXT)) \
libwine.$(LIBEXT) \ libwine.$(LIBEXT) \
libwine_tsx11.$(LIBEXT) \ libwine_tsx11.$(LIBEXT) \
libwine_unicode.$(LIBEXT) \ libwine_unicode.$(LIBEXT) \
@ -70,7 +74,7 @@ INSTALLSUBDIRS = \
EMUOBJS = \ EMUOBJS = \
miscemu/miscemu.o miscemu/miscemu.o
all: Make.rules $(PROGRAMS) $(LIBPROGRAMS) $(LIBSYMLINKS) wine all: Make.rules $(PROGRAMS) $(LIBPROGRAMS) wine
@echo "Wine build complete." @echo "Wine build complete."
WINAPI_CHECK_EXTRA_FLAGS = --global WINAPI_CHECK_EXTRA_FLAGS = --global
@ -81,10 +85,10 @@ Make.rules: Make.rules.in configure
@echo $? is newer than 'Make.rules', please rerun ./configure! @echo $? is newer than 'Make.rules', please rerun ./configure!
@exit 1 @exit 1
wine: dlls $(EMUOBJS) wine: $(EMUOBJS) $(LIBSYMLINKS) $(IMPORTS:%=lib%.$(LIBEXT)) library/libwine.$(LIBEXT)
$(CC) -o wine $(EMUOBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(LIBWINE) $(LIBUNICODE) $(LIBS) $(LDFLAGS) $(CC) -o wine $(EMUOBJS) -L. $(IMPORTS:%=-l%) $(LIBWINE) $(LIBS) $(LDFLAGS)
install_wine: install_wine: dummy
[ -d $(bindir) ] || $(MKDIR) $(bindir) [ -d $(bindir) ] || $(MKDIR) $(bindir)
$(INSTALL_PROGRAM) wine $(bindir)/wine $(INSTALL_PROGRAM) wine $(bindir)/wine
@ -97,6 +101,8 @@ uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__)
$(EMUOBJS) $(PROGRAMS) $(LIBPROGRAMS) $(LIBRARIES): dummy $(EMUOBJS) $(PROGRAMS) $(LIBPROGRAMS) $(LIBRARIES): dummy
@cd `dirname $@` && $(MAKE) `basename $@` @cd `dirname $@` && $(MAKE) `basename $@`
# Symlinks to libraries that we need to link against
libwine.$(LIBEXT): library/libwine.$(LIBEXT) libwine.$(LIBEXT): library/libwine.$(LIBEXT)
$(RM) $@ && $(LN_S) library/libwine.$(LIBEXT) $@ $(RM) $@ && $(LN_S) library/libwine.$(LIBEXT) $@
@ -109,6 +115,26 @@ libwine_unicode.$(LIBEXT): unicode/libwine_unicode.$(LIBEXT)
libwine_uuid.a: ole/libwine_uuid.a libwine_uuid.a: ole/libwine_uuid.a
$(RM) $@ && $(LN_S) ole/libwine_uuid.a $@ $(RM) $@ && $(LN_S) ole/libwine_uuid.a $@
libwinspool.drv.$(LIBEXT): dlls/winspool.drv$(DLLEXT)
$(RM) $@ && $(LN_S) dlls/winspool.drv$(DLLEXT) $@
libx11drv.dll.$(LIBEXT): dlls/x11drv.dll$(DLLEXT)
$(RM) $@ && $(LN_S) dlls/x11drv.dll$(DLLEXT) $@
libuser32.dll.$(LIBEXT): dlls/user32.dll$(DLLEXT)
$(RM) $@ && $(LN_S) dlls/user32.dll$(DLLEXT) $@
libgdi32.dll.$(LIBEXT): dlls/gdi32.dll$(DLLEXT)
$(RM) $@ && $(LN_S) dlls/gdi32.dll$(DLLEXT) $@
libkernel32.dll.$(LIBEXT): dlls/kernel32.dll$(DLLEXT)
$(RM) $@ && $(LN_S) dlls/kernel32.dll$(DLLEXT) $@
libntdll.dll.$(LIBEXT): dlls/ntdll.dll$(DLLEXT)
$(RM) $@ && $(LN_S) dlls/ntdll.dll$(DLLEXT) $@
$(LINKABLE_DLLS:%=dlls/%$(DLLEXT)): dlls
# Dependencies between directories # Dependencies between directories
$(PROGRAMS): tools $(PROGRAMS): tools

599
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -732,13 +732,16 @@ LDPATH=""
if test "$LIBEXT" = "so"; then if test "$LIBEXT" = "so"; then
DLLFLAGS="-fPIC" DLLFLAGS="-fPIC"
DLLEXT=".so"
LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\"" LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\""
elif test "$LIBEXT" = "dll"; then elif test "$LIBEXT" = "dll"; then
#DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME #DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
DLLEXT=""
LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\"" LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
fi fi
AC_SUBST(DLLFLAGS) AC_SUBST(DLLFLAGS)
AC_SUBST(DLLEXT)
AC_SUBST(LDSHARED) AC_SUBST(LDSHARED)
AC_SUBST(LDDLLFLAGS) AC_SUBST(LDDLLFLAGS)
AC_SUBST(LIBEXT) AC_SUBST(LIBEXT)

View File

@ -10,34 +10,33 @@
# #
DEFS = @DLLFLAGS@ -D__WINE__ $(EXTRADEFS) DEFS = @DLLFLAGS@ -D__WINE__ $(EXTRADEFS)
LIBEXT = @LIBEXT@ DLLEXT = @DLLEXT@
IMPORTLIBS = $(IMPORTS:%=$(DLLDIR)/lib%.$(LIBEXT)) SPEC_SRCS = $(ALTNAMES:.dll=.spec)
SPEC_SRCS = $(ALTNAMES:%=%.spec) ALL_OBJS = $(MODULE:%.dll=%).spec.o $(OBJS)
ALL_OBJS = $(MODULE).spec.o $(OBJS)
ALL_LIBS = $(LIBWINE) $(EXTRALIBS) $(LIBS) ALL_LIBS = $(LIBWINE) $(EXTRALIBS) $(LIBS)
all: lib$(MODULE).$(LIBEXT) all: $(MODULE)$(DLLEXT)
@MAKE_RULES@ @MAKE_RULES@
# Rules for .so files # Rules for .so files
lib$(MODULE).so: $(ALL_OBJS) Makefile.in $(MODULE).so: $(ALL_OBJS) Makefile.in
$(LDSHARED) $(LDDLLFLAGS) $(ALL_OBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS) $(LDSHARED) $(LDDLLFLAGS) $(ALL_OBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
# Rules for .dll files # Rules for .dll files
lib$(MODULE).dll: $(ALL_OBJS) Makefile.in $(MODULE): $(ALL_OBJS) Makefile.in
$(DLLWRAP) $(DLLWRAPFLAGS) --implib lib$(MODULE).a -o lib$(MODULE).dll $(ALL_OBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS) $(DLLWRAP) $(DLLWRAPFLAGS) --implib $(MODULE:.dll=.a) -o $(MODULE) $(ALL_OBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
# Rules for checking that no imports are missing # Rules for checking that no imports are missing
checklink:: lib$(MODULE).$(LIBEXT) checklink:: $(MODULE)$(DLLEXT)
$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -l$(MODULE) $(ALL_LIBS) && $(RM) checklink $(CC) -o checklink $(TOPSRCDIR)/library/checklink.c $(MODULE)$(DLLEXT) $(ALL_LIBS) && $(RM) checklink
# Rules for testing # Rules for testing
$(TESTRESULTS): lib$(MODULE).$(LIBEXT) $(TESTRESULTS): $(MODULE)$(DLLEXT)
# Rules for debug channels # Rules for debug channels
@ -52,18 +51,28 @@ Makedll.rules: $(TOPSRCDIR)/Makedll.rules.in $(TOPSRCDIR)/configure
# Rules for installation # Rules for installation
.PHONY: install_lib $(ALTNAMES:%=_install_/lib%.$(LIBEXT)) .PHONY: install_lib $(ALTNAMES:%=_install_/%$(DLLEXT))
$(ALTNAMES:%=_install_/lib%.$(LIBEXT)): install_lib $(ALTNAMES:%=_install_/%$(DLLEXT)): install_lib
cd $(libdir) && $(RM) `basename $@` && $(LN_S) lib$(MODULE).$(LIBEXT) `basename $@` cd $(dlldir) && $(RM) `basename $@` && $(LN_S) $(MODULE)$(DLLEXT) `basename $@`
install_lib: lib$(MODULE).$(LIBEXT) install_lib: $(MODULE)$(DLLEXT)
[ -d $(libdir) ] || $(MKDIR) $(libdir) [ -d $(dlldir) ] || $(MKDIR) $(dlldir)
$(INSTALL_PROGRAM) lib$(MODULE).$(LIBEXT) $(libdir)/lib$(MODULE).$(LIBEXT) $(INSTALL_PROGRAM) $(MODULE)$(DLLEXT) $(dlldir)/$(MODULE)$(DLLEXT)
install:: install_lib $(ALTNAMES:%=_install_/lib%.$(LIBEXT)) install:: install_lib $(ALTNAMES:%=_install_/%$(DLLEXT))
uninstall:: uninstall::
cd $(libdir) && $(RM) lib$(MODULE).$(LIBEXT) $(ALTNAMES:%=lib%.$(LIBEXT)) $(RM) $(dlldir)/$(MODULE)$(DLLEXT) $(ALTNAMES:%=$(dlldir)/%$(DLLEXT))
# Extra install rules for dlls not yet properly separated
install_libdir:: install_lib
cd $(libdir) && $(RM) lib$(MODULE).$(LIBEXT) && if [ "$(dlldir)" = "$(libdir)/wine" ]; \
then $(LN_S) wine/$(MODULE)$(DLLEXT) lib$(MODULE).$(LIBEXT); \
else $(LN_S) $(dlldir)/$(MODULE)$(DLLEXT) lib$(MODULE).$(LIBEXT); fi
uninstall_libdir::
$(RM) $(libdir)/lib$(MODULE).$(LIBEXT)
# End of global dll rules # End of global dll rules

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = advapi32 MODULE = advapi32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = avicap32 MODULE = avicap32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = avifil32 MODULE = avifil32.dll
ALTNAMES = avifile ALTNAMES = avifile.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = comctl32 MODULE = comctl32.dll
EXTRALIBS = $(LIBUNICODE) EXTRALIBS = $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = comdlg32 MODULE = comdlg32.dll
ALTNAMES = commdlg ALTNAMES = commdlg.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = crtdll MODULE = crtdll.dll
EXTRALIBS = $(LIBUNICODE) EXTRALIBS = $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = crypt32 MODULE = crypt32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = dciman32 MODULE = dciman32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,9 +2,9 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = ddraw MODULE = ddraw.dll
EXTRALIBS = $(LIBUUID) $(LIBTSX11) $(X_LIBS) $(XLIB) EXTRALIBS = $(LIBUUID) $(LIBTSX11) $(X_LIBS) $(XLIB)
IMPORTS = user32 gdi32 kernel32 ntdll IMPORTS = user32.dll gdi32.dll kernel32.dll ntdll.dll
OPENGLFILES = \ OPENGLFILES = \
d3dcommon.c \ d3dcommon.c \

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = devenum MODULE = devenum.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = dinput MODULE = dinput.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = dplay MODULE = dplay.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = dplayx MODULE = dplayx.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = dsound MODULE = dsound.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -3,10 +3,9 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = gdi32 MODULE = gdi32.dll
SOVERSION = 1.0 ALTNAMES = gdi.dll dispdib.dll wing.dll
ALTNAMES = gdi dispdib wing IMPORTS = kernel32.dll ntdll.dll
IMPORTS = kernel32 ntdll
EXTRALIBS = @FREETYPELIBS@ EXTRALIBS = @FREETYPELIBS@
EXTRAINCL = @FREETYPEINCL@ EXTRAINCL = @FREETYPEINCL@
@ -52,5 +51,7 @@ version16.res: version16.rc
gdi.spec.c: version16.res gdi.spec.c: version16.res
### Dependencies: install:: install_libdir
uninstall:: uninstall_libdir
### Dependencies:

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = glu32 MODULE = glu32.dll
EXTRALIBS = $(X_LIBS) $(XLIB) EXTRALIBS = $(X_LIBS) $(XLIB)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = icmp MODULE = icmp.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = imagehlp MODULE = imagehlp.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = imm32 MODULE = imm32.dll
ALTNAMES = imm ALTNAMES = imm.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,10 +2,9 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = kernel32 MODULE = kernel32.dll
SOVERSION = 1.0 ALTNAMES = comm.dll kernel.dll stress.dll system.dll toolhelp.dll windebug.dll win87em.dll wprocs.dll
ALTNAMES = comm kernel stress system toolhelp windebug win87em wprocs IMPORTS = ntdll.dll
IMPORTS = ntdll
C_SRCS = \ C_SRCS = \
comm.c \ comm.c \
@ -54,4 +53,7 @@ version16.res: version16.rc
kernel.spec.c: version16.res kernel.spec.c: version16.res
install:: install_libdir
uninstall:: uninstall_libdir
### Dependencies: ### Dependencies:

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = lz32 MODULE = lz32.dll
ALTNAMES = lzexpand ALTNAMES = lzexpand.dll
EXTRALIBS = $(LIBUNICODE) EXTRALIBS = $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -25,6 +25,7 @@ $makefiles = `find . -name Makefile.in -print`;
%imports = (); %imports = ();
%directories = (); %directories = ();
%altnames = (); %altnames = ();
%linked_dlls = ();
# list of special dlls that can be switched on or off by configure # list of special dlls that can be switched on or off by configure
%special_dlls = %special_dlls =
@ -53,25 +54,34 @@ foreach $i (split(/\s/,$makefiles))
$altnames{$module} = \@list; $altnames{$module} = \@list;
next; next;
} }
if (/^IMPORTS\s*=\s*(.*)/)
{
my @list = split(/\s/,$1);
$linked_dlls{$module} = \@list;
next;
}
} }
} }
foreach $mod (sort keys %directories) foreach $mod (sort keys %directories)
{ {
my $spec = sprintf("%s/%s.spec", $directories{$mod}, $mod); my $dll = $mod;
$dll =~ s/\.dll$//;
my $spec = sprintf("%s/%s.spec", $directories{$mod}, $dll);
open SPEC,$spec or die "cannot open $spec"; open SPEC,$spec or die "cannot open $spec";
$imports{$mod} = [ ]; $imports{$mod} = [ ];
while (<SPEC>) while (<SPEC>)
{ {
if (/^\#?import\s+(-delay\s+)?([a-zA-Z0-9_]+)\.dll/) if (/^\#?import\s+(-delay\s+)?([a-zA-Z0-9_]+)\.dll/)
{ {
my $imp = $2; my $imp = $2 . ".dll";
push @{$imports{$mod}}, $imp; push @{$imports{$mod}}, $imp;
next; next;
} }
if (/^\#?import\s+(-delay\s+)?([a-zA-Z0-9_.]+)/) if (/^\#?import\s+(-delay\s+)?([a-zA-Z0-9_.]+)/)
{ {
my $imp = $2; my $imp = $2;
$imp .= ".dll" unless ($imp =~ /\./);
push @{$imports{$mod}}, $imp; push @{$imports{$mod}}, $imp;
next; next;
} }
@ -90,7 +100,6 @@ TOPSRCDIR = \@top_srcdir\@
TOPOBJDIR = .. TOPOBJDIR = ..
SRCDIR = \@srcdir\@ SRCDIR = \@srcdir\@
VPATH = \@srcdir\@ VPATH = \@srcdir\@
LIBEXT = \@LIBEXT\@
EOF EOF
@ -135,20 +144,22 @@ printf NEWMAKE "\n";
my %targets = (); # use a hash to get rid of duplicate target names my %targets = (); # use a hash to get rid of duplicate target names
foreach $mod (sort keys %directories) foreach $mod (sort keys %directories)
{ {
next if defined($special_dlls{$mod}); # skip special dlls next if defined($special_dlls{$directories{$mod}}); # skip special dlls
$targets{sprintf("lib%s.\$(LIBEXT)",$mod)} = 1; $targets{sprintf("%s\$(DLLEXT)",$mod)} = 1;
next unless defined $altnames{$mod}; next unless defined $altnames{$mod};
foreach $i (sort @{$altnames{$mod}}) foreach $i (sort @{$altnames{$mod}})
{ {
$targets{sprintf("lib%s.\$(LIBEXT)",$i)} = 1; $targets{sprintf("%s\$(DLLEXT)",$i)} = 1;
} }
} }
print NEWMAKE <<EOF; print NEWMAKE <<EOF;
# Main target # Main target
\@MAKE_RULES\@
all: \\ all: \\
\$(EXTRADIRS:%=lib%.\$(LIBEXT)) \\ \$(EXTRADIRS:%=%.dll\$(DLLEXT)) \\
EOF EOF
printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets ); printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets );
@ -158,26 +169,24 @@ printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets );
print NEWMAKE <<EOF; print NEWMAKE <<EOF;
\@MAKE_RULES\@
# Map library name to directory # Map library name to directory
EOF EOF
foreach $mod (sort keys %directories) foreach $mod (sort keys %directories)
{ {
printf NEWMAKE "lib%s.\$(LIBEXT)", $mod; printf NEWMAKE "%s\$(DLLEXT)", $mod;
if (defined $altnames{$mod}) if (defined $altnames{$mod})
{ {
my $count = 1; my $count = 1;
foreach $i (sort @{$altnames{$mod}}) foreach $i (sort @{$altnames{$mod}})
{ {
if (!($count++ % 3)) { printf NEWMAKE " \\\n "; } if (!($count++ % 3)) { printf NEWMAKE " \\\n "; }
printf NEWMAKE " lib%s.\$(LIBEXT)", $i; printf NEWMAKE " %s\$(DLLEXT)", $i;
} }
} }
printf NEWMAKE ": %s/lib%s.\$(LIBEXT)\n", $directories{$mod}, $mod; printf NEWMAKE ": %s/%s\$(DLLEXT)\n", $directories{$mod}, $mod;
printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/lib%s.\$(LIBEXT) \$@\n\n", $directories{$mod}, $mod; printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s\$(DLLEXT) \$@\n\n", $directories{$mod}, $mod;
} }
@ -190,8 +199,17 @@ my @depends = ();
foreach $mod (sort keys %imports) foreach $mod (sort keys %imports)
{ {
my $count = 1; my $count = 1;
my $dep = sprintf("%s/lib%s.\$(LIBEXT): dummy", $directories{$mod}, $mod); my $dep = sprintf("%s/%s\$(DLLEXT): dummy", $directories{$mod}, $mod);
foreach $i (@{$imports{$mod}}) foreach $i (@{$imports{$mod}})
{
if ($count++ >= 3)
{
$count = 0;
$dep .= " \\\n ";
}
$dep .= sprintf(" %s\$(DLLEXT)", $i);
}
foreach $i (@{$linked_dlls{$mod}})
{ {
if ($count++ >= 3) if ($count++ >= 3)
{ {
@ -200,12 +218,28 @@ foreach $mod (sort keys %imports)
} }
$dep .= sprintf(" lib%s.\$(LIBEXT)", $i); $dep .= sprintf(" lib%s.\$(LIBEXT)", $i);
} }
$dep .= sprintf("\n\t\@cd %s && \$(MAKE) lib%s.\$(LIBEXT)\n\n",$directories{$mod}, $mod); $dep .= sprintf("\n\t\@cd %s && \$(MAKE) %s\$(DLLEXT)\n\n",$directories{$mod}, $mod);
push @depends, $dep; push @depends, $dep;
} }
print NEWMAKE sort @depends; print NEWMAKE sort @depends;
################################################################
# output the linkable dlls special links
%linkable_dlls = ();
foreach $mod (keys %imports)
{
foreach $i (@{$linked_dlls{$mod}}) { $linkable_dlls{$i} = 1; }
}
print NEWMAKE "# Special targets for dlls that we need to link to\n\n";
foreach $mod (keys %linkable_dlls)
{
printf NEWMAKE "lib%s.\$(LIBEXT): %s/%s\$(DLLEXT)\n", $mod, $directories{$mod}, $mod;
printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s\$(DLLEXT) \$@\n\n", $directories{$mod}, $mod;
}
################################################################ ################################################################
# makefile trailer # makefile trailer
@ -224,6 +258,7 @@ print NEWMAKE <<EOF;
install:: \$(SUBDIRS:%=%/__install__) install:: \$(SUBDIRS:%=%/__install__)
uninstall:: \$(SUBDIRS:%=%/__uninstall__) uninstall:: \$(SUBDIRS:%=%/__uninstall__)
-rmdir \$(dlldir)
check test:: \$(SUBDIRS:%=%/__test__) check test:: \$(SUBDIRS:%=%/__test__)

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = mapi32 MODULE = mapi32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = mpr MODULE = mpr.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msacm32 MODULE = msacm32.dll
ALTNAMES = msacm ALTNAMES = msacm.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msdmo MODULE = msdmo.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msimg32 MODULE = msimg32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msnet32 MODULE = msnet32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msrle32 MODULE = msrle32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msvcrt MODULE = msvcrt.dll
EXTRALIBS = $(LIBUNICODE) EXTRALIBS = $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msvcrt20 MODULE = msvcrt20.dll
EXTRALIBS = $(LIBUNICODE) EXTRALIBS = $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = msvfw32 MODULE = msvfw32.dll
ALTNAMES = msvideo ALTNAMES = msvideo.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = netapi32 MODULE = netapi32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = ntdll MODULE = ntdll.dll
EXTRALIBS = $(LIBUNICODE) EXTRALIBS = $(LIBUNICODE)
C_SRCS = \ C_SRCS = \
@ -67,4 +67,7 @@ $(EXTRA_OBJS): dummy
relay32.s: $(WINEBUILD) relay32.s: $(WINEBUILD)
$(LDPATH) $(WINEBUILD) @DLLFLAGS@ -o $@ -relay32 $(LDPATH) $(WINEBUILD) @DLLFLAGS@ -o $@ -relay32
install:: install_libdir
uninstall:: uninstall_libdir
### Dependencies: ### Dependencies:

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = odbc32 MODULE = odbc32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,8 +3,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = ole32 MODULE = ole32.dll
ALTNAMES = ole2 ole2nls ole2conv ole2prox ole2thk storage compobj ALTNAMES = ole2.dll ole2nls.dll ole2conv.dll ole2prox.dll ole2thk.dll storage.dll compobj.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = oleaut32 MODULE = oleaut32.dll
ALTNAMES = ole2disp typelib ALTNAMES = ole2disp.dll typelib.dll
EXTRALIBS = $(LIBUUID) @JPEGLIB@ EXTRALIBS = $(LIBUUID) @JPEGLIB@
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = olecli32 MODULE = olecli32.dll
ALTNAMES = olecli ALTNAMES = olecli.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = oledlg MODULE = oledlg.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = olepro32 MODULE = olepro32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = olesvr32 MODULE = olesvr32.dll
ALTNAMES = olesvr ALTNAMES = olesvr.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = opengl32 MODULE = opengl32.dll
IMPORTS = x11drv kernel32 ntdll IMPORTS = x11drv.dll kernel32.dll ntdll.dll
C_SRCS = \ C_SRCS = \
wgl.c \ wgl.c \

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = psapi MODULE = psapi.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = qcap MODULE = qcap.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = quartz MODULE = quartz.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = rasapi32 MODULE = rasapi32.dll
ALTNAMES = rasapi16 ALTNAMES = rasapi16.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = riched32 MODULE = riched32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = rpcrt4 MODULE = rpcrt4.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = serialui MODULE = serialui.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,9 +3,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = setupapi MODULE = setupapi.dll
SOVERSION = 1.0 ALTNAMES = setupx.dll
ALTNAMES = setupx
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = shdocvw MODULE = shdocvw.dll
EXTRALIBS = $(LIBUUID) EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -3,8 +3,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = shell32 MODULE = shell32.dll
ALTNAMES = shell ALTNAMES = shell.dll
EXTRALIBS = $(LIBUUID) $(LIBUNICODE) EXTRALIBS = $(LIBUUID) $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = shfolder MODULE = shfolder.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -1,7 +1,7 @@
name shfolder name shfolder
type win32 type win32
import shell32 import shell32.dll
@ forward SHGetFolderPathA shell32.SHGetFolderPathA @ forward SHGetFolderPathA shell32.SHGetFolderPathA
@ forward SHGetFolderPathW shell32.SHGetFolderPathW @ forward SHGetFolderPathW shell32.SHGetFolderPathW

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = shlwapi MODULE = shlwapi.dll
EXTRALIBS = $(LIBUUID) $(LIBUNICODE) EXTRALIBS = $(LIBUUID) $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = sti MODULE = sti.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = tapi32 MODULE = tapi32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,9 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = ttydrv MODULE = ttydrv.dll
SOVERSION = 1.0 IMPORTS = user32.dll gdi32.dll kernel32.dll ntdll.dll
IMPORTS = user32 gdi32 kernel32 ntdll
EXTRALIBS = @CURSESLIBS@ EXTRALIBS = @CURSESLIBS@
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = url MODULE = url.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = urlmon MODULE = urlmon.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,10 +3,9 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = user32 MODULE = user32.dll
SOVERSION = 1.0 ALTNAMES = user.dll keyboard.dll ddeml.dll display.dll mouse.dll
ALTNAMES = user keyboard ddeml display mouse IMPORTS = gdi32.dll kernel32.dll ntdll.dll
IMPORTS = gdi32 kernel32 ntdll
C_SRCS = \ C_SRCS = \
bidi16.c \ bidi16.c \
@ -84,4 +83,7 @@ mouse.spec.c: resources/mouse.res
user.spec.c: resources/version16.res user.spec.c: resources/version16.res
install:: install_libdir
uninstall:: uninstall_libdir
### Dependencies: ### Dependencies:

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = version MODULE = version.dll
ALTNAMES = ver ALTNAMES = ver.dll
EXTRALIBS = $(LIBUNICODE) EXTRALIBS = $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@

View File

@ -2,9 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = w32skrnl MODULE = w32skrnl.dll
SOVERSION = 1.0 ALTNAMES = w32sys.dll win32s16.dll
ALTNAMES = w32sys win32s16
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = wnaspi32 MODULE = wnaspi32.dll
ALTNAMES = winaspi ALTNAMES = winaspi.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,9 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = winedos MODULE = winedos.dll
SOVERSION = 1.0 IMPORTS = user32.dll kernel32.dll ntdll.dll
IMPORTS = user32 kernel32 ntdll
EXTRALIBS = @CURSESLIBS@ @UTILLIBS@ EXTRALIBS = @CURSESLIBS@ @UTILLIBS@
C_SRCS = \ C_SRCS = \

View File

@ -2,10 +2,9 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = wineps MODULE = wineps.dll
SOVERSION = 1.0 ALTNAMES = wineps16.dll
ALTNAMES = wineps16 IMPORTS = user32.dll gdi32.dll winspool.drv kernel32.dll ntdll.dll
IMPORTS = user32 gdi32 winspool.drv kernel32 ntdll
EXTRALIBS = @CUPSLIBS@ @FREETYPELIBS@ EXTRALIBS = @CUPSLIBS@ @FREETYPELIBS@
EXTRAINCL = @FREETYPEINCL@ EXTRAINCL = @FREETYPEINCL@

View File

@ -3,7 +3,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = wininet MODULE = wininet.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,8 +3,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = winmm MODULE = winmm.dll
ALTNAMES = mmsystem sound ALTNAMES = mmsystem.dll sound.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,8 +2,8 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = winnls32 MODULE = winnls32.dll
ALTNAMES = winnls ALTNAMES = winnls.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -3,10 +3,9 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = ws2_32 MODULE = ws2_32.dll
SOVERSION = 1.0 ALTNAMES = winsock.dll
ALTNAMES = winsock IMPORTS = user32.dll kernel32.dll ntdll.dll
IMPORTS = user32 kernel32 ntdll
C_SRCS = \ C_SRCS = \
async.c \ async.c \

View File

@ -15,5 +15,7 @@ C_SRCS = \
@MAKE_DLL_RULES@ @MAKE_DLL_RULES@
### Dependencies: install:: install_libdir
uninstall:: uninstall_libdir
### Dependencies:

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = wintrust MODULE = wintrust.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = wow32 MODULE = wow32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,7 +2,7 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = wsock32 MODULE = wsock32.dll
LDDLLFLAGS = @LDDLLFLAGS@ LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o SYMBOLFILE = $(MODULE).tmp.o

View File

@ -2,9 +2,9 @@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../.. TOPOBJDIR = ../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = x11drv MODULE = x11drv.dll
EXTRALIBS = $(LIBTSX11) $(X_LIBS) $(XLIB) EXTRALIBS = $(LIBTSX11) $(X_LIBS) $(XLIB)
IMPORTS = user32 gdi32 kernel32 IMPORTS = user32.dll gdi32.dll kernel32.dll
C_SRCS = \ C_SRCS = \
desktop.c \ desktop.c \
@ -36,11 +36,11 @@ all: $(PROGRAMS)
$(EXTRA_OBJS) $(PROGRAMS): dummy $(EXTRA_OBJS) $(PROGRAMS): dummy
@cd `dirname $@` && $(MAKE) `basename $@` @cd `dirname $@` && $(MAKE) `basename $@`
install:: $(PROGRAMS) install:: $(PROGRAMS) install_libdir
[ -d $(bindir) ] || $(MKDIR) $(bindir) [ -d $(bindir) ] || $(MKDIR) $(bindir)
$(INSTALL_PROGRAM) $(TOPOBJDIR)/windows/x11drv/wineclipsrv $(bindir)/wineclipsrv $(INSTALL_PROGRAM) $(TOPOBJDIR)/windows/x11drv/wineclipsrv $(bindir)/wineclipsrv
uninstall:: uninstall:: uninstall_libdir
cd $(bindir) && $(RM) wineclipsrv cd $(bindir) && $(RM) wineclipsrv
### Dependencies: ### Dependencies:

View File

@ -220,7 +220,7 @@ install::
# Don't just do a rm -rf on $(includedir) -- don't want to wipe out # Don't just do a rm -rf on $(includedir) -- don't want to wipe out
# anything extra the user may have put there. # anything extra the user may have put there.
uninstall:: uninstall::
cd $(includedir) && $(RM) $(INSTALLED_INCLUDES) [ -d $(includedir) ] && cd $(includedir) && $(RM) $(INSTALLED_INCLUDES) || true
-rmdir $(includedir)/msvcrt/sys $(includedir)/msvcrt $(includedir)/wine $(includedir) -rmdir $(includedir)/msvcrt/sys $(includedir)/msvcrt $(includedir)/wine $(includedir)
### Dependencies: ### Dependencies:

View File

@ -1,4 +1,4 @@
DEFS = @DLLFLAGS@ -D__WINE__ DEFS = @DLLFLAGS@ -D__WINE__ -DDLLDIR="\"$(dlldir)\""
TOPSRCDIR = @top_srcdir@ TOPSRCDIR = @top_srcdir@
TOPOBJDIR = .. TOPOBJDIR = ..
SRCDIR = @srcdir@ SRCDIR = @srcdir@

View File

@ -48,7 +48,7 @@ static const IMAGE_NT_HEADERS *main_exe;
static load_dll_callback_t load_dll_callback; static load_dll_callback_t load_dll_callback;
static char **dll_paths; static const char **dll_paths;
static int nb_dll_paths; static int nb_dll_paths;
static int dll_path_maxlen; static int dll_path_maxlen;
static int init_done; static int init_done;
@ -57,11 +57,15 @@ static int init_done;
/* build the dll load path from the WINEDLLPATH variable */ /* build the dll load path from the WINEDLLPATH variable */
static void build_dll_path(void) static void build_dll_path(void)
{ {
int count = 0; static const char * const dlldir = DLLDIR;
int len, count = 0;
char *p, *path = getenv( "WINEDLLPATH" ); char *p, *path = getenv( "WINEDLLPATH" );
init_done = 1; init_done = 1;
if (!path) return;
if (path)
{
/* count how many path elements we need */
path = strdup(path); path = strdup(path);
p = path; p = path;
while (*p) while (*p)
@ -71,8 +75,12 @@ static void build_dll_path(void)
count++; count++;
while (*p && *p != ':') p++; while (*p && *p != ':') p++;
} }
}
dll_paths = malloc( count * sizeof(*dll_paths) ); dll_paths = malloc( (count+1) * sizeof(*dll_paths) );
if (count)
{
p = path; p = path;
nb_dll_paths = 0; nb_dll_paths = 0;
while (*p) while (*p)
@ -87,34 +95,37 @@ static void build_dll_path(void)
} }
} }
/* append default dll dir (if not empty) to path */
if ((len = strlen(dlldir)))
{
if (len > dll_path_maxlen) dll_path_maxlen = len;
dll_paths[nb_dll_paths++] = dlldir;
}
}
/* open a library for a given dll, searching in the dll path /* open a library for a given dll, searching in the dll path
* 'name' must be the Windows dll name (e.g. "kernel32.dll") */ * 'name' must be the Windows dll name (e.g. "kernel32.dll") */
static void *dlopen_dll( const char *name, char *error, int errorsize ) static void *dlopen_dll( const char *name, char *error, int errorsize )
{ {
int i, namelen = strlen(name); int i, namelen = strlen(name);
char *buffer, *p, *ext; char *buffer, *p;
void *ret = NULL; void *ret = NULL;
if (!init_done) build_dll_path(); if (!init_done) build_dll_path();
buffer = malloc( dll_path_maxlen + namelen + 8 ); buffer = malloc( dll_path_maxlen + namelen + 5 );
/* store the name at the end of the buffer, prefixed by /lib and followed by .so */ /* store the name at the end of the buffer, followed by .so */
p = buffer + dll_path_maxlen; p = buffer + dll_path_maxlen;
memcpy( p, "/lib", 4 ); *p++ = '/';
p += 4; memcpy( p, name, namelen );
memcpy( p, name, namelen+1 ); strcpy( p + namelen, ".so" );
ext = strrchr( p, '.' );
p += namelen;
/* check for .dll or .exe extension to remove */
if (ext && (!strcmp( ext, ".dll" ) || !strcmp( ext, ".exe" ))) p = ext;
memcpy( p, ".so", 4 );
for (i = 0; i < nb_dll_paths; i++) for (i = 0; i < nb_dll_paths; i++)
{ {
int len = strlen(dll_paths[i]); int len = strlen(dll_paths[i]);
char *p = buffer + dll_path_maxlen - len; p = buffer + dll_path_maxlen - len;
memcpy( p, dll_paths[i], len ); memcpy( p, dll_paths[i], len );
if ((ret = wine_dlopen( p, RTLD_NOW, error, errorsize ))) break; if ((ret = wine_dlopen( p, RTLD_NOW, error, errorsize ))) break;
} }

View File

@ -80,19 +80,22 @@ inline static void sort_symbols( char **table, int size )
/* open the .so library for a given dll in a specified path */ /* open the .so library for a given dll in a specified path */
static char *try_library_path( const char *path, const char *name ) static char *try_library_path( const char *path, const char *name )
{ {
char *buffer, *p; char *buffer;
int fd; int fd;
buffer = xmalloc( strlen(path) + strlen(name) + 8 ); buffer = xmalloc( strlen(path) + strlen(name) + 9 );
sprintf( buffer, "%s/lib%s", path, name ); sprintf( buffer, "%s/%s", path, name );
p = buffer + strlen(buffer) - 4; if (!strchr( name, '.' )) strcat( buffer, ".dll" );
if (!strcmp( p, ".dll" )) *p = 0;
strcat( buffer, ".so" ); strcat( buffer, ".so" );
/* check if the file exists */ /* check if the file exists */
if ((fd = open( buffer, O_RDONLY )) == -1) return NULL; if ((fd = open( buffer, O_RDONLY )) != -1)
{
close( fd ); close( fd );
return buffer; return buffer;
} }
free( buffer );
return NULL;
}
/* open the .so library for a given dll */ /* open the .so library for a given dll */
static char *open_library( const char *name ) static char *open_library( const char *name )

View File

@ -790,7 +790,7 @@ void BuildDef32File(FILE *outfile)
fprintf(outfile, "; File generated automatically from %s; do not edit!\n\n", fprintf(outfile, "; File generated automatically from %s; do not edit!\n\n",
input_file_name ); input_file_name );
fprintf(outfile, "LIBRARY lib%s\n\n", DLLFileName); fprintf(outfile, "LIBRARY %s\n\n", DLLFileName);
fprintf(outfile, "EXPORTS\n"); fprintf(outfile, "EXPORTS\n");
@ -833,7 +833,7 @@ void BuildDef32File(FILE *outfile)
fprintf(outfile, "=%s", make_internal_name( odp, "stub" )); fprintf(outfile, "=%s", make_internal_name( odp, "stub" ));
break; break;
case TYPE_FORWARD: case TYPE_FORWARD:
fprintf(outfile, "=lib%s", odp->link_name); fprintf(outfile, "=%s", odp->link_name);
break; break;
default: default:
assert(0); assert(0);