this at compile time and it fouls up cross compilation.
cd-paranoia has tests at run-time. libcdio inherited this from
vcdimager which needs it in writing images. It is possible that when
libcdio does writing this may come back. Untill then, simplify.
echo -n is not working on all shells, in particular it does not seem
to work on Sun /bin/sh shell; instead use subshells to have the same
output everywhere.
* configure.ac: Added AC_LIBTOOL_WIN32_DLL for enabling the creation of shared libraries.
* configure.ac: Added -I$(top_srcdir)/include to LIBCDIO_CFLAGS, it allows to build outside the source tree.
* configure.ac: Added LT_NO_UNDEFINED for adding '-no-undefined' switch to libtool when building win32 shared libraries.
* configure.ac: Check for Windows.h presence if under Mingw (included for using Sleep() function).
* configure.ac: Check for more missing functions: setenv(), unsetenv(), sleep(), gmtime_r(), localtime_r().
* example/cdchange.c: If sleep() function does not exist, it tries to emulate it with a similar code (require inclusion of Windows.h)
* src/cddb.c:
* lib/cdda_interface/scsi_interface.c: Compilation fails because u_int32_t is undefined. It has been changed to uint32_t to be compliant to all other parts of the libraries.
* lib/cdda_interface/Makefile.am:
* lib/iso9660/Makefile.am:
* lib/cdio++/Makefile.am:
* lib/paranoia/Makefile.am:
* lib/udf/Makefile.am:
* lib/driver/Makefile.am: added LT_NO_UNDEFINED to libtool flags.
* lib/iso9660/iso9660.c: Added replacements for setenv(), unsetenv(), gmtime_r\
(), localtime_r().
- MinGW doesn't have struct timespec, so udf_time.c doesn't compile
(changes lib/udf/udf_time.c, configure.ac, config.h.in)
- The configure test for bitfield ordering uses AC_TRY_RUN and thus
doesn't work when cross-compiling; use sneakiness to try and
determine it at compile time, falling back to the existing runtime
check if the sneakiness doesn't work
(changes configure.ac; tested on x86_64-linux-gnu and i586-mingw32
which are bf_lsbf=1, plus sparc64-linux-gnu which is bf_lsbf=0)
- The configure test for "extern long timezone" needlessly uses
AC_TRY_RUN when in fact AC_LINK_IFELSE is all we need to know, and
that latter works when cross-compiling
(changes configure.ac)
- MinGW sys/stat.h doesn't have the *GRP or *OTH macros, nor S_IFLNK
or S_IFSOCK, nor S_ISUID etc
(changes lib/udf/udf.c and lib/iso9660/xa.c)
- MinGW doesn't have <sys/wait.h>, so even the header-inclusion bit
of the Linux driver doesn't compile unless it's moved inside the
"ifdef HAVE_LINUX_CDROM"
(changes lib/driver/gnu_linux.c)
- Because the man pages cd-info.1 etc depend on the binaries themselves
(for help2man reasons), the configure options --without-cd-info etc
don't actually stop them being compiled. Fixed by only depending on
man pages for programs that are actually built, which also stops
the installation of man pages of programs which aren't themselves
installed
(changes src/Makefile.am)
by Matt Messier. This allows to eject disks on Mac OS X without having to
call an external utility.
Incidentally this fixes libcdio eject function on Mac OS X 10.4 and later, as
hditool was moved from /usr/sbin to /usr/bin.