source: roaraudio/configure @ 420:4807efdf32ab

Last change on this file since 420:4807efdf32ab was 420:4807efdf32ab, checked in by phi, 16 years ago

typo

  • Property exe set to *
File size: 3.0 KB
Line 
1#!/bin/sh
2
3#set -x
4
5TF_C=testit.c
6TF_E=./testit
7CC=cc
8
9CCTF="$CC -o $TF_E $TF_C"
10
11test_lib () {
12 echo > $TF_C
13
14 echo -n "checking for $1... "
15 shift;
16
17 LIBS=''
18
19 while [ "$1" != '--' ]
20 do
21  LIBS="$LIBS -l$1"
22  shift;
23 done
24
25 shift;
26
27 while [ "$1" != '' ]
28 do
29  echo "#include <$1>" >> $TF_C
30  shift;
31 done
32
33 echo 'int main (void) { return 0; }' >> $TF_C
34
35 $CCTF $LIBS 2> /dev/null;
36
37 R=$?
38
39 if [ "$R" = '0' ]
40 then
41  echo 'yes'
42 else
43  echo 'no'
44 fi
45
46 return $R
47}
48
49exec 3> config.h
50
51cat >&3 << EOF
52//config.h:
53
54#ifndef _ROARAUDIO_CONFIG_H_
55#define _ROARAUDIO_CONFIG_H_
56
57EOF
58
59{
60 echo '/* uname: ' $(uname -a) '*/'
61 echo '/* Date : ' $(date)  '*/'
62 echo
63} >&3
64
65test_lib 'Math Library' m          -- math.h                         && echo '#define ROAR_HAVE_LIBM' >&3
66if test_lib 'realtime Library' rt -- sys/mman.h mqueue.h semaphore.h
67then
68 {
69  echo '#define ROAR_HAVE_LIBRT'
70  echo '#define ROAR_NEED_LIBRT'
71 } >&3
72fi
73
74echo >&3
75
76test_lib EsounD         esd        -- esd.h                              && echo '#define ROAR_HAVE_ESD' >&3
77test_lib libao          ao         -- ao/ao.h ao/plugin.h                && echo '#define ROAR_HAVE_LIBAO' >&3
78test_lib libvorbis      vorbis     -- vorbis/codec.h                     && echo '#define ROAR_HAVE_LIBVORBIS' >&3
79test_lib libvorbisfile  vorbisfile -- vorbis/vorbisfile.h                && echo '#define ROAR_HAVE_LIBVORBISFILE' >&3
80test_lib libspeex       speex      -- speex/speex.h speex/speex_stereo.h && echo '#define ROAR_HAVE_LIBSPEEX' >&3
81test_lib libcelt        celt       -- celt/celt.h celt/celt_header.h     && echo '#define ROAR_HAVE_LIBCELT' >&3
82test_lib liboggz        oggz       -- oggz/oggz.h                        && echo '#define ROAR_HAVE_LIBOGGZ' >&3
83test_lib libfishsound   fishsound  -- fishsound/fishsound.h              && echo '#define ROAR_HAVE_LIBFISHSOUND' >&3
84test_lib libsndfile     sndfile    -- sndfile.h                          && echo '#define ROAR_HAVE_LIBSNDFILE' >&3
85test_lib libpulse       pulse0     -- pulse/pulseaudio.h pulse/simple.h  && echo '#define ROAR_HAVE_LIBPULSE' >&3
86
87# add a better test here
88test_lib 'linux sendfile()'       -- sys/sendfile.h && echo '#define ROAR_HAVE_LINUX_SENDFILE' >&3
89
90
91echo -n 'checking for mlock()... '
92
93echo '#include <sys/mman.h>' > $TF_C
94echo 'int main (void) { mlock((void*)0, 0); return 0; }' >> $TF_C
95
96if $CCTF 2> /dev/null;
97then
98 echo '#define ROAR_HAVE_MLOCK' >&3
99 echo yes
100else
101 echo no
102fi
103
104echo -n 'checking for safe 32 bit integer overflow... '
105
106cat > $TF_C << EOF
107#include <stdio.h>
108#include <stdint.h>
109#define TYPE uint32_t
110#define MAX  ((TYPE)4294967295U)
111
112int main (void) {
113 TYPE a = MAX;
114
115 a += 2;
116
117 if ( a == 1 ) {
118  printf("#define ROAR_HAVE_SAFE_OVERFLOW\n");
119  return 0;
120 }
121
122 return 1;
123}
124EOF
125
126if $CCTF 2> /dev/null;
127then
128 $TF_E >&3
129 if [ "$?" = '0' ]
130 then
131  echo yes
132 else
133  echo no
134 fi
135else
136 echo 'no (can not compile!, no stdint.h?)'
137fi
138
139cat >&3 << EOF
140
141#endif
142
143//ll
144EOF
145
146rm -f $TF_C $TF_E
147
148mv config.h include/roaraudio/
149echo 'config.h created and moved into include/roaraudio/'
150
151#ll
Note: See TracBrowser for help on using the repository browser.