Sophie

Sophie

distrib > Fedora > 13 > x86_64 > by-pkgid > ef4a023ae41cea974bc1eacf621b755d > files > 28

libcdio-0.82-2.fc13.x86_64.rpm

See README.develop if you plan use the git or development version.

0. To compile the source, you'll need a POSIX shell and utilites (sh,
sed, grep, cat), an ANSI C compiler like gcc, and a POSIX "make"
program like GNU make. You may also want to have "libtool" installed
for building portable shared libraries.

1. Uncompress and unpack the source code using for example "tar". Recent
versions of GNU tar can do this in one step like this:
  tar -xpf libcdio-*.bz  # or libcdio-*.gz

2. Go into the directory, run "configure" followed by "make":

  cd libcdio-*
  sh ./configure MAKE=gmake 

3. If step 2 works, Now compile everything:

  make

4. Run the regression tests if you want:

  make check

5. Install. If the preceeding steps were successful:

  make install  # you may have to do this as root 
                # or "sudo make install"


If you have problems linking libcdio or libiso9660, see the BSD
section.  You might also try the option --without-versioned-libs. However
this option does help with the situtation described below so it is
preferred all other things being equal.

If you are debugging libcdio, the libtool and the dynamic libraries
can make things harder. I suggest setting CFLAGS to include
'-fno-inline -g' and using --disable-shared on configure.


VCD dependency:
---------------
One thing that confuses people is the "dependency" on libvcdinfo from
vcdimager, while vcdimager has a dependency on libcdio.  This libcdio
dependency on vcdimager is an optional (i.e. not mandatory) dependency,
while the vcdimager dependency right now is mandatory. libvcdinfo is
used only by the utility program cd-info. If you want cd-info to use
the VCD reporting portion and you don't already have vcdimager
installed, build and install libcdio, then vcdimager, then configure
libcdio again and it should find libvcdinfo. 

People who make packages might consider making two packages, a libcdio
package with just the libraries (and no dependency on libvcdinfo) and
a libcdio-utils which contains cd-info and iso-info, cd-read,
iso-read. Should you want cd-info with VCD support then you'd add a
dependency in that package to libvcdinfo.

Another thing one can do is "make install" inside the library, or run
"configure --without-vcd-info --without-cddb" (since libcddb also has
an optional dependency on libcdio).

Microsoft Windows
-------

The building under Microsoft Windows the thing to do is to install
cygwin (http://www.cygwin.com). It has been reported that MinGW
(http://www.mingw.org/) also works, but it is possible you may
encounter more problems there. 

Folks may have used Microsoft compilers (e.g. Visual C), but you may
find you need to make your own "project" files.  Don't undertake this
unless you are willing to spend time hacking. xboxmediacenter team
folks I believe go this route, so you may be able to use their project
files as a starting point. 

XBOX
-------

Consult the xboxmediacenter team (www.xboxmediacenter.de)


BSD
---

Unless you use --without-versioned-libs (not recommended), you need to
use GNU make which usually can be found under the name "gmake".

If you use another make you are likely to get problems linking libcdio
and libiso9660.


Solaris
-------

You may need to use --without-versioned-libs if you get a problem
building libcdio or libiso9660. 

If you get a message like:
   libcdio.so: attempted multiple inclusion of file

because you have enable vcd-info and it is installed, then the only
way I know how to get around is to use configure with --disable-shared.

OS Support
---------------

Support for Operating Systems's is really based on the desire, ability
and willingness of others to help out. I use GNU/Linux so that
probably works best. Before a release I'll test on servers I have
available. I also announce a pending release on libcdio-devel@gnu.org
and ask others to test out.

Steve Schultz has done a great job making BSDI CD support look like
GNU/Linux and usually he let's me know where I've blown things on BSDI
and Darwin. Usage on Darwin has been picking up although Darwin is in
a world of its own so support for that (e.g. issuing MMC commnads)
seems to lag behind.

Of late FreeBSD folks have been pretty good about testing new releases
and reporting problems.