Blame README.libcdio

Packit dd8086
See README.develop if you plan use the git or development version.
Packit dd8086
Packit dd8086
0. To compile the source, you'll need a POSIX shell and utilities (sh,
Packit dd8086
sed, grep, cat), an ANSI C compiler like gcc, and a POSIX "make"
Packit dd8086
program like GNU make or remake. You may also want to have "libtool" installed
Packit dd8086
for building portable shared libraries.
Packit dd8086
Packit dd8086
1. Uncompress and unpack the source code using for example "tar". Recent
Packit dd8086
versions of GNU tar can do this in one step like this:
Packit dd8086
  tar -xpf libcdio-*.bz  # or libcdio-*.gz
Packit dd8086
Packit dd8086
2. Go into the directory, run "configure" followed by "make":
Packit dd8086
Packit dd8086
  cd libcdio-*
Packit dd8086
  sh ./configure MAKE=make  # or remake or gmake
Packit dd8086
Packit dd8086
3. If step 2 works, compile everything:
Packit dd8086
Packit dd8086
  make  # or remake
Packit dd8086
Packit dd8086
4. Run the regression tests if you want:
Packit dd8086
Packit dd8086
  make check  # or remake check
Packit dd8086
Packit dd8086
5. Install. If the preceding steps were successful:
Packit dd8086
Packit dd8086
  make install  # you may have to do this as root
Packit dd8086
                # or "sudo make install"
Packit dd8086
Packit dd8086
Packit dd8086
If you have problems linking libcdio or libiso9660, see the BSD
Packit dd8086
section.  You might also try the option --without-versioned-libs. However
Packit dd8086
this option does help with the situation described below so it is
Packit dd8086
preferred all other things being equal.
Packit dd8086
Packit dd8086
If you are debugging libcdio, the libtool and the dynamic libraries
Packit dd8086
can make things harder. I suggest setting CFLAGS to include
Packit dd8086
'-fno-inline -g' and using --disable-shared on configure.
Packit dd8086
Packit dd8086
Packit dd8086
VCD dependency:
Packit dd8086
---------------
Packit dd8086
One thing that confuses people is the "dependency" on libvcdinfo from
Packit dd8086
vcdimager, while vcdimager has a dependency on libcdio.  This libcdio
Packit dd8086
dependency on vcdimager is an optional (i.e. not mandatory) dependency,
Packit dd8086
while the vcdimager dependency right now is mandatory. libvcdinfo is
Packit dd8086
used only by the utility program cd-info. If you want cd-info to use
Packit dd8086
the VCD reporting portion and you don't already have vcdimager
Packit dd8086
installed, build and install libcdio, then vcdimager, then configure
Packit dd8086
libcdio again and it should find libvcdinfo.
Packit dd8086
Packit dd8086
People who make packages might consider making two packages, a libcdio
Packit dd8086
package with just the libraries (and no dependency on libvcdinfo) and
Packit dd8086
a libcdio-utils which contains cd-info and iso-info, cd-read,
Packit dd8086
iso-read. Should you want cd-info with VCD support then you'd add a
Packit dd8086
dependency in that package to libvcdinfo.
Packit dd8086
Packit dd8086
Another thing one can do is "make install" inside the library, or run
Packit dd8086
"configure --without-vcd-info --without-cddb" (since libcddb also has
Packit dd8086
an optional dependency on libcdio).
Packit dd8086
Packit dd8086
Microsoft Windows
Packit dd8086
-------
Packit dd8086
Packit dd8086
Building under Microsoft Windows is supported for cygwin
Packit dd8086
(http://www.cygwin.com). You need to have the cygwin libiconv-devel
Packit dd8086
package installed.
Packit dd8086
Packit dd8086
For MinGW (http://www.mingw.org/) also works provided you have
Packit dd8086
libiconv installed.
Packit dd8086
Packit dd8086
Support for Microsoft compilers (e.g. Visual C) is not officially
Packit dd8086
supported.  You need to make your own "project" files.  Don't
Packit dd8086
undertake this unless you are willing to spend time hacking. In the
Packit dd8086
past xboxmediacenter team folks I believe have gone this route, as has
Packit dd8086
Pete Batard in his rufus project. You may be able to use their project
Packit dd8086
files as a starting point.
Packit dd8086
Packit dd8086
XBOX
Packit dd8086
-------
Packit dd8086
Packit dd8086
Consult the xboxmediacenter team (www.xboxmediacenter.de)
Packit dd8086
Packit dd8086
Packit dd8086
BSD, FreeBSD, NetBSD
Packit dd8086
---
Packit dd8086
Packit dd8086
Unless you use --without-versioned-libs (not recommended), you need to
Packit dd8086
use GNU make or remake (http://bashdb.sf.net/remake). GNU make can be
Packit dd8086
found under the name "gmake".
Packit dd8086
Packit dd8086
If you use another make you are likely to get problems linking libcdio
Packit dd8086
and libiso9660.
Packit dd8086
Packit dd8086
Packit dd8086
Solaris
Packit dd8086
-------
Packit dd8086
Packit dd8086
You may need to use --without-versioned-libs if you get a problem
Packit dd8086
building libcdio or libiso9660.
Packit dd8086
Packit dd8086
If you get a message like:
Packit dd8086
   libcdio.so: attempted multiple inclusion of file
Packit dd8086
Packit dd8086
because you have enable vcd-info and it is installed, then the only
Packit dd8086
way I know how to get around is to use configure with --disable-shared.
Packit dd8086
Packit dd8086
OS Support
Packit dd8086
---------------
Packit dd8086
Packit dd8086
Support for Operating Systems's is really based on the desire, ability
Packit dd8086
and willingness of others to help out. I use GNU/Linux so that
Packit dd8086
probably works best. Before a release I'll test on servers I have
Packit dd8086
available. I also announce a pending release on libcdio-devel@gnu.org
Packit dd8086
and ask others to test out.
Packit dd8086
Packit dd8086
Specific libcdio configure options and environment variables
Packit dd8086
---------------
Packit dd8086
  --disable-cxx            Disable C++ bindings (default enabled)
Packit dd8086
  --enable-cpp-progs       make C++ example programs (default enabled)
Packit dd8086
  --disable-example-progs  Don't build libcdio sample programs
Packit dd8086
  --disable-dependency-tracking  speeds up one-time build
Packit dd8086
  --enable-dependency-tracking   do not reject slow dependency extractors
Packit dd8086
  --disable-largefile      omit support for large files
Packit dd8086
  --enable-shared[=PKGS]   build shared libraries [default=yes]
Packit dd8086
  --enable-static[=PKGS]   build static libraries [default=yes]
Packit dd8086
  --enable-fast-install[=PKGS]
Packit dd8086
                           optimize for fast installation [default=yes]
Packit dd8086
  --disable-libtool-lock   avoid locking (might break parallel builds)
Packit dd8086
  --disable-joliet         don't include Joliet extension support (default
Packit dd8086
                           enabled)
Packit dd8086
  --disable-rpath          do not hardcode runtime library paths
Packit dd8086
  --enable-rock            include Rock-Ridge extension support (default
Packit dd8086
                           enabled)
Packit dd8086
  --enable-cddb            include CDDB lookups in cd_info (default enabled)
Packit dd8086
  --enable-vcd-info        include Video CD Info from libvcd
Packit dd8086
  --enable-maintainer-mode create documentation and manual packages.
Packit dd8086
                           For this you need texinfo and help2man installed
Packit dd8086
Packit dd8086
Optional Packages:
Packit dd8086
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
Packit dd8086
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
Packit dd8086
  --without-cd-drive      don't build program cd-drive (default with)
Packit dd8086
  --without-cd-info       don't build program cd-info (default with)
Packit dd8086
  --without-cd-paranoia   don't build program cd-paranoia and paranoia
Packit dd8086
                          libraries (default with)
Packit dd8086
  --without-cdda-player   don't build program cdda-player (default with)
Packit dd8086
  --with-cd-paranoia-name name to use as the cd-paranoia program name (default
Packit dd8086
                          cd-paranoia)
Packit dd8086
  --without-cd-read       don't build program cd-read (default with)
Packit dd8086
  --without-iso-info      don't build program iso-info (default with)
Packit dd8086
  --without-iso-read      don't build program iso-read (default with)
Packit dd8086
  --without-versioned-libs
Packit dd8086
                          build versioned library symbols (default enabled if
Packit dd8086
                          you have GNU ld)
Packit dd8086
  --with-pic              try to use only PIC/non-PIC objects [default=use
Packit dd8086
                          both]
Packit dd8086
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
Packit dd8086
  --with-gnu-ld           assume the C compiler uses GNU ld default=no
Packit dd8086
  --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
Packit dd8086
  --without-libiconv-prefix     don't search for libiconv in includedir and libdir
Packit dd8086
Packit dd8086
Some influential environment variables:
Packit dd8086
  CC          C compiler command
Packit dd8086
  CFLAGS      C compiler flags
Packit dd8086
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
Packit dd8086
              nonstandard directory <lib dir>
Packit dd8086
  LIBS        libraries to pass to the linker, e.g. -l<library>
Packit dd8086
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
Packit dd8086
              you have headers in a nonstandard directory <include dir>
Packit dd8086
  CXX         C++ compiler command
Packit dd8086
  CXXFLAGS    C++ compiler flags
Packit dd8086
  CPP         C preprocessor
Packit dd8086
  CXXCPP      C++ preprocessor
Packit dd8086
  PKG_CONFIG  path to pkg-config utility
Packit dd8086
  CDDB_CFLAGS C compiler flags for CDDB, overriding pkg-config
Packit dd8086
  CDDB_LIBS   linker flags for CDDB, overriding pkg-config
Packit dd8086
  VCDINFO_CFLAGS
Packit dd8086
              C compiler flags for VCDINFO, overriding pkg-config
Packit dd8086
  VCDINFO_LIBS
Packit dd8086
              linker flags for VCDINFO, overriding pkg-config