]> git.donarmstrong.com Git - lilypond.git/blob - configure.in
release: 0.0.78
[lilypond.git] / configure.in
1 dnl -*-shell-script-*-
2 dnl  Process this file with autoconf to produce a configure script. 
3
4 dnl should cache result.
5 dnl should  look in $prefix first.
6
7 AC_DEFUN(AC_LILY_WARN, [
8     AC_MSG_WARN($1)
9     warn_b=yes
10 ])
11 AC_DEFUN(AC_TEX_PREFIX, [
12     
13
14     AC_MSG_CHECKING(TeX/MF root dir directory)    
15
16     find_root_prefix="$prefix"
17     
18
19     test "x$find_root_prefix" = xNONE && find_root_prefix="$ac_default_prefix"
20     find_texpostfix="";
21     for postfix in "/lib/tex/" "/lib/texmf" "/lib" "/tex" "/texmf"; do
22         find_texprefix="$find_root_prefix$postfix"
23         if test -d $find_texprefix; then
24             find_texpostfix=$postfix
25             break;
26         fi
27     done
28     
29     if test "x$find_texpostfix" = x; then
30         find_texpostfix='/lib/texmf/tex'
31         AC_LILY_WARN(Cannot determine the TeX-directory. Please use --enable-tex-prefix)
32     fi
33
34     find_texprefix="$find_root_prefix/$find_texpostfix"
35
36     # only assign if variablename not empty
37     if test x != "x$1"; then
38         $1='${prefix}'/"$find_texpostfix"
39     fi
40     AC_MSG_RESULT($find_texprefix)
41
42 ])
43  
44
45 # find a directory inside a prefix, 
46 # $1 the prefix (expanded version)
47 # $2 variable to assign
48 # $3 the directory name 
49 # $4 description
50 AC_DEFUN(AC_FIND_DIR_IN_PREFIX, [
51     
52     AC_MSG_CHECKING($4 directory)    
53     find_dirdir=`(cd $1; 
54       $FIND ./ -type d -a -name $3 -print |sort|head -1|sed 's#^\./##')`
55     
56
57     if test "x$find_dirdir" = x; then
58        find_dirdir="/$3";
59        AC_LILY_WARN(Cannot determine $4 subdirectory. Please set from command-line)
60         true
61     fi
62     $2=$find_dirdir
63     AC_MSG_RESULT($1/$find_dirdir)
64 ])
65
66 AC_DEFUN(AC_TEX_SUBDIR, [
67 dnl    AC_REQUIRE([AC_TEX_PREFIX])
68     AC_FIND_DIR_IN_PREFIX($find_texprefix, $1, tex,TeX input)
69     $1="$TEXPREFIX/$$1"
70 ])
71
72 AC_DEFUN(AC_MF_SUBDIR, [
73 dnl     AC_REQUIRE([AC_TEX_PREFIX])
74     AC_FIND_DIR_IN_PREFIX($find_texprefix, $1, source, MF input)
75     $1="$TEXPREFIX/$$1"
76 ])
77    
78 AC_INIT(flower/choleski.cc)
79
80
81 # if given here, these vars are initted at the checking point.
82 if test x$host = xNONE; then
83     buildprefix=.
84 else
85     buildprefix="$host-build-dir"
86     mkdir $buildprefix;
87     for a in `find -type d -and -not -name '*-build-dir'`; do
88         mkdir $buildprefix/$a;
89     done
90 fi
91 printing_b=no
92 checking_b=yes
93 debug_b=yes
94 optimise_b=no
95 profile_b=no
96 warn_b=no    
97 AC_LANG_CPLUSPLUS
98
99 AC_ARG_ENABLE(printing,
100     [  enable-printing         turn on debug printing],
101     [printing_b=$enableval])
102
103         
104 AC_ARG_ENABLE(checking,
105     [  enable-checking        set runtime checks (assert calls). Default: on],
106     [checking_b=$enableval] )
107
108 AC_ARG_ENABLE(debugging,
109     [  enable-debugging       set debug info. Default: on],
110     [debug_b=$enableval])
111
112 AC_ARG_ENABLE(optimise,
113     [  enable-optimise         use maximal speed optimisations. Default: off],
114     [optimise_b=$enableval])
115     
116 AC_ARG_ENABLE(profiling, 
117     [  enable-profiling        compile with gprof support. Default: off],
118     [profile_b=$enableval])
119     
120 AC_ARG_ENABLE(mingw-prefix,
121     [  mingw-prefix=DIR        set the mingw32 directory (standalone windows32 exes)],
122     [MINGWPREFIX=$enableval],
123     [MINGWPREFIX=no])
124     
125 AC_ARG_ENABLE(tex-prefix,
126     [  tex-prefix=DIR          set the tex-directory to find TeX subdirectories. (default: PREFIX)],
127     [TEXPREFIX=$enableval],
128     [TEXPREFIX=auto] )
129     
130 AC_ARG_ENABLE(tex-dir,
131     [  tex-dir=DIR             set the directory to put LilyPond TeX files in. ],
132     [TEXDIR=$enableval],
133     [TEXDIR=auto] )
134
135 AC_ARG_ENABLE(mf-dir,
136     [  mf-dir=DIR              set the directory to put LilyPond MetaFont files in.],
137     [MFDIR=$enableval],
138     [MFDIR=auto] )
139
140 if test $profile_b = yes; then
141     EXTRA_LIBES="-pg"
142     DEFINES="$DEFINES -pg"
143 fi
144     
145 if test $printing_b = no; then
146     DEFINES="$DEFINES -DNPRINT=1"
147 fi
148     
149 if test $debug_b = yes; then    
150     DEFINES="$DEFINES -g"
151 fi
152 if test $checking_b = no; then
153     DEFINES="$DEFINES -DNDEBUG=1"
154 fi
155
156 # however, C++ support in mingw32 v 0.1.4 is still flaky
157 if test x$MINGWPREFIX != xno; then 
158     ICFLAGS="-I$MINGWPREFIX/include"
159     ILDFLAGS="-$MINGWPREFIX/lib"
160 fi
161
162 if test $optimise_b = yes; then
163     DEFINES="$DEFINES -O2 -DSTRING_UTILS_INLINED"
164 fi
165
166 dnl COMPILEINFO="$HOST $host $TARGET $target"
167 AUTOHEADER="This file was automatically generated by configure"
168 CPPFLAGS=${CPPFLAGS:-""}        # we don't want -g -O junk
169 CXXFLAGS=${CXXFLAGS:-""}        # we don't want -g -O junk
170
171 AC_PROG_CXX
172 AC_PROG_RANLIB
173 AC_PROG_INSTALL
174 AC_CHECK_PROGS(TAR, tar, error)
175 AC_CHECK_PROGS(FIND, find, error)
176
177 dnl should check out -print
178 if test FIND = error; then
179    AC_LILY_WARN(Couldn't find \`find'.  Please use --enable-tex-dir)
180 fi
181     
182 AC_SUBST(CXXFLAGS)
183 AC_SUBST(CPPFLAGS)
184 AC_SUBST(CXX)
185 AC_SUBST(ICFLAGS)
186 AC_SUBST(ILDFLAGS)
187 AC_SUBST(DEFINES)
188 AC_SUBST(COMPILEINFO)
189 AC_SUBST(AUTOHEADER)
190 AC_SUBST(BISON)
191 AC_SUBST(FLEX)
192 AC_SUBST(PERL)
193 AC_SUBST(TEXPREFIX)
194 AC_SUBST(TEXDIR)
195 AC_SUBST(MFDIR)
196 AC_SUBST(EXTRA_LIBES)
197
198 AC_CHECK_PROGS(BISON, bison, error)
199 AC_CHECK_PROGS(FLEX, flex, error)
200 AC_CHECK_PROGS(MAKE, make, error)
201 AC_PATH_PROG(PERL, perl, error)
202 AC_CHECK_PROGS(PODMAN, pod2man, error)
203
204
205 if test "x$TEXPREFIX" = xauto ; then
206     AC_TEX_PREFIX(TEXPREFIX)
207 else
208  find_texprefix=$TEXPREFIX
209 fi
210     
211 if test "x$TEXDIR" = xauto ; then
212     AC_TEX_SUBDIR(TEXDIR)
213 fi
214
215 dnl if test "x$MFDIR" = xauto; then
216 dnl     AC_MF_SUBDIR(MFDIR)
217 dnl fi
218     
219 if test $MAKE = "error" 
220 then
221         AC_MSG_ERROR(Please install GNU make)
222 else
223         $MAKE -v| grep GNU > /dev/null
224         if test "$?" = 1
225         then
226             AC_LILY_WARN(Please install *GNU* make) 
227     fi 
228 fi 
229     
230 if test $BISON = "error" 
231 then
232         AC_LILY_WARN(can't find bison. Please install Bison (1.25 or better))
233 else
234     bison_version=`$BISON --version| sed 's/^.*version 1.//g' `
235     if test $bison_version -lt 25; then
236         AC_LILY_WARN(Your bison is too old (1.$bison_version). Please install 1.25)
237     fi  
238 fi
239
240 if test $PERL = "error" 
241 then
242         AC_LILY_WARN(can't find perl. You should install Perl (version 5 or better))
243         PERL=/usr/bin/perl
244 fi
245
246 if test $PODMAN = "error" 
247 then
248         AC_LILY_WARN(can't find pod. You should install Perl (version 5 or better))
249 fi
250
251 if test $FLEX = "error" 
252 then
253         AC_LILY_WARN(can't find flex. Please install Flex (2.5 or better))
254 fi
255
256 if $CXX --version | grep '2\.7' > /dev/null
257 then
258         true
259 else
260         AC_LILY_WARN(can't find g++ 2.7)
261 fi
262
263 AC_CHECK_HEADER(FlexLexer.h, true,
264         AC_LILY_WARN(can't find flex header. Please install Flex headers correctly))
265
266 AC_CONFIG_SUBDIRS(flower)
267 AC_OUTPUT($buildprefix/make/out/Configure_variables.make:make/Configure_variables.make.in)
268
269
270
271 dnl URG!!!!!!
272 eval "DIR_DATADIR=$datadir"
273 DIR_DATADIR="$DIR_DATADIR/lilypond"
274 AC_MSG_CHECKING
275
276 cat << EOF > $buildprefix/lib/out/config.hh
277
278 /* automatically generated by configure */
279 /* include this file only once! */
280
281 #define  DIR_DATADIR "$DIR_DATADIR"
282
283 EOF
284
285 CXX="$ac_cv_prog_CXX" bin/make-version >> $buildprefix/lib/out/config.hh
286
287 touch $buildprefix/make/out/Site.make
288
289 # ugr
290 (cd mi2mu; CXX="$ac_cv_prog_CXX" ../bin/make-version > ../$buildprefix/mi2mu/out/version.hh
291
292 )
293 (cd lily; CXX="$ac_cv_prog_CXX" ../bin/make-version > ../$buildprefix/lily/out/version.hh
294 )
295
296 echo '# WARNING : Automatically generated from make/Toplevel.make.in' \
297     | cat - make/Toplevel.make.in > Makefile
298
299
300 cat << END
301 For making everything, do:
302
303     make                # GNU make
304
305 or if you used --host=SunUltraWitteReus
306
307     make buildprefix=SunUltraWitteReus-build-dir
308     
309 If you want to make site-wide extensions to the makefiles, please use
310
311     make/out/Site.make
312     
313 END
314
315 if test $warn_b = "yes" ; then
316 cat <<EOF
317     
318     *******************************
319     Warning: configure found errors. 
320     Please resolve these and rerun configure
321     before sending any bugreports.
322     *******************************
323     
324 EOF
325 fi
326