aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/audiocd/linux/linux-audiocd.cpp6
-rwxr-xr-xconfigure23
2 files changed, 20 insertions, 9 deletions
diff --git a/backends/audiocd/linux/linux-audiocd.cpp b/backends/audiocd/linux/linux-audiocd.cpp
index a5838e1c5a..caa0265637 100644
--- a/backends/audiocd/linux/linux-audiocd.cpp
+++ b/backends/audiocd/linux/linux-audiocd.cpp
@@ -62,6 +62,7 @@
#include <linux/cdrom.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <sys/types.h>
enum {
kLeadoutTrack = 0xAA
@@ -379,8 +380,9 @@ bool LinuxAudioCDManager::tryAddDrive(DeviceList &devices, const Common::String
bool LinuxAudioCDManager::tryAddDrive(DeviceList &devices, dev_t device) {
// Construct the block name
- // (Does anyone have a better way to do this? bdevname is kernel only)
- Common::String name = Common::String::format("/dev/block/%d:%d", gnu_dev_major(device), gnu_dev_minor(device));
+ // TODO: libblkid's blkid_devno_to_devname is exactly what we look for.
+ // This requires an external dependency though.
+ Common::String name = Common::String::format("/dev/block/%d:%d", major(device), minor(device));
return tryAddDrive(devices, name, device);
}
diff --git a/configure b/configure
index c958e9acf0..8d778db278 100755
--- a/configure
+++ b/configure
@@ -4261,15 +4261,24 @@ define_in_config_if_yes "$_opengles" "USE_GLES"
#
# Check for Linux CD-ROM support
#
-echocheck "Linux CD-ROM"
-linuxcd=no
-cat > $TMPC << EOF
+case $_host_os in
+ *linux*)
+ echocheck "Linux CD-ROM"
+ linuxcd=no
+ cat > $TMPC << EOF
#include <linux/cdrom.h>
-int main(void) { int x = CDROMREADAUDIO; return 0; }
+#include <sys/types.h>
+int main(void) {
+ int x = CDROMREADAUDIO;
+ dev_t dev;
+ return major(dev) + x;
+}
EOF
-cc_check && linuxcd=yes
-define_in_config_if_yes "$linuxcd" 'USE_LINUXCD'
-echo "$linuxcd"
+ cc_check && linuxcd=yes
+ define_in_config_if_yes "$linuxcd" 'USE_LINUXCD'
+ echo "$linuxcd"
+ ;;
+esac
#