#!/bin/bash # this script by Mathieu Bouchard, 2001. JMAX_VERSION=unknown echo if [ ! -f configure ] then echo "Run me from the right directory please." exit 1 fi argc=$# while [ 0 != $# ] do case $1 in --jmax24) JMAX_VERSION=24 echo "Using jMax 2.4.x" JMAX_INCLUDE='"fts.h"' ;; --jmax25) JMAX_VERSION=25 echo "Using jMax 2.5.x" JMAX_INCLUDE='' ;; --jmax30) JMAX_VERSION=30 echo "Using jMax 3.0.x (bêta)" ;; --nojmax) JMAX_VERSION=none echo "Not using jMax" ;; --no-mpeg) NO_MPEG=yes echo "won't check for libmpeg" ;; --fast) echo "Fast Mode (less error checking)" OPTIONS="$OPTIONS HAVE_SPEED" ;; --jmax-dist-dir) JMAXROOTDIR=$2 shift ;; *) echo "unknown option \`$1'" exit 1 ;; esac shift done if [ "z$JMAX_VERSION" = "zunknown" ] then echo "usage: ./configure [--jmax24|--jmax25|--jmax30|--nojmax]" echo " [--fast] [--jmax-dist-dir directory]" exit 1 fi if [ ! "z$JMAX_VERSION" = "znone" ]; then if [ "z$JMAXROOTDIR" == "z" ]; then JMAXROOTDIR=`(cd ../..; echo $PWD)` if [ -d $JMAXROOTDIR/Makefiles ]; then echo "assuming --jmax-dist-dir $JMAXROOTDIR" else echo "please specify --jmax-dist-dir " exit 1 fi fi fi #--------------------------------# has-libmpeg () { if [ ! "z$NO_MPEG" = "z" ]; then return 1; fi ( echo '#include ' echo 'int main (void) { return GetMPEGFrame==0; }' ) > /tmp/$$.c gcc /tmp/$$.c -o /tmp/$$ -lmpeg } has-videodev () { ( echo '#include ' echo '#include ' echo 'int main (void) { struct video_window foo; }' ) > /tmp/$$.c gcc /tmp/$$.c -o /tmp/$$ } has-x11-shared-memory () { ( echo '#include ' echo '#include ' echo '#include ' echo '#include ' echo '#include ' echo '#include ' echo 'int main (void) {return 0;}' ) > /tmp/$$.c gcc /tmp/$$.c -o /tmp/$$ -L/usr/X11R6/lib -lX11 } # this is very "heuristic" to say the least. sorry. has-pentium-compatible () { ( echo 'typedef unsigned long long uint64;' echo 'int main(void) { uint64 x;' echo '__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));' echo 'return 0;}' ) > /tmp/$$.c gcc /tmp/$$.c -o /tmp/$$ -mpentium && /tmp/$$ } #--------------------------------# FORMATS='X11 PPM Targa Grid' LDSOFLAGS='-lm -L/usr/X11R6/lib -lX11 -lXext' echo -n "looking for LibMPEG: " if has-libmpeg; then echo "yes" FORMATS="$FORMATS MPEG" LDSOFLAGS="$LDSOFLAGS -lmpeg" else echo "no" fi echo -n "looking for videodev (video4linux 1.x video digitizer drivers): " if has-videodev; then echo "yes" FORMATS="$FORMATS VideoDev" else echo "no" fi echo -n "looking for x11 shared memory (acceleration): " if has-x11-shared-memory; then echo "yes" OPTIONS="$OPTIONS HAVE_X11_SHARED_MEMORY" else echo "no" fi echo -n "looking for pentium-compatible CPU: " if has-pentium-compatible; then echo "yes" OPTIONS="$OPTIONS HAVE_PENTIUM" OPTIONS="$OPTIONS HAVE_TSC_PROFILING" else echo "no" fi #--------------------------------# echo echo "our format list: $FORMATS" echo echo "our option list: $OPTIONS" echo #--------------------------------# echo "generating ./config.make" ( echo ifndef ARCH echo ARCH=i686-linux echo endif echo JMAX_VERSION=$JMAX_VERSION echo PNAME=gridflow if [ ! "z$JMAX_VERSION" = "znone" ]; then echo JMAXROOTDIR=$JMAXROOTDIR echo JMAXDISTDIR=$JMAXROOTDIR echo 'include $(JMAXDISTDIR)/Makefiles/Makefile.$(ARCH)' fi if [ "z$LDSOFLAGS" != "z" ]; then echo "GRIDFLOW_LDSOFLAGS += $LDSOFLAGS" fi ) > config.make #--------------------------------# echo "generating c/src/Sources" ( echo "SOURCES = \\" echo "lang.c dim.c bitpacking.c operator.c grid.c main.c \\" echo "grid_basic.c grid_extra.c io.c \\" for format in $FORMATS; do lc_format=`echo $format | tr A-Z a-z` echo "format_$lc_format.c \\" done echo "" ) > c/src/Sources #--------------------------------# echo "generating c/src/config.h" ( echo " #ifndef __CONFIG_H #define __CONFIG_H /* this file was auto-generated by gridflow/configure */ #ifdef STANDALONE #include \"nofts.h\" #else #include $JMAX_INCLUDE #endif #define FORMAT_LIST(_pre1_,_pre2_) \\" for format in $FORMATS; do echo " _pre1_ _pre2_##Format$format,\\" done echo "_pre1_ _pre2_##FormatX11" # twice... hack. echo for z in $OPTIONS; do echo "#define $z" done echo echo "#endif" ) > c/src/config.h