#!/bin/sh usage() { prog=$1 cat << _EOF ${prog} [] can be one of the following: --prefix= The installation prefix (default: /usr). --enable-debug Enable debug mode compilation (default: disabled). --disable-allocator Disable use of internal memory allocator mechanism (default: enabled). --enable-debug-stats Enable printing of some verbose debug info (default: disabled). --with-libbsc= Enable support for libbsc (See: libbsc.com). Full path to the libbsc source tree must be provided. It links the library statically. --help Display this help message. _EOF } arg1=$1 debug=0 allocator=1 debug_stats=0 prefix=/usr libbsc_dir= libbsc_lib= libbsclflags= libbscwrapobj= libbscgenopt= libbsccppflags= while [ "${arg1}" != "" ] do case "$arg1" in --enable-debug) debug=1;; --disable-allocator) allocator=0;; --enable-debug-stats) debug_stats=1;; --prefix=*) pval=`echo ${arg1} | cut -f2 -d"="` prefix=$pval ;; --with-libbsc=*) path=`echo ${arg1} | cut -f2 -d"="` if [ -f ${path}/bsc.cpp -a -f ${path}/libbsc/libbsc.h ] then libbsc_dir="${path}" libbsc_lib="${path}/libbsc.a" libbsclflags='\$\(LIBBSCLFLAGS\)' libbscwrapobj='\$\(LIBBSCWRAPOBJ\)' libbscgenopt='\$\(LIBBSCGEN_OPT\)' libbsccppflags='\$\(LIBBSCCPPFLAGS\)' else echo "Libbsc not found in ${path}, not enabling libbsc support.\n" fi ;; --help) usage $0;; *) echo "Unrecognized option: ${arg1}" exit 1 ;; esac shift arg1=$1 done if [ $debug -eq 1 ] then typ="DEBUG" else typ="RELEASE" fi linkvar="LINK" compilevar="COMPILE" compilecppvar="COMPILE_cpp" vecflagsvar="VEC_FLAGS" loopoptflagsvar="LOOP_OPTFLAGS" cppflagsvar="CPPFLAGS" genoptvar="GEN_OPT" rabinoptvar="RABIN_OPT" noslabcppflagsvar="NO_SLAB_CPPFLAGS" debugstatscppflagsvar="DEBUG_STATS_CPPFLAGS" prefixvar="PREFIX" libbscdirvar="LIBBSCDIR" libbsclibvar="LIBBSCLIB" libbsclflagsvar="LIBBSCLFLAGS" libbscwrapobjvar="LIBBSCWRAPOBJ" libbscgenoptvar="LIBBSCGEN_OPT" libbsccppflagsvar="LIBBSCCPPFLAGS" noslabcppflagsval= debugstatscppflagsval= [ $allocator -eq 0 ] && noslabcppflagsval='\$\(NO_SLAB_CPPFLAGS\)' [ $debug_stats -eq 1 ] && debugstatscppflagsval='\$\(DEBUG_STATS_CPPFLAGS\)' cat Makefile.in | sed " s#@${linkvar}@#\\\$\\(${typ}_${linkvar}\\)#g s#@${compilevar}@#\\\$\\(${typ}_${compilevar}\\)#g s#@${compilecppvar}@#\\\$\\(${typ}_${compilecppvar}\\)#g s#@${vecflagsvar}@#\\\$\\(${typ}_${vecflagsvar}\\)#g s#@${loopoptflagsvar}@#\\\$\\(${typ}_${loopoptflagsvar}\\)#g s#@${cppflagsvar}@#\\\$\\(${typ}_${cppflagsvar}\\)#g s#@${genoptvar}@#\\\$\\(${typ}_${genoptvar}\\)#g s#@${rabinoptvar}@#\\\$\\(${typ}_${rabinoptvar}\\)#g s#@${noslabcppflagsvar}@#${noslabcppflagsval}#g s#@${debugstatscppflagsvar}@#${debugstatscppflagsval}#g s#@${prefixvar}@#${prefix}#g s#@${libbscdirvar}@#${libbsc_dir}#g s#@${libbsclibvar}@#${libbsc_lib}#g s#@${libbsclflagsvar}@#${libbsclflags}#g s#@${libbscwrapobjvar}@#${libbscwrapobj}#g s#@${libbscgenoptvar}@#${libbscgenopt}#g s#@${libbsccppflagsvar}@#${libbsccppflags}#g " > Makefile