source: roaraudio/configure @ 359:5e41a971217a

Last change on this file since 359:5e41a971217a was 359:5e41a971217a, checked in by phi, 16 years ago

added some more libs to check and move config.h when done

  • Property exe set to *
File size: 2.6 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 EsounD        esd        -- esd.h                          && echo '#define ROAR_HAVE_ESD' >&3
66test_lib libao         ao         -- ao/ao.h ao/plugin.h            && echo '#define ROAR_HAVE_LIBAO' >&3
67test_lib libvorbis     vorbis     -- vorbis/codec.h                 && echo '#define ROAR_HAVE_LIBVORBIS' >&3
68test_lib libvorbisfile vorbisfile -- vorbis/vorbisfile.h            && echo '#define ROAR_HAVE_LIBVORBISFILE' >&3
69test_lib libspeex      speex      -- speex/speex.h                  && echo '#define ROAR_HAVE_LIBSPEEX' >&3
70test_lib libcelt       celt       -- celt/celt.h celt/celt_header.h && echo '#define ROAR_HAVE_LIBVORBISFILE' >&3
71test_lib liboggz       oggz       -- oggz/oggz.h                    && echo '#define ROAR_HAVE_LIBOGGZ' >&3
72test_lib libfishsound  fishsound  -- fishsound/fishsound.h          && echo '#define ROAR_HAVE_LIBFISHSOUND' >&3
73test_lib libsndfile    sndfile    -- sndfile.h                      && echo '#define ROAR_HAVE_LIBSNDFILE' >&3
74
75# add a better test here
76test_lib 'linux sendfile()'       -- sys/sendfile.h && echo '#define ROAR_HAVE_LINUX_SENDFILE' >&3
77
78
79echo -n 'checking for mlock()... '
80
81echo '#include <sys/mman.h>' > $TF_C
82echo 'int main (void) { mlock((void*)0, 0); return 0; }' >> $TF_C
83
84if $CCTF 2> /dev/null;
85then
86 echo '#define ROAR_HAVE_MLOCK' >&3
87 echo yes
88else
89 echo no
90fi
91
92echo -n 'checking for save 32 bit integer overflow... '
93
94cat > $TF_C << EOF
95#include <stdio.h>
96#include <stdint.h>
97#define TYPE uint32_t
98#define MAX  ((TYPE)4294967295U)
99
100int main (void) {
101 TYPE a = MAX;
102
103 a += 2;
104
105 if ( a == 1 ) {
106  printf("#define ROAR_HAVE_SAFE_OVERFLOW\n");
107  return 0;
108 }
109
110 return 1;
111}
112EOF
113
114if $CCTF 2> /dev/null;
115then
116 $TF_E >&3
117 if [ "$?" = '0' ]
118 then
119  echo yes
120 else
121  echo no
122 fi
123else
124 echo 'no (can not compile!, no stdint.h?)'
125fi
126
127cat >&3 << EOF
128
129#endif
130
131//ll
132EOF
133
134rm -f $TF_C $TF_E
135
136mv config.h include/roaraudio/
137echo 'config.h created and moved into include/roaraudio/'
138
139#ll
Note: See TracBrowser for help on using the repository browser.