root/juggler/branches/2.2/modules/sonix/configure.ac

Revision 20711, 13.5 kB (checked in by patrick, 1 year ago)

More version number updates. These a minor (and probably unnoticed by everyone
but me), but I can't let them slip by.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 # ***************** <SNX heading BEGIN do not edit this line> *****************
2 #
3 # sonix
4 #
5 # Original Authors:
6 #   Kevin Meinert
7 #
8 # ****************** <SNX heading END do not edit this line> ******************
9
10 # ************** <auto-copyright.pl BEGIN do not edit this line> **************
11 #
12 # VR Juggler is (C) Copyright 1998-2007 by Iowa State University
13 #
14 # Original Authors:
15 #   Allen Bierbaum, Christopher Just,
16 #   Patrick Hartling, Kevin Meinert,
17 #   Carolina Cruz-Neira, Albert Baker
18 #
19 # This library is free software; you can redistribute it and/or
20 # modify it under the terms of the GNU Library General Public
21 # License as published by the Free Software Foundation; either
22 # version 2 of the License, or (at your option) any later version.
23 #
24 # This library is distributed in the hope that it will be useful,
25 # but WITHOUT ANY WARRANTY; without even the implied warranty of
26 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
27 # Library General Public License for more details.
28 #
29 # You should have received a copy of the GNU Library General Public
30 # License along with this library; if not, write to the
31 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
32 # Boston, MA 02111-1307, USA.
33 #
34 # *************** <auto-copyright.pl END do not edit this line> ***************
35
36 AC_INIT([Sonix], [1.2], [vrjuggler-devel@lists.sourceforge.net])
37 AC_CONFIG_HEADERS([snx/snxDefines.h])
38 AC_PREREQ([2.53])
39 AC_COPYRIGHT([VR Juggler is (C) Copyright 1998-2007 by Iowa State University])
40 AC_CONFIG_SRCDIR([snx/snxConfig.h])
41 AC_REVISION([$Revision$])
42 AC_CONFIG_AUX_DIR([../../share/config])
43 DPP_PREREQ([2.1.2])
44 DPP_INIT
45
46 # make the nice reconfig script.
47 DPP_GEN_RECONFIG
48
49 DPP_STD_CPP(yes)
50 # -----------------------------------------------------------------------------
51 # Command-line arguments (--enable-option, --with-pkg=package_name).
52 # -----------------------------------------------------------------------------
53
54 # ------------------------------------------------------ #
55 # --enable-feature[=arg] and --disable-feature arguments #
56 # ------------------------------------------------------ #
57
58 # Enable versioning by default
59 AC_ARG_ENABLE([versioning],
60               [  --disable-versioning    Disable all versioning capabilities],
61               [ENABLE_VERSIONING="$enableval"], [ENABLE_VERSIONING='yes'])
62
63 # -------------------------------------------- #
64 # --with-pkg[=arg] and --without-pkg arguments #
65 # -------------------------------------------- #
66
67 # Override the C compiler that configure would otherwise find itself.
68 AC_ARG_WITH(cc, [  --with-cc=<PATH>        Alternate C compiler],
69             [_alt_cc="$withval"], [_alt_cc='none'])
70
71 # Override the C++ compiler that configure would otherwise find itself.
72 AC_ARG_WITH(cxx, [  --with-cxx=<PATH>       Alternate C++ compiler],
73             [_alt_cxx="$withval"], [_alt_cxx='none'])
74
75
76 # Define the binary format.
77 DPP_ABI_SETUP
78
79 # Allow forcing the use of GCC as the compiler.
80 DPP_WITH_GCC(no)
81
82 # -----------------------------------------------------------------------------
83 # System-dependent stuff.
84 # -----------------------------------------------------------------------------
85 DPP_WIN32_SETUP
86 DPP_SYSTEM_SETUP
87
88 # -----------------------------------------------------------------------------
89 # Path setup.
90 # -----------------------------------------------------------------------------
91
92 # $srcdir is the root directory of the SNX source tree.  To get a value
93 # for $VPRROOT_ABS, we cd there and save the value of running pwd.  Then
94 # return to the directory where configure is being run ($topdir).
95 cd "$srcdir"
96 SNXROOT_ABS=`pwd`
97
98 cd "$SNXROOT_ABS/../.."
99 UNIX_JUGGLERROOT_ABS=`pwd`
100 cd "$topdir"
101
102 if test "x$CYGPATH" != "xno" ; then
103    JUGGLERROOT_ABS=`cygpath -w "$UNIX_JUGGLERROOT_ABS" | sed -e 's/\\\\/\\//g'`
104 else
105    JUGGLERROOT_ABS="$UNIX_JUGGLERROOT_ABS"
106 fi
107
108 # -----------------------------------------------------------------------------
109 # Checks for programs.
110 # -----------------------------------------------------------------------------
111 VJ_COMPILER_SETUP
112 VJ_PROG_CC_PROF_FLAG(yes)
113 VJ_PROG_CXX_PROF_FLAG(yes)
114
115 # Ensure that the C++ compiler we've found is capable of compiling the newer
116 # newer C++ features that we need.
117 DPP_CXX_NAMESPACE([AC_MSG_ERROR([*** Sonix requires C++ namespace support ***])])
118 DPP_CXX_TEMPLATES([AC_MSG_ERROR([*** Sonix requires C++ template support ***])])
119 DPP_CXX_INLINE([AC_MSG_ERROR([*** Sonix requires C++ inline support ***])])
120
121 # Ensure that a version of Perl greater than or equal to 5.004 is available.
122 DPP_PERL_VER(5.004, , , [AC_MSG_ERROR([*** Perl is required ***])])
123 AC_CHECK_PROG([MTREE_CMD], [mtree], [mtree], [\$(PERL) \$(scriptdir)/mtree.pl])
124 DPP_BASIC_PROGS([$PLATFORM], [$OS_TYPE])
125 DPP_PROG_INSTALL
126 VJ_LINKER_SETUP
127
128 # -----------------------------------------------------------------------------
129 # Checks for libraries.
130 # -----------------------------------------------------------------------------
131 MIN_VPR_VERSION='1.1.49'
132 VPR_PATH([$MIN_VPR_VERSION], , [AC_MSG_ERROR([*** VPR required for Sonix ***])])
133
134 MIN_GMTL_VERSION='0.4.11'
135 GMTL_PATH([$MIN_GMTL_VERSION], ,
136           [AC_MSG_ERROR([*** GMTL required for Sonix ***])])
137
138 DPP_CHECK_DYNLOAD_LIB
139 DPP_HAVE_CPPUNIT([1.9.10])
140
141 # -----------------------------------------------------------------------------
142 # Miscellaneous checks.
143 # -----------------------------------------------------------------------------
144
145 # Macros:
146 #     DPP_INSTALLER - Set up the installer configuration.
147 # Variables defined:
148 #     OWNER_NAME - The owner of everything installed.
149 #     GROUP_NAME - The group of everything installed.
150 #     FILE_PERMS - The UNIX-style octal permissions of normal files.
151 #     EXEC_PERMS - The UNIX-style octal permissions of executable files.
152 #     DIR_PERMS  - The UNIX-style octal permissions of directories.
153 DPP_INSTALLER(vrjuggler, 0644, 0755, 0755)
154
155 # -----------------------------------------------------------------------------
156 # Do Makefile substitutions.
157 # -----------------------------------------------------------------------------
158 VJ_VERSION_GROK(VERSION)
159
160 # Set the form of the version number used for versioned directory and file
161 # naming. Unstable builds use all three version numbers; stable builds use
162 # only the major and minor version numbers.
163 if test "x$ENABLE_VERSIONING" = "xyes" ; then
164    VERSION_DOT="$MAJOR_VERSION.$MINOR_VERSION"
165    VERSION_UNDERSCORE="${MAJOR_VERSION}_${MINOR_VERSION}"
166
167    HEADER_VERSION="sonix-$VERSION_DOT"
168    CLOSE_HEADER_VERSION='..'
169    LIBRARY_VERSION="-$VERSION_UNDERSCORE"
170    DATA_VERSION="sonix-$VERSION_DOT"
171    PLUGIN_VERSION="sonix-$VERSION_DOT"
172
173    AC_DEFINE([SNX_USE_VERSIONING], ,
174              [Define if full package versioning capabilities are enabled])
175    AC_DEFINE_UNQUOTED([SNX_VERSION_DOT], ["$VERSION_DOT"],
176                       [Sonix version string])
177
178 # If versioning is disabled, then none of the version variables need to be
179 # set except for $DATA_VERSION and $PLUGIN_VERSION. Their use is different
180 # than the others. The important thing to note is that the directory name is
181 # unversioned in this case.
182 else
183    DATA_VERSION="sonix"
184    PLUGIN_VERSION="sonix"
185 fi
186
187
188 CXXFLAGS="$CXXFLAGS $CXX_VISIBILITY_FLAGS $VPR_CXXFLAGS $GMTL_INCLUDES"
189 BASE_APP_LINK_FLAGS="$STDFLAGS $BASE_APP_LINK_FLAGS"
190 DEPEND_FLAGS="$VPR_CXXFLAGS $GMTL_INCLUDES"
191 snx_cxxflags="$STDFLAGS"
192
193 if test "x$PLATFORM" = "xIRIX" -a "x$USE_GCC" != "xyes" ; then
194 #   CFLAGS="$CFLAGS -woff 1685,515,608,658,799,803,852,1048,1233,1499"
195    CXXFLAGS="$CXXFLAGS -w2"
196    BASE_APP_LINK_FLAGS="$BASE_APP_LINK_FLAGS -J4 -all"
197 elif test "x$PLATFORM" = "xDarwin" ; then
198    changequote(<<, >>)
199    vpr_gcc_major=`echo $dpp_gcc_ver | sed -e 's/^\([0-9]*\)\..*/\1/'`
200    changequote([, ])
201
202    # GCC 4.0 in Darwin removed -fexport-coalesced.
203    if test $vpr_gcc_major -lt 4 ; then
204       CFLAGS_DYNLIB="$CFLAGS_DYNLIB -fexport-coalesced"
205       CXXFLAGS_DYNLIB="$CXXFLAGS_DYNLIB -fexport-coalesced"
206    fi
207
208    BASE_APP_LINK_FLAGS="$BASE_APP_LINK_FLAGS -Wl,-bind_at_load"
209 elif test "x$OS_TYPE" = "xWin32" -a "x$USE_GCC" != "xyes" ; then
210    vc_cflags='/QIfdiv /QI0f'
211    vc_cxxflags='/GR /GX /EHc /QIfdiv /QI0f'
212    CFLAGS="$CFLAGS $vc_cflags"
213    CXXFLAGS="$CXXFLAGS $vc_cxxflags"
214    BASE_APP_LINK_FLAGS="$BASE_APP_LINK_FLAGS /nologo /incremental:no"
215    DBG_FLAGS="$DBG_FLAGS /MDd"
216    OPT_FLAGS="$OPT_FLAGS /MD"
217    snx_cxxflags="$vc_cxxflags $snx_cxxflags"
218 fi
219
220 # For makedepend(1) to work properly on HP-UX with aCC, we have to include
221 # these extra paths.
222 if test "x$PLATFORM" = "xHP" -a "x$USE_GCC" != "xyes" ; then
223    _aCC_ROOT="/opt/aCC"
224    DEPEND_EXTRAS="$DEPEND_EXTRAS -I${_aCC_ROOT} -I${_aCC_ROOT}/include -I${_aCC_ROOT}/include/iostream"
225 elif test "x$OS_TYPE" = "xWin32" ; then
226    DEPEND_EXTRAS="$DEPEND_EXTRAS -D__cplusplus"
227 fi
228
229 # Define the base path to the source directory using $SNXROOT_ABS as an
230 # alternative to using $srcdir.
231 UNIX_SNXROOT_ABS="$SNXROOT_ABS"
232
233 # $APP_EXTRA_LIBS must list all the libraries need to link a Sonix-based
234 # application.
235 if test "x$OS_TYPE" = "xWin32" ; then
236    APP_EXTRA_LIBS="$LDFLAGS $VPR_LIBS $LIBS $VPR_EXTRA_LIBS"
237    APP_EXTRA_PROF_LIBS="$APP_EXTRA_LIBS"
238 else
239    APP_EXTRA_LIBS="$LDFLAGS $VPR_LIBS $LIBS $VPR_EXTRA_LIBS"
240    APP_EXTRA_PROF_LIBS="$LDFLAGS $VPR_PROF_LIBS $LIBS $VPR_EXTRA_LIBS"
241 fi
242
243 snx_lib_name="sonix$LIBRARY_VERSION"
244 snx_prof_lib_name="sonix_p$LIBRARY_VERSION"
245
246 # Put together the basic information needed to compile Sonix applications.
247 VJ_APP_COMPILER([$CC], [$CFLAGS], [$CXX], [$CXXFLAGS], [$DBG_FLAGS],
248                 [$OPT_FLAGS], [SNX_BASE_DIR], [$DEFS], [$INCLUDES],
249                 [${_EXTRA_FLAGS}], [$HEADER_VERSION])
250 VJ_APP_LINKER([$CXX], [$BASE_APP_LINK_FLAGS], [$LDOPTS_DBG], [$LDOPTS_OPT],
251               [SNX_BASE_DIR], [$snx_lib_name], [$APP_EXTRA_LIBS])
252
253 APP_BASE_DIR='$(topdir)/instlinks'
254 APP_BASE_DIR_INST='$(SNX_BASE_DIR)'
255
256 DYLIB_DEPS="$APP_EXTRA_LIBS"
257 DYLIB_PROF_DEPS="$APP_EXTRA_PROF_LIBS"
258
259 VJ_STRIP_DUPLICATE_ARGS([CXXFLAGS], [$CXXFLAGS])
260 VJ_STRIP_DUPLICATE_ARGS([DEPEND_FLAGS], [$DEPEND_FLAGS])
261 #VJ_STRIP_DUPLICATE_ARGS_REVERSE([DYLIB_DEPS], [$DYLIB_DEPS])
262 #VJ_STRIP_DUPLICATE_ARGS_REVERSE([DYLIB_PROF_DEPS], [$DYLIB_PROF_DEPS])
263
264 VJ_BUILD_LIB_FILE_LIST([$DYLIB_DEPS], [DYLIB_DEP_FILES])
265 VJ_BUILD_LIB_FILE_LIST([$DYLIB_PROF_DEPS], [DYLIB_PROF_DEP_FILES])
266
267 # Translate paths from UNIX-style to Win32.
268 if test "x$OS_TYPE" = "xWin32" ; then
269    SNXROOT_ABS=`dospath -p "$SNXROOT_ABS"`
270    JUGGLERROOT_ABS=`dospath -p "$JUGGLERROOT_ABS"`
271
272    if test "x$DEPEND_EXTRAS" != "x" ; then
273       DEPEND_EXTRAS=`dospath "$DEPEND_EXTRAS"`
274    fi
275
276    if test "x$INCLUDES" != "x" ; then
277       INCLUDES=`dospath "$INCLUDES"`
278    fi
279
280    if test "x$LIBS" != "x" ; then
281       LIBS=`dospath "$LIBS"`
282    fi
283
284    LN_S='cp -r'
285    RM_LN='rm -rf'
286    MTREE_CMD=`dospath "$MTREE_CMD"`
287
288 #   APP_EXTRA_LIBS=`dospath "$APP_EXTRA_LIBS"`
289     APP_EXTRA_LIBS_BASIC=`dospath "$APP_EXTRA_LIBS_BASIC"`
290 else
291    RM_LN='rm -f'
292    SNXROOT_ABS="$SNXROOT_ABS"
293    JUGGLERROOT_ABS="$JUGGLERROOT_ABS"
294 fi
295
296 # Set up some sed expressions that will help separate the share directory from
297 # the full installation prefix.
298 if test "x$prefix" = "xNONE" ; then
299    _prefix_exp="s|^$ac_default_prefix/||"
300 else
301    _prefix_exp="s|^$prefix/||"
302 fi
303
304 # In Autoconf 2.60, datadir has been renamed to datarootdir.
305 if test "x$datarootdir" != "x" ; then
306    data_var="$datarootdir"
307 else
308    data_var="$datadir"
309 fi
310
311 # Make a best-effort attempt to extract the actual share directory from the
312 # full installation prefix.  This is not foolproof, but it will work in almost
313 # all cases.  A person would have to be doing something malicious or foolish
314 # to make it break.
315 data_subdir=`echo "$data_var" | sed -e 's|^${prefix}/||' -e "${_prefix_exp}"`
316 SNX_SHARE_DIR="$data_subdir/$DATA_VERSION"
317
318 # Information needed to generate sonix.fpc.
319 if test "x$GNU_LD" = "xyes" ; then
320    static_begin="-Wl,-Bstatic"
321    static_end="-Wl,-Bdynamic"
322 else
323    static_begin="-B static"
324    static_end="-B dynamic"
325 fi
326
327 snx_ldflags="-L\$prefix/lib\$LIBBITSUF"
328 snx_libs="-l$snx_lib_name"
329 snx_prof_libs="-l$snx_prof_lib_name"
330
331 if test "x$PLATFORM" = "xIRIX" -a "x$USE_GCC" != "xyes" ; then
332     snx32_flags='-n32'
333     snx64_flags='-64'
334 elif test "x$GCC" = "xyes" ; then
335     snx32_flags='-m32'
336     snx64_flags='-m64'
337 fi
338
339 snx_extra_ldflags="$APP_EXTRA_LIBS_BEGIN"
340
341 includedir="$includedir/$HEADER_VERSION"
342 snx_header_subdir="$HEADER_VERSION"
343 snx_data_subdir="$DATA_VERSION"
344 snx_plugin_subdir="$PLUGIN_VERSION"
345
346 DPP_SUBST
347 DPP_GET_PROJECTDIR
348
349 AC_SUBST(data_subdir)
350 AC_SUBST(topdir)
351 AC_SUBST(UNIX_SNXROOT_ABS)
352 AC_SUBST(UNIX_JUGGLERROOT_ABS)
353 AC_SUBST(SNXROOT_ABS)
354 AC_SUBST(JUGGLERROOT_ABS)
355 AC_SUBST(SNX_SHARE_DIR)
356
357 AC_SUBST(VERSION_DOT)
358 AC_SUBST(VERSION_UNDERSCORE)
359 AC_SUBST(HEADER_VERSION)
360 AC_SUBST(CLOSE_HEADER_VERSION)
361 AC_SUBST(LIBRARY_VERSION)
362 AC_SUBST(DATA_VERSION)
363 AC_SUBST(PLUGIN_VERSION)
364
365 AC_SUBST(MIN_VPR_VERSION)
366 AC_SUBST(MIN_GMTL_VERSION)
367
368 AC_SUBST(EXTRA_LDFLAGS)
369 AC_SUBST(RM_LN)
370
371 AC_SUBST(APP_BASE_DIR)
372 AC_SUBST(APP_BASE_DIR_INST)
373
374 AC_SUBST(DYLIB_DEPS)
375 AC_SUBST(DYLIB_DEP_FILES)
376 AC_SUBST(DYLIB_PROF_DEPS)
377 AC_SUBST(DYLIB_PROF_DEP_FILES)
378
379 AC_SUBST(static_begin)
380 AC_SUBST(static_end)
381 AC_SUBST(snx_cxxflags)
382 AC_SUBST(snx_extra_cxxflags)
383 AC_SUBST(snx_ldflags)
384 AC_SUBST(snx_libs)
385 AC_SUBST(snx_prof_libs)
386 AC_SUBST(snx32_flags)
387 AC_SUBST(snx64_flags)
388 AC_SUBST(snx_header_subdir)
389 AC_SUBST(snx_data_subdir)
390 AC_SUBST(snx_plugin_subdir)
391
392 # -----------------------------------------------------------------------------
393 # Final file generation step.
394 # -----------------------------------------------------------------------------
395
396 VJ_MTREE_LIB_GEN(SNX, mtree, $PLATFORM, $ISA)
397
398 AC_CONFIG_FILES([
399    sonix.fpc
400    Makefile
401    Makefile.inc
402    common.defs.mk
403    make.defs.mk
404    snx/Makefile
405    snx/Util/Makefile
406    samples/simple/Makefile
407    samples/opengl/Makefile
408    mtree/SNX.data.dist
409    mtree/SNX.include.dist
410    mtree/SNX.install.dist
411    mtree/SNX.samples.dist
412    VARS.pl
413    ]
414    )
415
416 AC_OUTPUT
Note: See TracBrowser for help on using the browser.