configure.ac 6.61 KB
Newer Older
1
dnl --------------------------------------------------------------
2
dnl Configure.ac for libdvdread
3 4 5 6 7
dnl --------------------------------------------------------------

dnl --------------------------------------------------------------
dnl Require autoconf version 2.53
dnl --------------------------------------------------------------
8
AC_PREREQ([2.53])
9 10

dnl --------------------------------------------------------------
11 12 13
dnl Making releases: dvdread_sub += 1; change DVDREAD_LT_* accordingly
dnl
dnl These are defined in m4 so they can be passed to AC_INIT
14
dnl --------------------------------------------------------------
15 16
m4_define([dvdread_major], [4])
m4_define([dvdread_minor], [1])
17
m4_define([dvdread_sub],   [3])
18 19 20
m4_define([dvdread_pre],   [])

AC_INIT([libdvdread], [dvdread_major.dvdread_minor.dvdread_sub[]dvdread_pre])
21
AC_CONFIG_SRCDIR([src/dvdread/dvd_reader.h])
22
AM_INIT_AUTOMAKE([1.6])
23 24 25 26 27 28 29 30 31

dnl create a config.h file (Automake will add -DHAVE_CONFIG_H)
AC_CONFIG_HEADERS([config.h])
AC_CANONICAL_HOST

DVDREAD_MAJOR="dvdread_major"
DVDREAD_MINOR="dvdread_minor"
DVDREAD_SUB="dvdread_sub"
DVDREAD_PRE="dvdread_pre"
32

33 34 35
AC_SUBST(DVDREAD_MAJOR)
AC_SUBST(DVDREAD_MINOR)
AC_SUBST(DVDREAD_SUB)
36

37
dnl The libtool version numbers (DVDREAD_LT_*); Don't even think about faking this!
38
dnl
39 40 41
dnl immediately before every release do:
dnl ===================================
dnl if (the interface is totally unchanged from previous release)
42
dnl    DVDREAD_LT_REVISION ++;
43
dnl else { /* interfaces have been added, removed or changed */
44 45
dnl    DVDREAD_LT_REVISION = 0;
dnl    DVDREAD_LT_CURRENT ++;
46 47 48 49 50
dnl    if (any interfaces have been _added_ since last release)
dnl       AGE ++;
dnl    if (any interfaces have been _removed_ or _incompatibly changed_)
dnl       AGE = 0;
dnl }
51
dnl
52
dnl If you want to know more about what you are doing, here are some details:
53 54
dnl  * DVDREAD_LT_CURRENT is the current API version
dnl  * DVDREAD_LT_REVISION is an internal revision number which is increased when the API
55
dnl    itself did not change
56
dnl  * DVDREAD_LT_AGE is the number of previous API versions still supported by this library
57 58 59
dnl  * libtool has its own numbering scheme, because local library numbering schemes
dnl    are platform dependent
dnl  * in Linux, the library will be named
60
dnl    libname.so.(DVDREAD_LT_CURRENT - DVDREAD_LT_AGE).DVDREAD_LT_AGE.DVDREAD_LT_REVISION
61

62 63
DVDREAD_LT_CURRENT=5
DVDREAD_LT_AGE=1
Nico Sabbi's avatar
Nico Sabbi committed
64
DVDREAD_LT_REVISION=2
65

66 67 68
AC_SUBST(DVDREAD_LT_CURRENT)
AC_SUBST(DVDREAD_LT_AGE)
AC_SUBST(DVDREAD_LT_REVISION)
69 70 71 72

dnl --------------------------------------------------------------
dnl Make possible to build for another arch.
dnl --------------------------------------------------------------
73 74 75 76
if test x$DVDREAD_BUILD != "x"; then
  AC_MSG_RESULT(*** build forced to $DVDREAD_BUILD ***)
  build=$DVDREAD_BUILD
  host=$DVDREAD_BUILD
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
else
  check_athlon=yes
fi

dnl --------------------------------------------------------------
dnl Checks for programs.
dnl --------------------------------------------------------------
dnl Save CFLAGS, AC_ISC_POSIX set some unwanted default CFLAGS
saved_CFLAGS="$CFLAGS"
AC_ISC_POSIX
CFLAGS="$saved_CFLAGS"
AC_PROG_CC
AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_PROG_LN_S

dnl --------------------------------------------------------------
dnl Libtool
dnl --------------------------------------------------------------
96 97
dnl LT_PREREQ only available in libtool-2.2+
dnl LT_PREREQ([1.4.0])
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
AC_LIBTOOL_DLOPEN
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
if ${CONFIG_SHELL} ./libtool --features | grep "enable static" >/dev/null; then
  STATIC="-static"
else
  STATIC=
fi
AC_SUBST(STATIC)

dnl --------------------------------------------------------------
dnl Checks for header files.
dnl --------------------------------------------------------------
AC_HEADER_STDC
AC_CHECK_HEADER(unistd.h)
AC_CHECK_HEADER(string.h)

dnl --------------------------------------------------------------
dnl Checks for typedefs, structures, and compiler characteristics.
dnl --------------------------------------------------------------
AC_C_CONST
AC_C_INLINE
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
dnl AC_CHECK_TYPES([ptrdiff_t])
AC_C_BIGENDIAN

126 127 128 129 130 131 132 133 134 135 136
dnl -------------------------------------------------------------
dnl Check for basic *nix fonction that we may emulate on windows.
dnl -------------------------------------------------------------
case $host in
  *mingw32* | *cygwin*)
    AC_CHECK_FUNCS(gettimeofday)
    ;;
  *)
    ;;
esac

137 138 139 140 141 142 143 144 145 146 147
dnl ---------------------------------------------
dnl dynamic linker
dnl ---------------------------------------------
case $host in
  *mingw32*)
    CFLAGS="-idirafter \$(top_srcdir)/msvc/include $CFLAGS"
    LDFLAGS="-no-undefined $LDFLAGS"
    ;;
  *cygwin*)
    LDFLAGS="-no-undefined $LDFLAGS"
    ;;
KO Myung-Hun's avatar
KO Myung-Hun committed
148 149 150
  *os2*)
    LDFLAGS="-no-undefined -Zbin-files $LDFLAGS"
    ;;
151 152
  *)
    AC_CHECK_LIB(c, dlopen,
153 154 155 156
                 DYNAMIC_LD_LIBS="",
                 AC_CHECK_LIB(dl, dlopen,
                              DYNAMIC_LD_LIBS="-ldl",
                              AC_MSG_ERROR(dynamic linker needed)))
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
    AC_SUBST(DYNAMIC_LD_LIBS)
    ;;
esac

dnl ---------------------------------------------
dnl cflags
dnl ---------------------------------------------
dnl Common cflags for all platforms
CFLAGS="-O3 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE $CFLAGS"
DEBUG_CFLAGS="-g -DDEBUG $CFLAGS"

AC_SUBST(DEBUG_CFLAGS)

dnl ---------------------------------------------
dnl Get where .m4 should be installed.
dnl ---------------------------------------------
case "`id`" in
  uid=0\(* )
    AC_MSG_CHECKING(for aclocal directory)
    if (aclocal --version) < /dev/null > /dev/null 2>&1; then
      ACLOCAL_DIR="`eval $ACLOCAL --print-ac-dir`"
      AC_MSG_RESULT($ACLOCAL_DIR)
    else
      ACLOCAL_DIR="/usr/local/share/aclocal"
      AC_MSG_RESULT(none - will be installed in $ACLOCAL_DIR)
    fi
    escapedprefix="`echo $prefix | sed -e 's/\\//\\\\\//g'`"
    ACLOCAL_DIR="`echo $ACLOCAL_DIR|sed -e 's/^'$escapedprefix/'\${prefix}'/`"
    AC_SUBST(ACLOCAL_DIR)
    ;;
esac
AM_CONDITIONAL(INSTALL_M4, test x"$ACLOCAL_DIR" != "x")

dnl ---------------------------------------------
dnl Check for doxygen (dynamic documentation generator)
dnl ---------------------------------------------
AC_CHECK_PROG(DOXYGEN, doxygen, doxygen, no)

dnl ---------------------------------------------
dnl Some include paths ( !!! DO NOT REMOVE !!! )
dnl ---------------------------------------------
198
INCLUDES='-I$(top_srcdir) $(DVDREAD_CFLAGS)'
199 200 201 202 203 204
AC_SUBST(INCLUDES)

dnl ---------------------------------------------
dnl Output configuration files
dnl ---------------------------------------------
AC_OUTPUT([
205
Makefile
206 207
src/Makefile
misc/Makefile
208
misc/dvdread-config
209
misc/dvdread.pc
210
misc/libdvdread.spec
211 212 213
misc/relchk.sh
m4/Makefile
])