Moved libuuid to the dlls directory, and moved the DirectX GUIDs into
a separate libdxguid library.
diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index c2baf69..affd99e 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -29,7 +29,7 @@
$(WINEBUILD) $(DEFS) $(DLLFLAGS) -o $@ --spec $(SRCDIR)/$(MAINSPEC) $(RC_SRCS:.rc=.res) $(ALL_OBJS) -L$(DLLDIR) $(DELAYIMPORTS:%=-d%) $(IMPORTS:%=-l%)
$(MODULE).so: $(MAINSPEC).o $(ALL_OBJS) Makefile.in
- $(LDDLL) $(MAINSPEC).o $(ALL_OBJS) -o $@ $(ALL_LIBS) -lc
+ $(LDDLL) $(MAINSPEC).o $(ALL_OBJS) -o $@ -L$(DLLDIR) $(ALL_LIBS) -lc
# Rules for .dll files
@@ -45,7 +45,7 @@
$(WIN16_FILES:%=__checklink16__%): checklink16
checklink16:: $(MAINSPEC).o $(OBJS) $(MODULE).dbg.o dummy
- $(CC) -o checklink -Wl,-rpath,$(TOPOBJDIR)/libs $(TOPSRCDIR)/dlls/checklink.c $(MAINSPEC).o $(OBJS) $(MODULE).dbg.o $(ALL_LIBS) && $(RM) checklink
+ $(CC) -o checklink -Wl,-rpath,$(TOPOBJDIR)/libs $(TOPSRCDIR)/dlls/checklink.c $(MAINSPEC).o $(OBJS) $(MODULE).dbg.o -L$(DLLDIR) $(ALL_LIBS) && $(RM) checklink
checklink:: $(WIN16_FILES:%=__checklink16__%)
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 8db5ebc..5962d46 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -144,9 +144,11 @@
d3d9 \
d3dx8 \
ddraw \
+ dxguid \
glu32 \
glut32 \
opengl32 \
+ uuid \
wined3d \
x11drv
@@ -251,6 +253,8 @@
iphlpapi.dll$(DLLEXT) \
joystick.drv$(DLLEXT) \
kernel32.dll$(DLLEXT) \
+ libdxguid.a \
+ libuuid.a \
lz32.dll$(DLLEXT) \
mapi32.dll$(DLLEXT) \
mcianim.drv$(DLLEXT) \
@@ -812,6 +816,12 @@
x11drv.dll$(DLLEXT): x11drv/x11drv.dll$(DLLEXT)
$(RM) $@ && $(LN_S) x11drv/x11drv.dll$(DLLEXT) $@
+libdxguid.a: dxguid/libdxguid.a
+ $(RM) $@ && $(LN_S) dxguid/libdxguid.a $@
+
+libuuid.a: uuid/libuuid.a
+ $(RM) $@ && $(LN_S) uuid/libuuid.a $@
+
# Import libraries
@@ -928,6 +938,11 @@
libwsock32 \
libx11drv
+ALL_IMPORT_LIBS = \
+ $(IMPORT_LIBS:%=%.$(IMPLIBEXT)) \
+ libdxguid.a \
+ libuuid.a
+
libadvapi32.def: advapi32/advapi32.spec.def
$(RM) $@ && $(LN_S) advapi32/advapi32.spec.def $@
libadvapi32.a: advapi32/advapi32.spec.def
@@ -1595,9 +1610,8 @@
wsock32/wsock32.spec.def: $(WINEBUILD)
x11drv/x11drv.spec.def: $(WINEBUILD)
-$(SUBDIRS): $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
-$(SUBDIRS:%=%/__install__): $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
-$(SUBDIRS:%=%/__crosstest__): $(IMPORT_LIBS:%=%.a)
+$(BUILDSUBDIRS): $(ALL_IMPORT_LIBS)
+$(INSTALLSUBDIRS:%=%/__install__): $(ALL_IMPORT_LIBS)
# Map library name to the corresponding directory
@@ -1731,6 +1745,9 @@
winsock/ws2_32.dll$(DLLEXT): winsock
wsock32/wsock32.dll$(DLLEXT): wsock32
x11drv/x11drv.dll$(DLLEXT): x11drv
+dxguid/libdxguid.a: dxguid
+uuid/libuuid.a: uuid
+
# Rules for auto documentation
$(SUBDIRS:%=%/__man__): dummy
@@ -1752,20 +1769,20 @@
# Misc rules
-install install-dev:: $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
+install install-dev:: $(ALL_IMPORT_LIBS)
$(MKINSTALLDIRS) $(dlldir)
- for f in $(IMPORT_LIBS:%=%.$(IMPLIBEXT)); do $(INSTALL_DATA) $$f $(dlldir)/$$f; done
+ for f in $(ALL_IMPORT_LIBS); do $(INSTALL_DATA) $$f $(dlldir)/$$f; done
install install-lib:: $(INSTALLSUBDIRS:%=%/__install__)
uninstall::
- $(RM) $(IMPORT_LIBS:%=$(dlldir)/%.$(IMPLIBEXT))
+ $(RM) $(ALL_IMPORT_LIBS:%=$(dlldir)/%)
-rmdir $(dlldir)
-implib: $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
+implib: $(ALL_IMPORT_LIBS)
clean::
- $(RM) $(IMPORT_LIBS:%=%.a) $(IMPORT_LIBS:%=%.def) $(SYMLINKS)
+ $(RM) $(ALL_IMPORT_LIBS) $(SYMLINKS)
check test:: $(BUILDSUBDIRS:%=%/__test__)
diff --git a/dlls/Maketest.rules.in b/dlls/Maketest.rules.in
index a7e6f3c..abf106a 100644
--- a/dlls/Maketest.rules.in
+++ b/dlls/Maketest.rules.in
@@ -41,12 +41,12 @@
# Rules for .so main module
$(MODULE).so: $(MODULE).spec.o $(OBJS) Makefile.in
- $(LDDLL) $(MODULE).spec.o $(OBJS) -o $@ $(ALL_LIBS) -lc
+ $(LDDLL) $(MODULE).spec.o $(OBJS) -o $@ -L$(DLLDIR) $(ALL_LIBS) -lc
# Rules for .exe main module
-$(MODULE): $(OBJS) $(RCOBJS) $(IMPORTLIBS) Makefile.in
- $(CC) $(OBJS) $(RCOBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
+$(MODULE): $(OBJS) $(RCOBJS) Makefile.in
+ $(CC) $(OBJS) $(RCOBJS) -o $@ $(IMPORTS:%=-l%) $(EXTRALIBS) $(LDFLAGS) $(LIBS)
# Rules for building test list
@@ -74,7 +74,7 @@
crosstest:: @CROSSTEST@
$(CROSSTEST): $(CROSSOBJS) Makefile.in
- $(CROSSCC) $(CROSSOBJS) -o $@ $(IMPORTS:%=-l%) $(LIBS)
+ $(CROSSCC) $(CROSSOBJS) -o $@ $(IMPORTS:%=-l%) $(EXTRALIBS) $(LDFLAGS) $(LIBS)
# Rules for cleaning
diff --git a/dlls/dxguid/.cvsignore b/dlls/dxguid/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/dlls/dxguid/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/dlls/dxguid/Makefile.in b/dlls/dxguid/Makefile.in
new file mode 100644
index 0000000..10d628e
--- /dev/null
+++ b/dlls/dxguid/Makefile.in
@@ -0,0 +1,23 @@
+DEFS = -D__WINESRC__
+DLLFLAGS = @DLLFLAGS@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR = @srcdir@
+VPATH = @srcdir@
+MODULE = libdxguid.a
+
+C_SRCS = \
+ dx8guid.c \
+ dx9guid.c \
+ dxguid.c
+
+all: $(MODULE)
+
+@MAKE_RULES@
+
+$(MODULE): $(OBJS) Makefile.in
+ $(RM) $@
+ $(AR) $@ $(OBJS)
+ $(RANLIB) $@
+
+### Dependencies:
diff --git a/dlls/dxguid/dx8guid.c b/dlls/dxguid/dx8guid.c
new file mode 100644
index 0000000..4bd9dab
--- /dev/null
+++ b/dlls/dxguid/dx8guid.c
@@ -0,0 +1,35 @@
+/*
+ * DirectX 8 GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 Francois Gouget
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "olectl.h"
+#include "initguid.h"
+
+#include "d3d8.h"
+#include "d3dx8core.h"
diff --git a/dlls/dxguid/dx9guid.c b/dlls/dxguid/dx9guid.c
new file mode 100644
index 0000000..d65ba90
--- /dev/null
+++ b/dlls/dxguid/dx9guid.c
@@ -0,0 +1,35 @@
+/*
+ * DirectX 9 GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 Francois Gouget
+ * Copyright 2003 Raphael Junqueira
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "olectl.h"
+#include "initguid.h"
+
+#include "d3d9.h"
diff --git a/dlls/dxguid/dxguid.c b/dlls/dxguid/dxguid.c
new file mode 100644
index 0000000..83db7f9
--- /dev/null
+++ b/dlls/dxguid/dxguid.c
@@ -0,0 +1,46 @@
+/*
+ * DirectX GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 Francois Gouget
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "oleauto.h"
+#include "olectl.h"
+#include "initguid.h"
+
+#include "d3d.h"
+#include "ddraw.h"
+#include "mmsystem.h"
+#include "dsound.h"
+#include "dsdriver.h"
+#include "dsconf.h"
+#include "dmusici.h"
+#include "dmusics.h"
+#include "dplay.h"
+#include "dplobby.h"
+#include "dinput.h"
+#include "ddrawi.h"
diff --git a/dlls/make_dlls b/dlls/make_dlls
index 9c7c74b..b720bf1 100755
--- a/dlls/make_dlls
+++ b/dlls/make_dlls
@@ -24,8 +24,8 @@
my $makefiles = `find . -name Makefile.in -print`;
-my %imports = ();
my %directories = ();
+my %implib_dirs = ();
my %altnames = ();
# list of special dlls that can be switched on or off by configure
@@ -61,8 +61,14 @@
if (/^MODULE\s*=\s*([a-zA-Z0-9_.]+)/)
{
$module = $1;
- $imports{$module} = [ ];
- ($directories{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+ if ($module =~ /^lib.*\.a$/)
+ {
+ ($implib_dirs{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+ }
+ else
+ {
+ ($directories{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+ }
next;
}
if (/^ALTNAMES\s*=\s*(.*)/)
@@ -71,15 +77,8 @@
$altnames{$module} = \@list;
next;
}
- if (/^(DELAYIMPORTS|IMPORTS)\s*=\s*(.*)/)
- {
- my @list = map { /\./ ? $_ : $_ . ".dll"; } split(/\s/,$2);
- push @{$imports{$module}}, @list;
- next;
- }
}
close MAKE;
- push @{$imports{$module}}, "kernel32.dll" unless !defined($module) || @{$imports{$module}} || $module eq "ntdll.dll";
}
open NEWMAKE,">Makefile.in.new" or die "cannot create Makefile.in.new";
@@ -126,7 +125,7 @@
}
printf NEWMAKE "\n\nSUBDIRS = \\\n\t\$(BASEDIRS)";
-foreach my $dir (sort keys %special_dlls)
+foreach my $dir (sort (keys %special_dlls, values %implib_dirs))
{
printf NEWMAKE " \\\n\t%s", $dir;
}
@@ -146,13 +145,15 @@
foreach my $mod (sort keys %directories)
{
next if defined($special_dlls{$directories{$mod}}); # skip special dlls
- $targets{sprintf("%s\$(DLLEXT)",$mod)} = 1;
+ $targets{$mod . "\$(DLLEXT)"} = 1;
next unless defined $altnames{$mod};
foreach my $i (sort @{$altnames{$mod}})
{
$targets16{sprintf("%s\$(DLLEXT)",$i)} = 1;
}
}
+foreach my $mod (sort keys %implib_dirs) { $targets{$mod} = 1; }
+
print NEWMAKE <<EOF;
\@MAKE_RULES\@
@@ -204,7 +205,11 @@
printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s\$(DLLEXT) \$@\n\n", $mod;
}
}
-
+foreach my $mod (sort keys %implib_dirs)
+{
+ printf NEWMAKE "%s: %s/%s\n", $mod, $implib_dirs{$mod}, $mod;
+ printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s \$@\n\n", $implib_dirs{$mod}, $mod;
+}
################################################################
# output the import libraries rules
@@ -219,6 +224,11 @@
$def =~ s/\.(dll|drv)$//;
printf NEWMAKE " \\\n\tlib%s", $def;
}
+print NEWMAKE "\n\nALL_IMPORT_LIBS = \\\n\t\$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))";
+foreach my $mod (sort keys %implib_dirs)
+{
+ printf NEWMAKE " \\\n\t%s", $mod;
+}
print NEWMAKE "\n\n";
foreach my $mod (sort @implibs)
@@ -244,9 +254,8 @@
print NEWMAKE <<EOF;
-\$(SUBDIRS): \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
-\$(SUBDIRS:%=%/__install__): \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
-\$(SUBDIRS:%=%/__crosstest__): \$(IMPORT_LIBS:%=%.a)
+\$(BUILDSUBDIRS): \$(ALL_IMPORT_LIBS)
+\$(INSTALLSUBDIRS:%=%/__install__): \$(ALL_IMPORT_LIBS)
EOF
@@ -259,11 +268,16 @@
{
printf NEWMAKE "%s/%s\$(DLLEXT): %s\n", $directories{$mod}, $mod, $directories{$mod};
}
+foreach my $mod (sort keys %implib_dirs)
+{
+ printf NEWMAKE "%s/%s: %s\n", $implib_dirs{$mod}, $mod, $implib_dirs{$mod};
+}
################################################################
# makefile trailer
print NEWMAKE <<EOF;
+
# Rules for auto documentation
\$(SUBDIRS:%=%/__man__): dummy
@@ -285,20 +299,20 @@
# Misc rules
-install install-dev:: \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
+install install-dev:: \$(ALL_IMPORT_LIBS)
\$(MKINSTALLDIRS) \$(dlldir)
- for f in \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT)); do \$(INSTALL_DATA) \$\$f \$(dlldir)/\$\$f; done
+ for f in \$(ALL_IMPORT_LIBS); do \$(INSTALL_DATA) \$\$f \$(dlldir)/\$\$f; done
install install-lib:: \$(INSTALLSUBDIRS:%=%/__install__)
uninstall::
- \$(RM) \$(IMPORT_LIBS:%=\$(dlldir)/%.\$(IMPLIBEXT))
+ \$(RM) \$(ALL_IMPORT_LIBS:%=\$(dlldir)/%)
-rmdir \$(dlldir)
-implib: \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
+implib: \$(ALL_IMPORT_LIBS)
clean::
- \$(RM) \$(IMPORT_LIBS:%=%.a) \$(IMPORT_LIBS:%=%.def) \$(SYMLINKS)
+ \$(RM) \$(ALL_IMPORT_LIBS) \$(SYMLINKS)
check test:: \$(BUILDSUBDIRS:%=%/__test__)
diff --git a/dlls/uuid/.cvsignore b/dlls/uuid/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/dlls/uuid/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/dlls/uuid/Makefile.in b/dlls/uuid/Makefile.in
new file mode 100644
index 0000000..a7a4dcf
--- /dev/null
+++ b/dlls/uuid/Makefile.in
@@ -0,0 +1,21 @@
+DEFS = -D__WINESRC__
+DLLFLAGS = @DLLFLAGS@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR = @srcdir@
+VPATH = @srcdir@
+MODULE = libuuid.a
+
+C_SRCS = \
+ uuid.c
+
+all: $(MODULE)
+
+@MAKE_RULES@
+
+$(MODULE): $(OBJS) Makefile.in
+ $(RM) $@
+ $(AR) $@ $(OBJS)
+ $(RANLIB) $@
+
+### Dependencies:
diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c
new file mode 100644
index 0000000..ed1ac3e
--- /dev/null
+++ b/dlls/uuid/uuid.c
@@ -0,0 +1,75 @@
+/*
+ * GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 Francois Gouget
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "initguid.h"
+
+/* GUIDs defined in uuids.lib */
+
+DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "servprov.h"
+
+#include "oleauto.h"
+#include "oleidl.h"
+#include "objidl.h"
+#include "olectl.h"
+
+#include "ocidl.h"
+
+#include "docobj.h"
+#include "exdisp.h"
+
+#include "shlguid.h"
+#include "shlobj.h"
+#include "comcat.h"
+#include "urlmon.h"
+
+/* FIXME: cguids declares GUIDs but does not define their values */
+
+/* other GUIDs */
+
+#include "vfw.h"
+
+#include "uuids.h"
+
+/* the GUID for these interfaces are already defined by dxguid.c */
+#define __IReferenceClock_INTERFACE_DEFINED__
+#define __IKsPropertySet_INTERFACE_DEFINED__
+#include "strmif.h"
+#include "control.h"
+
+/* GUIDs not declared in an exported header file */
+DEFINE_GUID(IID_IDirectPlaySP,0xc9f6360,0xcc61,0x11cf,0xac,0xec,0x00,0xaa,0x00,0x68,0x86,0xe3);
+DEFINE_GUID(IID_ISFHelper,0x1fe68efb,0x1874,0x9812,0x56,0xdc,0x00,0x00,0x00,0x00,0x00,0x00);
+DEFINE_GUID(IID_IDPLobbySP,0x5a4e5a20,0x2ced,0x11d0,0xa8,0x89,0x00,0xa0,0xc9,0x05,0x43,0x3c);
+
+DEFINE_GUID(FMTID_SummaryInformation,0xF29F85E0,0x4FF9,0x1068,0xAB,0x91,0x08,0x00,0x2B,0x27,0xB3,0xD9);
+DEFINE_GUID(FMTID_DocSummaryInformation,0xD5CDD502,0x2E9C,0x101B,0x93,0x97,0x08,0x00,0x2B,0x2C,0xF9,0xAE);
+DEFINE_GUID(FMTID_UserDefinedProperties,0xD5CDD505,0x2E9C,0x101B,0x93,0x97,0x08,0x00,0x2B,0x2C,0xF9,0xAE);