diff --git a/configure.in b/configure.in
index 50d79e599..0ded54451 100644
--- a/configure.in
+++ b/configure.in
@@ -1237,7 +1237,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, linux, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS linux"
+ CDROM_DRIVERS="$CDROM_DRIVERS linux/libcdrom_linux.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1302,7 +1303,8 @@ case "$target" in
# Set up files for the cdrom library
# (No cdrom support yet)
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
+ CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1353,7 +1355,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, freebsd, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS freebsd"
+ CDROM_DRIVERS="$CDROM_DRIVERS freebsd/libcdrom_freebsd.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1404,7 +1407,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, openbsd, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS openbsd"
+ CDROM_DRIVERS="$CDROM_DRIVERS openbsd/libcdrom_openbsd.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1463,7 +1467,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, openbsd, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS openbsd"
+ CDROM_DRIVERS="$CDROM_DRIVERS openbsd/libcdrom_openbsd.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1517,7 +1522,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
+ CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1566,7 +1572,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, linux, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS linux"
+ CDROM_DRIVERS="$CDROM_DRIVERS linux/libcdrom_linux.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1612,7 +1619,8 @@ case "$target" in
# Set up files for the cdrom library
# (No CD-ROM support yet)
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
+ CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1673,7 +1681,8 @@ case "$target" in
# Set up files for the cdrom library
# (No CD-ROM support yet)
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
+ CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1717,7 +1726,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, aix, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS aix"
+ CDROM_DRIVERS="$CDROM_DRIVERS aix/libcdrom_aix.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1762,7 +1772,8 @@ case "$target" in
# Set up files for the cdrom library
# (No cdrom support yet)
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
+ CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1806,7 +1817,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, qnx, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS qnx"
+ CDROM_DRIVERS="$CDROM_DRIVERS qnx/libcdrom_qnx.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1858,7 +1870,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, win32, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS win32"
+ CDROM_DRIVERS="$CDROM_DRIVERS win32/libcdrom_win32.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1913,7 +1926,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, beos, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS beos"
+ CDROM_DRIVERS="$CDROM_DRIVERS beos/libcdrom_beos.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -1956,7 +1970,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, macos, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS macos"
+ CDROM_DRIVERS="$CDROM_DRIVERS macos/libcdrom_macos.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -2002,7 +2017,8 @@ case "$target" in
fi
# Set up files for the cdrom library
if test x$enable_cdrom = xyes; then
- COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
+ CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
+ CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
fi
# Set up files for the thread library
if test x$enable_threads = xyes; then
@@ -2077,6 +2093,8 @@ AC_SUBST(VIDEO_SUBDIRS)
AC_SUBST(VIDEO_DRIVERS)
AC_SUBST(JOYSTICK_SUBDIRS)
AC_SUBST(JOYSTICK_DRIVERS)
+AC_SUBST(CDROM_SUBDIRS)
+AC_SUBST(CDROM_DRIVERS)
AC_SUBST(SDL_EXTRADIRS)
AC_SUBST(SDL_EXTRALIBS)
AC_SUBST(SYSTEM_LIBS)
@@ -2164,6 +2182,15 @@ src/joystick/linux/Makefile
src/joystick/macos/Makefile
src/joystick/win32/Makefile
src/cdrom/Makefile
+src/cdrom/aix/Makefile
+src/cdrom/beos/Makefile
+src/cdrom/dummy/Makefile
+src/cdrom/freebsd/Makefile
+src/cdrom/linux/Makefile
+src/cdrom/macos/Makefile
+src/cdrom/openbsd/Makefile
+src/cdrom/qnx/Makefile
+src/cdrom/win32/Makefile
src/thread/Makefile
src/timer/Makefile
src/endian/Makefile
diff --git a/docs.html b/docs.html
index a7a86dfb1..3e01f99a2 100644
--- a/docs.html
+++ b/docs.html
@@ -16,6 +16,7 @@ be found at the main SDL page.
Major changes since SDL 1.0.0:
+ - 1.2.3: Fixed IDE and SCSI CD-ROM detection on BeOS (thanks Caz!)
- 1.2.3: Fixed the system dependent SDL_WINDOWID hack on Windows
- 1.2.3: Added 640x480 as a scaled resolution for NTSC/PAL output
- 1.2.3: Added support for TV output on the Linux PlayStation Beta
diff --git a/src/cdrom/Makefile.am b/src/cdrom/Makefile.am
index 0fddeb8e2..e4306f702 100644
--- a/src/cdrom/Makefile.am
+++ b/src/cdrom/Makefile.am
@@ -3,27 +3,17 @@
noinst_LTLIBRARIES = libcdrom.la
-ARCH_SUBDIRS = $(srcdir)/dummy $(srcdir)/beos $(srcdir)/freebsd \
- $(srcdir)/linux $(srcdir)/macos $(srcdir)/openbsd \
- $(srcdir)/qnx $(srcdir)/win32
+# Define which subdirectories need to be built
+SUBDIRS = @CDROM_SUBDIRS@
+DIST_SUBDIRS = aix beos dummy freebsd linux macos openbsd qnx win32
+
+DRIVERS = @CDROM_DRIVERS@
# Include the architecture-independent sources
-COMMON_SRCS = SDL_cdrom.c SDL_syscdrom.h
+COMMON_SRCS = \
+ SDL_cdrom.c \
+ SDL_syscdrom.h
-# Include the architecture-specific sources
-ARCH_SRCS = SDL_syscdrom.c
-
-libcdrom_la_SOURCES = $(COMMON_SRCS) $(ARCH_SRCS)
-
-## Let automake know that it shouldn't distribute linked sources
-BUILT_SOURCES = $(ARCH_SRCS)
-
-## Let automake know that it should remove these for distribution
-DISTCLEANFILES = $(ARCH_SRCS)
-
-# The architecture specific directories need to be copied into place
-# when building a distribution.
-dist-hook:
- (cd $(distdir) && rm -f $(BUILT_SOURCES))
- cp -rp $(ARCH_SUBDIRS) $(distdir)
- (cd $(distdir) && rm -rf `find . -name CVS`)
+libcdrom_la_SOURCES = $(COMMON_SRCS)
+libcdrom_la_LIBADD = $(DRIVERS)
+libcdrom_la_DEPENDENCIES = $(DRIVERS)
diff --git a/src/cdrom/aix/.cvsignore b/src/cdrom/aix/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/aix/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/aix/Makefile.am b/src/cdrom/aix/Makefile.am
new file mode 100644
index 000000000..2a40b9143
--- /dev/null
+++ b/src/cdrom/aix/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the AIX cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_aix.la
+libcdrom_aix_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c
diff --git a/src/cdrom/beos/.cvsignore b/src/cdrom/beos/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/beos/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/beos/Makefile.am b/src/cdrom/beos/Makefile.am
new file mode 100644
index 000000000..a3a4bf03c
--- /dev/null
+++ b/src/cdrom/beos/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the BeOS cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_beos.la
+libcdrom_beos_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.cc
diff --git a/src/cdrom/beos/SDL_syscdrom.c b/src/cdrom/beos/SDL_syscdrom.cc
similarity index 87%
rename from src/cdrom/beos/SDL_syscdrom.c
rename to src/cdrom/beos/SDL_syscdrom.cc
index 325001693..beb231f6c 100644
--- a/src/cdrom/beos/SDL_syscdrom.c
+++ b/src/cdrom/beos/SDL_syscdrom.cc
@@ -37,10 +37,15 @@ static char rcsid =
#include
#include
+#include
+#include
+#include
#include "SDL_error.h"
#include "SDL_cdrom.h"
+extern "C" {
#include "SDL_syscdrom.h"
+}
/* Constants to help us get at the SCSI table-of-contents info */
#define CD_NUMTRACKS(toc) toc.toc_data[3]
@@ -76,6 +81,7 @@ static int SDL_SYS_CDResume(SDL_CD *cdrom);
static int SDL_SYS_CDStop(SDL_CD *cdrom);
static int SDL_SYS_CDEject(SDL_CD *cdrom);
static void SDL_SYS_CDClose(SDL_CD *cdrom);
+int try_dir(const char *directory);
/* Check a drive to see if it is a CD-ROM */
@@ -128,32 +134,6 @@ static void AddDrive(char *drive)
}
}
-# if 0 /* Save this for later, when I can test it */
-/* SCSI bus scanning magic */
-static int CheckSCSI(int path, int id, int lun)
-{
- int is_cd;
- int fd;
- scsiprobe_inquiry inquiry;
-
- is_cd = 0;
- fd = open("/dev/scsiprobe", 0);
- if ( fd >= 0 ) {
- inquiry.path = path;
- inquiry.id = id;
- inquiry.lun = lun;
- inquiry.len = sizeof(inquiry);
- if ( ioctl(fd, B_SCSIPROBE_INQUIRY, &inquiry) == B_NO_ERROR ) {
- if ( (inquiry.data[0]&0x1F) == B_SCSI_CD ) {
- is_cd = 1;
- }
- }
- close(fd);
- }
- return(is_cd);
-}
-#endif
-
/* IDE bus scanning magic */
enum {
IDE_GET_DEVICES_INFO = B_DEVICE_OP_CODES_END + 50,
@@ -193,7 +173,7 @@ int SDL_SYS_CDInit(void)
SDLcdrom = getenv("SDL_CDROM"); /* ':' separated list of devices */
if ( SDLcdrom != NULL ) {
char *cdpath, *delim;
- cdpath = malloc(strlen(SDLcdrom)+1);
+ cdpath = (char *)malloc(strlen(SDLcdrom)+1);
if ( cdpath != NULL ) {
strcpy(cdpath, SDLcdrom);
SDLcdrom = cdpath;
@@ -219,29 +199,65 @@ int SDL_SYS_CDInit(void)
return(0);
}
}
-
+
/* Scan the system for CD-ROM drives */
- raw_fd = open("/dev/disk/ide/rescan", 0);
- if ( raw_fd >= 0 ) {
- if (ioctl(raw_fd, IDE_GET_DEVICES_INFO, &info) == B_NO_ERROR) {
- if ( info.ide_0_master_type == B_CD ) {
- AddDrive("/dev/disk/ide/0/master/raw");
- }
- if ( info.ide_0_slave_type == B_CD ) {
- AddDrive("/dev/disk/ide/0/slave/raw");
- }
- if ( info.ide_1_master_type == B_CD ) {
- AddDrive("/dev/disk/ide/1/master/raw");
- }
- if ( info.ide_1_slave_type == B_CD ) {
- AddDrive("/dev/disk/ide/1/slave/raw");
- }
- }
- close(raw_fd);
- }
- return(0);
+ try_dir("/dev/disk");
+ return 0;
}
+
+int try_dir(const char *directory)
+{
+ BDirectory dir;
+ dir.SetTo(directory);
+ if(dir.InitCheck() != B_NO_ERROR) {
+ return false;
+ }
+ dir.Rewind();
+ BEntry entry;
+ while(dir.GetNextEntry(&entry) >= 0) {
+ BPath path;
+ const char *name;
+ entry_ref e;
+
+ if(entry.GetPath(&path) != B_NO_ERROR)
+ continue;
+ name = path.Path();
+
+ if(entry.GetRef(&e) != B_NO_ERROR)
+ continue;
+
+ if(entry.IsDirectory()) {
+ if(strcmp(e.name, "floppy") == 0)
+ continue; /* ignore floppy (it is not silent) */
+ int devfd = try_dir(name);
+ if(devfd >= 0)
+ return devfd;
+ }
+ else {
+ int devfd;
+ device_geometry g;
+
+ if(strcmp(e.name, "raw") != 0)
+ continue; /* ignore partitions */
+
+ devfd = open(name, O_RDONLY);
+ if(devfd < 0)
+ continue;
+
+ if(ioctl(devfd, B_GET_GEOMETRY, &g, sizeof(g)) >= 0) {
+ if(g.device_type == B_CD)
+ {
+ AddDrive(strdup(name));
+ }
+ }
+ close(devfd);
+ }
+ }
+ return B_ERROR;
+}
+
+
/* General ioctl() CD-ROM command function */
static int SDL_SYS_CDioctl(int index, int command, void *arg)
{
@@ -381,7 +397,7 @@ static int SDL_SYS_CDEject(SDL_CD *cdrom)
/* Close the CD-ROM handle */
static void SDL_SYS_CDClose(SDL_CD *cdrom)
{
- free(cdrom);
+ close(cdrom->id);
}
void SDL_SYS_CDQuit(void)
diff --git a/src/cdrom/dummy/.cvsignore b/src/cdrom/dummy/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/dummy/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/dummy/Makefile.am b/src/cdrom/dummy/Makefile.am
new file mode 100644
index 000000000..f726a6e97
--- /dev/null
+++ b/src/cdrom/dummy/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the dummy cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_dummy.la
+libcdrom_dummy_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c
diff --git a/src/cdrom/freebsd/.cvsignore b/src/cdrom/freebsd/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/freebsd/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/freebsd/Makefile.am b/src/cdrom/freebsd/Makefile.am
new file mode 100644
index 000000000..c54459fad
--- /dev/null
+++ b/src/cdrom/freebsd/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the FreeBSD cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_freebsd.la
+libcdrom_freebsd_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c
diff --git a/src/cdrom/linux/.cvsignore b/src/cdrom/linux/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/linux/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/linux/Makefile.am b/src/cdrom/linux/Makefile.am
new file mode 100644
index 000000000..17d10ef3c
--- /dev/null
+++ b/src/cdrom/linux/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the Linux cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_linux.la
+libcdrom_linux_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c
diff --git a/src/cdrom/macos/.cvsignore b/src/cdrom/macos/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/macos/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/macos/Makefile.am b/src/cdrom/macos/Makefile.am
new file mode 100644
index 000000000..abd1dd780
--- /dev/null
+++ b/src/cdrom/macos/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the MacOS Classic cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_macos.la
+libcdrom_macos_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c SDL_syscdrom_c.h
diff --git a/src/cdrom/openbsd/.cvsignore b/src/cdrom/openbsd/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/openbsd/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/openbsd/Makefile.am b/src/cdrom/openbsd/Makefile.am
new file mode 100644
index 000000000..12ca102b8
--- /dev/null
+++ b/src/cdrom/openbsd/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the OpenBSD cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_openbsd.la
+libcdrom_openbsd_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c
diff --git a/src/cdrom/qnx/.cvsignore b/src/cdrom/qnx/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/qnx/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/qnx/Makefile.am b/src/cdrom/qnx/Makefile.am
new file mode 100644
index 000000000..79d352834
--- /dev/null
+++ b/src/cdrom/qnx/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the QNX cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_qnx.la
+libcdrom_qnx_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c
diff --git a/src/cdrom/win32/.cvsignore b/src/cdrom/win32/.cvsignore
new file mode 100644
index 000000000..899d53557
--- /dev/null
+++ b/src/cdrom/win32/.cvsignore
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+.libs
+*.o
+*.lo
+*.la
diff --git a/src/cdrom/win32/Makefile.am b/src/cdrom/win32/Makefile.am
new file mode 100644
index 000000000..00c8806f9
--- /dev/null
+++ b/src/cdrom/win32/Makefile.am
@@ -0,0 +1,8 @@
+
+## Makefile.am for the Windows cdrom driver for SDL
+
+noinst_LTLIBRARIES = libcdrom_win32.la
+libcdrom_win32_la_SOURCES = $(SRCS)
+
+# The SDL cdrom driver sources
+SRCS = SDL_syscdrom.c