diff options
-rw-r--r-- | backends/audiocd/linux/linux-audiocd.cpp | 6 | ||||
-rwxr-xr-x | configure | 23 |
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); } @@ -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 # |