SciCodePile/SciCode-Domain-Code
DATA1: Domain-Specific Code Dataset Dataset Overview DATA1 is a large-scale domain-specific code dataset focusing on code samples from interdisciplinary fields such as biology, chemistry, materials science, and related areas. The dataset is collected and organized from GitHub repositories, covering 178 different domain topics with over 1.1 billion lines of code. Dataset Statistics Total Datasets: 178 CSV files Total Data Size: ~115 GB Total Lines… See the full description on the dataset page: https://huggingface.co/datasets/SciCodePile/SciCode-Domain-Code.
42.4k
1"keyword","repo_name","file_path","file_extension","file_size","line_count","content","language"
2"CRISPR","ctSkennerton/crass","TODO.md",".md","1440","27","# TODO3 4## Issues5* Flanking sequences are not called correctly6 * Causes spacers to be called as flankers7* Speed degrades rapidly with the number of patterns identified8 * Probable cause is the singleton finder9* In some circumstances closely related groups are not getting split apart10* The final output coverage of the spacer does not always correspond to the number of sources11* Spacers go missing in the graph from Crass, but they are present if you perform a regular overlap assembly12 * This is not a sequencing error issue as even when searching with mismatches, there is not sign of the spacers13* Spacer strings only get created during the initial pass of the graph building. However, spacer objects can also be made from the p-graph14 * This means that spacers may exist in the graph, but not in the output sequences. Maybe the cause of the above issue15* If a slave DR is a perfect palindrome of the master DR the offset will be undefined16 17 18## Wanted Features19* Multi-threading the search algorithms20* Using paired read information in the search algorithms21* Ability to run Crass on genomes or assembled contigs22 * Output a gff3 formatted file23* Screen for known eukaryotic microsatellites for datasets that may be host contaminated24 25## Improvements26* Use read information better when building the graph27* Allow for multiple DR types to be in a single sequence. Very important if Crass is to work on genomes 28","Markdown"
29"CRISPR","ctSkennerton/crass","autogen.sh",".sh","49146","1599","#!/bin/sh30# a u t o g e n . s h31#32# Copyright (c) 2005-2011 United States Government as represented by33# the U.S. Army Research Laboratory.34#35# Redistribution and use in source and binary forms, with or without36# modification, are permitted provided that the following conditions37# are met:38#39# 1. Redistributions of source code must retain the above copyright40# notice, this list of conditions and the following disclaimer.41#42# 2. Redistributions in binary form must reproduce the above43# copyright notice, this list of conditions and the following44# disclaimer in the documentation and/or other materials provided45# with the distribution.46#47# 3. The name of the author may not be used to endorse or promote48# products derived from this software without specific prior written49# permission.50#51# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS52# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED53# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE54# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY55# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL56# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE57# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS58# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,59# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING60# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS61# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.62#63###64#65# Script for automatically preparing the sources for compilation by66# performing the myriad of necessary steps. The script attempts to67# detect proper version support, and outputs warnings about particular68# systems that have autotool peculiarities.69#70# Basically, if everything is set up and installed correctly, the71# script will validate that minimum versions of the GNU Build System72# tools are installed, account for several common configuration73# issues, and then simply run autoreconf for you.74#75# If autoreconf fails, which can happen for many valid configurations,76# this script proceeds to run manual preparation steps effectively77# providing a POSIX shell script (mostly complete) reimplementation of78# autoreconf.79#80# The AUTORECONF, AUTOCONF, AUTOMAKE, LIBTOOLIZE, ACLOCAL, AUTOHEADER81# environment variables and corresponding _OPTIONS variables (e.g.82# AUTORECONF_OPTIONS) may be used to override the default automatic83# detection behaviors. Similarly the _VERSION variables will override84# the minimum required version numbers.85#86# Examples:87#88# To obtain help on usage:89# ./autogen.sh --help90#91# To obtain verbose output:92# ./autogen.sh --verbose93#94# To skip autoreconf and prepare manually:95# AUTORECONF=false ./autogen.sh96#97# To verbosely try running with an older (unsupported) autoconf:98# AUTOCONF_VERSION=2.50 ./autogen.sh --verbose99#100# Author:101# Christopher Sean Morrison <morrison@brlcad.org>102#103# Patches:104# Sebastian Pipping <sebastian@pipping.org>105# Tom Browder <tbrowder2@users.sourceforge.net>106#107######################################################################108 109# set to minimum acceptable version of autoconf110if [ ""x$AUTOCONF_VERSION"" = ""x"" ] ; then111 AUTOCONF_VERSION=2.52112fi113# set to minimum acceptable version of automake114if [ ""x$AUTOMAKE_VERSION"" = ""x"" ] ; then115 AUTOMAKE_VERSION=1.6.0116fi117# set to minimum acceptable version of libtool118if [ ""x$LIBTOOL_VERSION"" = ""x"" ] ; then119 LIBTOOL_VERSION=1.4.2120fi121 122 123##################124# ident function #125##################126ident ( ) {127 # extract copyright from header128 __copyright=""`grep Copyright $AUTOGEN_SH | head -${HEAD_N}1 | awk '{print $4}'`""129 if [ ""x$__copyright"" = ""x"" ] ; then130 __copyright=""`date +%Y`""131 fi132 133 # extract version from CVS Id string134 __id=""$Id$""135 __version=""`echo $__id | sed 's/.*\([0-9][0-9][0-9][0-9]\)[-\/]\([0-9][0-9]\)[-\/]\([0-9][0-9]\).*/\1\2\3/'`""136 if [ ""x$__version"" = ""x"" ] ; then137 __version=""""138 fi139 140 echo ""autogen.sh build preparation script by Christopher Sean Morrison""141 echo "" + config.guess download patch by Sebastian Pipping (2008-12-03)""142 echo ""revised 3-clause BSD-style license, copyright (c) $__copyright""143 echo ""script version $__version, ISO/IEC 9945 POSIX shell script""144}145 146 147##################148# USAGE FUNCTION #149##################150usage ( ) {151 echo ""Usage: $AUTOGEN_SH [-h|--help] [-v|--verbose] [-q|--quiet] [-d|--download] [--version]""152 echo "" --help Help on $NAME_OF_AUTOGEN usage""153 echo "" --verbose Verbose progress output""154 echo "" --quiet Quiet suppressed progress output""155 echo "" --download Download the latest config.guess from gnulib""156 echo "" --version Only perform GNU Build System version checks""157 echo158 echo ""Description: This script will validate that minimum versions of the""159 echo ""GNU Build System tools are installed and then run autoreconf for you.""160 echo ""Should autoreconf fail, manual preparation steps will be run""161 echo ""potentially accounting for several common preparation issues. The""162 163 echo ""AUTORECONF, AUTOCONF, AUTOMAKE, LIBTOOLIZE, ACLOCAL, AUTOHEADER,""164 echo ""PROJECT, & CONFIGURE environment variables and corresponding _OPTIONS""165 echo ""variables (e.g. AUTORECONF_OPTIONS) may be used to override the""166 echo ""default automatic detection behavior.""167 echo168 169 ident170 171 return 0172}173 174 175##########################176# VERSION_ERROR FUNCTION #177##########################178version_error ( ) {179 if [ ""x$1"" = ""x"" ] ; then180 echo ""INTERNAL ERROR: version_error was not provided a version""181 exit 1182 fi183 if [ ""x$2"" = ""x"" ] ; then184 echo ""INTERNAL ERROR: version_error was not provided an application name""185 exit 1186 fi187 $ECHO188 $ECHO ""ERROR: To prepare the ${PROJECT} build system from scratch,""189 $ECHO "" at least version $1 of $2 must be installed.""190 $ECHO191 $ECHO ""$NAME_OF_AUTOGEN does not need to be run on the same machine that will""192 $ECHO ""run configure or make. Either the GNU Autotools will need to be installed""193 $ECHO ""or upgraded on this system, or $NAME_OF_AUTOGEN must be run on the source""194 $ECHO ""code on another system and then transferred to here. -- Cheers!""195 $ECHO196}197 198##########################199# VERSION_CHECK FUNCTION #200##########################201version_check ( ) {202 if [ ""x$1"" = ""x"" ] ; then203 echo ""INTERNAL ERROR: version_check was not provided a minimum version""204 exit 1205 fi206 _min=""$1""207 if [ ""x$2"" = ""x"" ] ; then208 echo ""INTERNAL ERROR: version check was not provided a comparison version""209 exit 1210 fi211 _cur=""$2""212 213 # needed to handle versions like 1.10 and 1.4-p6214 _min=""`echo ${_min}. | sed 's/[^0-9]/./g' | sed 's/\.\././g'`""215 _cur=""`echo ${_cur}. | sed 's/[^0-9]/./g' | sed 's/\.\././g'`""216 217 _min_major=""`echo $_min | cut -d. -f1`""218 _min_minor=""`echo $_min | cut -d. -f2`""219 _min_patch=""`echo $_min | cut -d. -f3`""220 221 _cur_major=""`echo $_cur | cut -d. -f1`""222 _cur_minor=""`echo $_cur | cut -d. -f2`""223 _cur_patch=""`echo $_cur | cut -d. -f3`""224 225 if [ ""x$_min_major"" = ""x"" ] ; then226 _min_major=0227 fi228 if [ ""x$_min_minor"" = ""x"" ] ; then229 _min_minor=0230 fi231 if [ ""x$_min_patch"" = ""x"" ] ; then232 _min_patch=0233 fi234 if [ ""x$_cur_minor"" = ""x"" ] ; then235 _cur_major=0236 fi237 if [ ""x$_cur_minor"" = ""x"" ] ; then238 _cur_minor=0239 fi240 if [ ""x$_cur_patch"" = ""x"" ] ; then241 _cur_patch=0242 fi243 244 $VERBOSE_ECHO ""Checking if ${_cur_major}.${_cur_minor}.${_cur_patch} is greater than ${_min_major}.${_min_minor}.${_min_patch}""245 246 if [ $_min_major -lt $_cur_major ] ; then247 return 0248 elif [ $_min_major -eq $_cur_major ] ; then249 if [ $_min_minor -lt $_cur_minor ] ; then250 return 0251 elif [ $_min_minor -eq $_cur_minor ] ; then252 if [ $_min_patch -lt $_cur_patch ] ; then253 return 0254 elif [ $_min_patch -eq $_cur_patch ] ; then255 return 0256 fi257 fi258 fi259 return 1260}261 262 263######################################264# LOCATE_CONFIGURE_TEMPLATE FUNCTION #265######################################266locate_configure_template ( ) {267 _pwd=""`pwd`""268 if test -f ""./configure.ac"" ; then269 echo ""./configure.ac""270 elif test -f ""./configure.in"" ; then271 echo ""./configure.in""272 elif test -f ""$_pwd/configure.ac"" ; then273 echo ""$_pwd/configure.ac""274 elif test -f ""$_pwd/configure.in"" ; then275 echo ""$_pwd/configure.in""276 elif test -f ""$PATH_TO_AUTOGEN/configure.ac"" ; then277 echo ""$PATH_TO_AUTOGEN/configure.ac""278 elif test -f ""$PATH_TO_AUTOGEN/configure.in"" ; then279 echo ""$PATH_TO_AUTOGEN/configure.in""280 fi281}282 283 284##################285# argument check #286##################287ARGS=""$*""288PATH_TO_AUTOGEN=""`dirname $0`""289NAME_OF_AUTOGEN=""`basename $0`""290AUTOGEN_SH=""$PATH_TO_AUTOGEN/$NAME_OF_AUTOGEN""291 292LIBTOOL_M4=""${PATH_TO_AUTOGEN}/misc/libtool.m4""293 294if [ ""x$HELP"" = ""x"" ] ; then295 HELP=no296fi297if [ ""x$QUIET"" = ""x"" ] ; then298 QUIET=no299fi300if [ ""x$VERBOSE"" = ""x"" ] ; then301 VERBOSE=no302fi303if [ ""x$VERSION_ONLY"" = ""x"" ] ; then304 VERSION_ONLY=no305fi306if [ ""x$DOWNLOAD"" = ""x"" ] ; then307 DOWNLOAD=no308fi309if [ ""x$AUTORECONF_OPTIONS"" = ""x"" ] ; then310 AUTORECONF_OPTIONS=""-i -f""311fi312if [ ""x$AUTOCONF_OPTIONS"" = ""x"" ] ; then313 AUTOCONF_OPTIONS=""-f""314fi315if [ ""x$AUTOMAKE_OPTIONS"" = ""x"" ] ; then316 AUTOMAKE_OPTIONS=""-a -c -f""317fi318ALT_AUTOMAKE_OPTIONS=""-a -c""319if [ ""x$LIBTOOLIZE_OPTIONS"" = ""x"" ] ; then320 LIBTOOLIZE_OPTIONS=""--automake -c -f""321fi322ALT_LIBTOOLIZE_OPTIONS=""--automake --copy --force""323if [ ""x$ACLOCAL_OPTIONS"" = ""x"" ] ; then324 ACLOCAL_OPTIONS=""""325fi326if [ ""x$AUTOHEADER_OPTIONS"" = ""x"" ] ; then327 AUTOHEADER_OPTIONS=""""328fi329if [ ""x$CONFIG_GUESS_URL"" = ""x"" ] ; then330 CONFIG_GUESS_URL=""http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.guess;hb=HEAD""331fi332for arg in $ARGS ; do333 case ""x$arg"" in334 x--help) HELP=yes ;;335 x-[hH]) HELP=yes ;;336 x--quiet) QUIET=yes ;;337 x-[qQ]) QUIET=yes ;;338 x--verbose) VERBOSE=yes ;;339 x-[dD]) DOWNLOAD=yes ;;340 x--download) DOWNLOAD=yes ;;341 x-[vV]) VERBOSE=yes ;;342 x--version) VERSION_ONLY=yes ;;343 *)344 echo ""Unknown option: $arg""345 echo346 usage347 exit 1348 ;;349 esac350done351 352 353#####################354# environment check #355#####################356 357# sanity check before recursions potentially begin358if [ ! -f ""$AUTOGEN_SH"" ] ; then359 if test -f ./autogen.sh ; then360 PATH_TO_AUTOGEN="".""361 NAME_OF_AUTOGEN=""autogen.sh""362 AUTOGEN_SH=""$PATH_TO_AUTOGEN/$NAME_OF_AUTOGEN""363 else364 echo ""INTERNAL ERROR: $AUTOGEN_SH does not exist""365 exit 1366 fi367fi368 369# force locale setting to C so things like date output as expected370LC_ALL=C371 372# commands that this script expects373for __cmd in echo head tail pwd ; do374 echo ""test"" > /dev/null 2>&1 | $__cmd > /dev/null 2>&1375 if [ $? != 0 ] ; then376 echo ""INTERNAL ERROR: '${__cmd}' command is required""377 exit 2378 fi379done380echo ""test"" | grep ""test"" > /dev/null 2>&1381if test ! x$? = x0 ; then382 echo ""INTERNAL ERROR: grep command is required""383 exit 1384fi385echo ""test"" | sed ""s/test/test/"" > /dev/null 2>&1386if test ! x$? = x0 ; then387 echo ""INTERNAL ERROR: sed command is required""388 exit 1389fi390 391 392# determine the behavior of echo393case `echo ""testing\c""; echo 1,2,3`,`echo -n testing; echo 1,2,3` in394 *c*,-n*) ECHO_N= ECHO_C='395' ECHO_T=' ' ;;396 *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;397 *) ECHO_N= ECHO_C='\c' ECHO_T= ;;398esac399 400# determine the behavior of head401case ""x`echo 'head' | head -n 1 2>&1`"" in402 *xhead*) HEAD_N=""n "" ;;403 *) HEAD_N="""" ;;404esac405 406# determine the behavior of tail407case ""x`echo 'tail' | tail -n 1 2>&1`"" in408 *xtail*) TAIL_N=""n "" ;;409 *) TAIL_N="""" ;;410esac411 412VERBOSE_ECHO=:413ECHO=:414if [ ""x$QUIET"" = ""xyes"" ] ; then415 if [ ""x$VERBOSE"" = ""xyes"" ] ; then416 echo ""Verbose output quelled by quiet option. Further output disabled.""417 fi418else419 ECHO=echo420 if [ ""x$VERBOSE"" = ""xyes"" ] ; then421 echo ""Verbose output enabled""422 VERBOSE_ECHO=echo423 fi424fi425 426 427# allow a recursive run to disable further recursions428if [ ""x$RUN_RECURSIVE"" = ""x"" ] ; then429 RUN_RECURSIVE=yes430fi431 432 433################################################434# check for help arg and bypass version checks #435################################################436if [ ""x`echo $ARGS | sed 's/.*[hH][eE][lL][pP].*/help/'`"" = ""xhelp"" ] ; then437 HELP=yes438fi439if [ ""x$HELP"" = ""xyes"" ] ; then440 usage441 $ECHO ""---""442 $ECHO ""Help was requested. No preparation or configuration will be performed.""443 exit 0444fi445 446 447#######################448# set up signal traps #449#######################450untrap_abnormal ( ) {451 for sig in 1 2 13 15; do452 trap - $sig453 done454}455 456# do this cleanup whenever we exit.457trap '458 # start from the root459 if test -d ""$START_PATH"" ; then460 cd ""$START_PATH""461 fi462 463 # restore/delete backup files464 if test ""x$PFC_INIT"" = ""x1"" ; then465 recursive_restore466 fi467' 0468 469# trap SIGHUP (1), SIGINT (2), SIGPIPE (13), SIGTERM (15)470for sig in 1 2 13 15; do471 trap '472 $ECHO """"473 $ECHO ""Aborting $NAME_OF_AUTOGEN: caught signal '$sig'""474 475 # start from the root476 if test -d ""$START_PATH"" ; then477 cd ""$START_PATH""478 fi479 480 # clean up on abnormal exit481 $VERBOSE_ECHO ""rm -rf autom4te.cache""482 rm -rf autom4te.cache483 484 if test -f ""acinclude.m4.$$.backup"" ; then485 $VERBOSE_ECHO ""cat acinclude.m4.$$.backup > acinclude.m4""486 chmod u+w acinclude.m4487 cat acinclude.m4.$$.backup > acinclude.m4488 489 $VERBOSE_ECHO ""rm -f acinclude.m4.$$.backup""490 rm -f acinclude.m4.$$.backup491 fi492 493 { (exit 1); exit 1; }494' $sig495done496 497 498#############################499# look for a configure file #500#############################501if [ ""x$CONFIGURE"" = ""x"" ] ; then502 CONFIGURE=""`locate_configure_template`""503 if [ ! ""x$CONFIGURE"" = ""x"" ] ; then504 $VERBOSE_ECHO ""Found a configure template: $CONFIGURE""505 fi506else507 $ECHO ""Using CONFIGURE environment variable override: $CONFIGURE""508fi509if [ ""x$CONFIGURE"" = ""x"" ] ; then510 if [ ""x$VERSION_ONLY"" = ""xyes"" ] ; then511 CONFIGURE=/dev/null512 else513 $ECHO514 $ECHO ""A configure.ac or configure.in file could not be located implying""515 $ECHO ""that the GNU Build System is at least not used in this directory. In""516 $ECHO ""any case, there is nothing to do here without one of those files.""517 $ECHO518 $ECHO ""ERROR: No configure.in or configure.ac file found in `pwd`""519 exit 1520 fi521fi522 523####################524# get project name #525####################526if [ ""x$PROJECT"" = ""x"" ] ; then527 PROJECT=""`grep AC_INIT $CONFIGURE | grep -v '.*#.*AC_INIT' | tail -${TAIL_N}1 | sed 's/^[ ]*AC_INIT(\([^,)]*\).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`""528 if [ ""x$PROJECT"" = ""xAC_INIT"" ] ; then529 # projects might be using the older/deprecated arg-less AC_INIT .. look for AM_INIT_AUTOMAKE instead530 PROJECT=""`grep AM_INIT_AUTOMAKE $CONFIGURE | grep -v '.*#.*AM_INIT_AUTOMAKE' | tail -${TAIL_N}1 | sed 's/^[ ]*AM_INIT_AUTOMAKE(\([^,)]*\).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`""531 fi532 if [ ""x$PROJECT"" = ""xAM_INIT_AUTOMAKE"" ] ; then533 PROJECT=""project""534 fi535 if [ ""x$PROJECT"" = ""x"" ] ; then536 PROJECT=""project""537 fi538else539 $ECHO ""Using PROJECT environment variable override: $PROJECT""540fi541$ECHO ""Preparing the $PROJECT build system...please wait""542$ECHO543 544 545########################546# check for autoreconf #547########################548HAVE_AUTORECONF=no549if [ ""x$AUTORECONF"" = ""x"" ] ; then550 for AUTORECONF in autoreconf ; do551 $VERBOSE_ECHO ""Checking autoreconf version: $AUTORECONF --version""552 $AUTORECONF --version > /dev/null 2>&1553 if [ $? = 0 ] ; then554 HAVE_AUTORECONF=yes555 break556 fi557 done558else559 HAVE_AUTORECONF=yes560 $ECHO ""Using AUTORECONF environment variable override: $AUTORECONF""561fi562 563 564##########################565# autoconf version check #566##########################567_acfound=no568if [ ""x$AUTOCONF"" = ""x"" ] ; then569 for AUTOCONF in autoconf ; do570 $VERBOSE_ECHO ""Checking autoconf version: $AUTOCONF --version""571 $AUTOCONF --version > /dev/null 2>&1572 if [ $? = 0 ] ; then573 _acfound=yes574 break575 fi576 done577else578 _acfound=yes579 $ECHO ""Using AUTOCONF environment variable override: $AUTOCONF""580fi581 582_report_error=no583if [ ! ""x$_acfound"" = ""xyes"" ] ; then584 $ECHO ""ERROR: Unable to locate GNU Autoconf.""585 _report_error=yes586else587 _version=""`$AUTOCONF --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`""588 if [ ""x$_version"" = ""x"" ] ; then589 _version=""0.0.0""590 fi591 $ECHO ""Found GNU Autoconf version $_version""592 version_check ""$AUTOCONF_VERSION"" ""$_version""593 if [ $? -ne 0 ] ; then594 _report_error=yes595 fi596fi597if [ ""x$_report_error"" = ""xyes"" ] ; then598 version_error ""$AUTOCONF_VERSION"" ""GNU Autoconf""599 exit 1600fi601 602 603##########################604# automake version check #605##########################606_amfound=no607if [ ""x$AUTOMAKE"" = ""x"" ] ; then608 for AUTOMAKE in automake ; do609 $VERBOSE_ECHO ""Checking automake version: $AUTOMAKE --version""610 $AUTOMAKE --version > /dev/null 2>&1611 if [ $? = 0 ] ; then612 _amfound=yes613 break614 fi615 done616else617 _amfound=yes618 $ECHO ""Using AUTOMAKE environment variable override: $AUTOMAKE""619fi620 621 622_report_error=no623if [ ! ""x$_amfound"" = ""xyes"" ] ; then624 $ECHO625 $ECHO ""ERROR: Unable to locate GNU Automake.""626 _report_error=yes627else628 _version=""`$AUTOMAKE --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`""629 if [ ""x$_version"" = ""x"" ] ; then630 _version=""0.0.0""631 fi632 $ECHO ""Found GNU Automake version $_version""633 version_check ""$AUTOMAKE_VERSION"" ""$_version""634 if [ $? -ne 0 ] ; then635 _report_error=yes636 fi637fi638if [ ""x$_report_error"" = ""xyes"" ] ; then639 version_error ""$AUTOMAKE_VERSION"" ""GNU Automake""640 exit 1641fi642 643 644########################645# check for libtoolize #646########################647HAVE_LIBTOOLIZE=yes648HAVE_ALT_LIBTOOLIZE=no649_ltfound=no650if [ ""x$LIBTOOLIZE"" = ""x"" ] ; then651 LIBTOOLIZE=libtoolize652 $VERBOSE_ECHO ""Checking libtoolize version: $LIBTOOLIZE --version""653 $LIBTOOLIZE --version > /dev/null 2>&1654 if [ ! $? = 0 ] ; then655 HAVE_LIBTOOLIZE=no656 $ECHO657 if [ ""x$HAVE_AUTORECONF"" = ""xno"" ] ; then658 $ECHO ""Warning: libtoolize does not appear to be available.""659 else660 $ECHO ""Warning: libtoolize does not appear to be available. This means that""661 $ECHO ""the automatic build preparation via autoreconf will probably not work.""662 $ECHO ""Preparing the build by running each step individually, however, should""663 $ECHO ""work and will be done automatically for you if autoreconf fails.""664 fi665 666 # look for some alternates667 for tool in glibtoolize libtoolize15 libtoolize14 libtoolize13 ; do668 $VERBOSE_ECHO ""Checking libtoolize alternate: $tool --version""669 _glibtoolize=""`$tool --version > /dev/null 2>&1`""670 if [ $? = 0 ] ; then671 $VERBOSE_ECHO ""Found $tool --version""672 _glti=""`which $tool`""673 if [ ""x$_glti"" = ""x"" ] ; then674 $VERBOSE_ECHO ""Cannot find $tool with which""675 continue;676 fi677 if test ! -f ""$_glti"" ; then678 $VERBOSE_ECHO ""Cannot use $tool, $_glti is not a file""679 continue;680 fi681 _gltidir=""`dirname $_glti`""682 if [ ""x$_gltidir"" = ""x"" ] ; then683 $VERBOSE_ECHO ""Cannot find $tool path with dirname of $_glti""684 continue;685 fi686 if test ! -d ""$_gltidir"" ; then687 $VERBOSE_ECHO ""Cannot use $tool, $_gltidir is not a directory""688 continue;689 fi690 HAVE_ALT_LIBTOOLIZE=yes691 LIBTOOLIZE=""$tool""692 $ECHO693 $ECHO ""Fortunately, $tool was found which means that your system may simply""694 $ECHO ""have a non-standard or incomplete GNU Autotools install. If you have""695 $ECHO ""sufficient system access, it may be possible to quell this warning by""696 $ECHO ""running:""697 $ECHO698 sudo -V > /dev/null 2>&1699 if [ $? = 0 ] ; then700 $ECHO "" sudo ln -s $_glti $_gltidir/libtoolize""701 $ECHO702 else703 $ECHO "" ln -s $_glti $_gltidir/libtoolize""704 $ECHO705 $ECHO ""Run that as root or with proper permissions to the $_gltidir directory""706 $ECHO707 fi708 _ltfound=yes709 break710 fi711 done712 else713 _ltfound=yes714 fi715else716 _ltfound=yes717 $ECHO ""Using LIBTOOLIZE environment variable override: $LIBTOOLIZE""718fi719 720 721############################722# libtoolize version check #723############################724_report_error=no725if [ ! ""x$_ltfound"" = ""xyes"" ] ; then726 $ECHO727 $ECHO ""ERROR: Unable to locate GNU Libtool.""728 _report_error=yes729else730 _version=""`$LIBTOOLIZE --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`""731 if [ ""x$_version"" = ""x"" ] ; then732 _version=""0.0.0""733 fi734 $ECHO ""Found GNU Libtool version $_version""735 version_check ""$LIBTOOL_VERSION"" ""$_version""736 if [ $? -ne 0 ] ; then737 _report_error=yes738 fi739fi740if [ ""x$_report_error"" = ""xyes"" ] ; then741 version_error ""$LIBTOOL_VERSION"" ""GNU Libtool""742 exit 1743fi744 745 746#####################747# check for aclocal #748#####################749if [ ""x$ACLOCAL"" = ""x"" ] ; then750 for ACLOCAL in aclocal ; do751 $VERBOSE_ECHO ""Checking aclocal version: $ACLOCAL --version""752 $ACLOCAL --version > /dev/null 2>&1753 if [ $? = 0 ] ; then754 break755 fi756 done757else758 $ECHO ""Using ACLOCAL environment variable override: $ACLOCAL""759fi760 761 762########################763# check for autoheader #764########################765if [ ""x$AUTOHEADER"" = ""x"" ] ; then766 for AUTOHEADER in autoheader ; do767 $VERBOSE_ECHO ""Checking autoheader version: $AUTOHEADER --version""768 $AUTOHEADER --version > /dev/null 2>&1769 if [ $? = 0 ] ; then770 break771 fi772 done773else774 $ECHO ""Using AUTOHEADER environment variable override: $AUTOHEADER""775fi776 777 778#########################779# check if version only #780#########################781$VERBOSE_ECHO ""Checking whether to only output version information""782if [ ""x$VERSION_ONLY"" = ""xyes"" ] ; then783 $ECHO784 ident785 $ECHO ""---""786 $ECHO ""Version requested. No preparation or configuration will be performed.""787 exit 0788fi789 790 791#################################792# PROTECT_FROM_CLOBBER FUNCTION #793#################################794protect_from_clobber ( ) {795 PFC_INIT=1796 797 # protect COPYING & INSTALL from overwrite by automake. the798 # automake force option will (inappropriately) ignore the existing799 # contents of a COPYING and/or INSTALL files (depending on the800 # version) instead of just forcing *missing* files like it does801 # for AUTHORS, NEWS, and README. this is broken but extremely802 # prevalent behavior, so we protect against it by keeping a backup803 # of the file that can later be restored.804 805 for file in COPYING INSTALL ; do806 if test -f ${file} ; then807 if test -f ${file}.$$.protect_from_automake.backup ; then808 $VERBOSE_ECHO ""Already backed up ${file} in `pwd`""809 else810 $VERBOSE_ECHO ""Backing up ${file} in `pwd`""811 $VERBOSE_ECHO ""cp -p ${file} ${file}.$$.protect_from_automake.backup""812 cp -p ${file} ${file}.$$.protect_from_automake.backup813 fi814 fi815 done816}817 818 819##############################820# RECURSIVE_PROTECT FUNCTION #821##############################822recursive_protect ( ) {823 824 # for projects using recursive configure, run the build825 # preparation steps for the subdirectories. this function assumes826 # START_PATH was set to pwd before recursion begins so that827 # relative paths work.828 829 # git 'r done, protect COPYING and INSTALL from being clobbered830 protect_from_clobber831 832 if test -d autom4te.cache ; then833 $VERBOSE_ECHO ""Found an autom4te.cache directory, deleting it""834 $VERBOSE_ECHO ""rm -rf autom4te.cache""835 rm -rf autom4te.cache836 fi837 838 # find configure template839 _configure=""`locate_configure_template`""840 if [ ""x$_configure"" = ""x"" ] ; then841 return842 fi843 # $VERBOSE_ECHO ""Looking for configure template found `pwd`/$_configure""844 845 # look for subdirs846 # $VERBOSE_ECHO ""Looking for subdirs in `pwd`""847 _det_config_subdirs=""`grep AC_CONFIG_SUBDIRS $_configure | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ ]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`""848 CHECK_DIRS=""""849 for dir in $_det_config_subdirs ; do850 if test -d ""`pwd`/$dir"" ; then851 CHECK_DIRS=""$CHECK_DIRS \""`pwd`/$dir\""""852 fi853 done854 855 # process subdirs856 if [ ! ""x$CHECK_DIRS"" = ""x"" ] ; then857 $VERBOSE_ECHO ""Recursively scanning the following directories:""858 $VERBOSE_ECHO "" $CHECK_DIRS""859 for dir in $CHECK_DIRS ; do860 $VERBOSE_ECHO ""Protecting files from automake in $dir""861 cd ""$START_PATH""862 eval ""cd $dir""863 864 # recursively git 'r done865 recursive_protect866 done867 fi868} # end of recursive_protect869 870 871#############################872# RESTORE_CLOBBERED FUNCION #873#############################874restore_clobbered ( ) {875 876 # The automake (and autoreconf by extension) -f/--force-missing877 # option may overwrite COPYING and INSTALL even if they do exist.878 # Here we restore the files if necessary.879 880 spacer=no881 882 for file in COPYING INSTALL ; do883 if test -f ${file}.$$.protect_from_automake.backup ; then884 if test -f ${file} ; then885 # compare entire content, restore if needed886 if test ""x`cat ${file}`"" != ""x`cat ${file}.$$.protect_from_automake.backup`"" ; then887 if test ""x$spacer"" = ""xno"" ; then888 $VERBOSE_ECHO889 spacer=yes890 fi891 # restore the backup892 $VERBOSE_ECHO ""Restoring ${file} from backup (automake -f likely clobbered it)""893 $VERBOSE_ECHO ""rm -f ${file}""894 rm -f ${file}895 $VERBOSE_ECHO ""mv ${file}.$$.protect_from_automake.backup ${file}""896 mv ${file}.$$.protect_from_automake.backup ${file}897 fi # check contents898 elif test -f ${file}.$$.protect_from_automake.backup ; then899 $VERBOSE_ECHO ""mv ${file}.$$.protect_from_automake.backup ${file}""900 mv ${file}.$$.protect_from_automake.backup ${file}901 fi # -f ${file}902 903 # just in case904 $VERBOSE_ECHO ""rm -f ${file}.$$.protect_from_automake.backup""905 rm -f ${file}.$$.protect_from_automake.backup906 fi # -f ${file}.$$.protect_from_automake.backup907 done908 909 CONFIGURE=""`locate_configure_template`""910 if [ ""x$CONFIGURE"" = ""x"" ] ; then911 return912 fi913 914 _aux_dir=""`grep AC_CONFIG_AUX_DIR $CONFIGURE | grep -v '.*#.*AC_CONFIG_AUX_DIR' | tail -${TAIL_N}1 | sed 's/^[ ]*AC_CONFIG_AUX_DIR(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`""915 if test ! -d ""$_aux_dir"" ; then916 _aux_dir=.917 fi918 919 for file in config.guess config.sub ltmain.sh ; do920 if test -f ""${_aux_dir}/${file}"" ; then921 $VERBOSE_ECHO ""rm -f \""${_aux_dir}/${file}.backup\""""922 rm -f ""${_aux_dir}/${file}.backup""923 fi924 done925} # end of restore_clobbered926 927 928##############################929# RECURSIVE_RESTORE FUNCTION #930##############################931recursive_restore ( ) {932 933 # restore COPYING and INSTALL from backup if they were clobbered934 # for each directory recursively.935 936 # git 'r undone937 restore_clobbered938 939 # find configure template940 _configure=""`locate_configure_template`""941 if [ ""x$_configure"" = ""x"" ] ; then942 return943 fi944 945 # look for subdirs946 _det_config_subdirs=""`grep AC_CONFIG_SUBDIRS $_configure | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ ]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`""947 CHECK_DIRS=""""948 for dir in $_det_config_subdirs ; do949 if test -d ""`pwd`/$dir"" ; then950 CHECK_DIRS=""$CHECK_DIRS \""`pwd`/$dir\""""951 fi952 done953 954 # process subdirs955 if [ ! ""x$CHECK_DIRS"" = ""x"" ] ; then956 $VERBOSE_ECHO ""Recursively scanning the following directories:""957 $VERBOSE_ECHO "" $CHECK_DIRS""958 for dir in $CHECK_DIRS ; do959 $VERBOSE_ECHO ""Checking files for automake damage in $dir""960 cd ""$START_PATH""961 eval ""cd $dir""962 963 # recursively git 'r undone964 recursive_restore965 done966 fi967} # end of recursive_restore968 969 970#######################971# INITIALIZE FUNCTION #972#######################973initialize ( ) {974 975 # this routine performs a variety of directory-specific976 # initializations. some are sanity checks, some are preventive,977 # and some are necessary setup detection.978 #979 # this function sets:980 # CONFIGURE981 # SEARCH_DIRS982 # CONFIG_SUBDIRS983 984 ##################################985 # check for a configure template #986 ##################################987 CONFIGURE=""`locate_configure_template`""988 if [ ""x$CONFIGURE"" = ""x"" ] ; then989 $ECHO990 $ECHO ""A configure.ac or configure.in file could not be located implying""991 $ECHO ""that the GNU Build System is at least not used in this directory. In""992 $ECHO ""any case, there is nothing to do here without one of those files.""993 $ECHO994 $ECHO ""ERROR: No configure.in or configure.ac file found in `pwd`""995 exit 1996 fi997 998 #####################999 # detect an aux dir #1000 #####################1001 _aux_dir=""`grep AC_CONFIG_AUX_DIR $CONFIGURE | grep -v '.*#.*AC_CONFIG_AUX_DIR' | tail -${TAIL_N}1 | sed 's/^[ ]*AC_CONFIG_AUX_DIR(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`""1002 if test ! -d ""$_aux_dir"" ; then1003 _aux_dir=.1004 else1005 $VERBOSE_ECHO ""Detected auxillary directory: $_aux_dir""1006 fi1007 1008 ################################1009 # detect a recursive configure #1010 ################################1011 CONFIG_SUBDIRS=""""1012 _det_config_subdirs=""`grep AC_CONFIG_SUBDIRS $CONFIGURE | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ ]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`""1013 for dir in $_det_config_subdirs ; do1014 if test -d ""`pwd`/$dir"" ; then1015 $VERBOSE_ECHO ""Detected recursive configure directory: `pwd`/$dir""1016 CONFIG_SUBDIRS=""$CONFIG_SUBDIRS `pwd`/$dir""1017 fi1018 done1019 1020 ###########################################################1021 # make sure certain required files exist for GNU projects #1022 ###########################################################1023 _marker_found=""""1024 _marker_found_message_intro='Detected non-GNU marker ""'1025 _marker_found_message_mid='"" in '1026 for marker in foreign cygnus ; do1027 _marker_found_message=${_marker_found_message_intro}${marker}${_marker_found_message_mid}1028 _marker_found=""`grep 'AM_INIT_AUTOMAKE.*'${marker} $CONFIGURE`""1029 if [ ! ""x$_marker_found"" = ""x"" ] ; then1030 $VERBOSE_ECHO ""${_marker_found_message}`basename \""$CONFIGURE\""`""1031 break1032 fi1033 __makefile=`dirname \""$CONFIGURE\""/Makefile.am`1034 if test -f ""$__makefile"" ; then1035 _marker_found=""`grep 'AUTOMAKE_OPTIONS.*'${marker} $__makefile`""1036 if [ ! ""x$_marker_found"" = ""x"" ] ; then1037 $VERBOSE_ECHO ""${_marker_found_message}${__makefile}""1038 break1039 fi1040 fi1041 done1042 if [ ""x${_marker_found}"" = ""x"" ] ; then1043 _suggest_foreign=no1044 for file in AUTHORS COPYING ChangeLog INSTALL NEWS README ; do1045 if [ ! -f $file ] ; then1046 $VERBOSE_ECHO ""Touching ${file} since it does not exist""1047 _suggest_foreign=yes1048 touch $file1049 fi1050 done1051 1052 if [ ""x${_suggest_foreign}"" = ""xyes"" ] ; then1053 $ECHO1054 $ECHO ""Warning: Several files expected of projects that conform to the GNU""1055 $ECHO ""coding standards were not found. The files were automatically added""1056 $ECHO ""for you since you do not have a 'foreign' declaration specified.""1057 $ECHO1058 $ECHO ""Consider adding 'foreign' to AM_INIT_AUTOMAKE in `basename \""$CONFIGURE\""`""1059 __makefile=`dirname \""$CONFIGURE\""/Makefile.am`1060 if test -f ""$__makefile"" ; then1061 $ECHO ""or to AUTOMAKE_OPTIONS in your top-level Makefile.am file.""1062 fi1063 $ECHO1064 fi1065 fi1066 1067 ##################################################1068 # make sure certain generated files do not exist #1069 ##################################################1070 for file in config.guess config.sub ltmain.sh ; do1071 if test -f ""${_aux_dir}/${file}"" ; then1072 $VERBOSE_ECHO ""mv -f \""${_aux_dir}/${file}\"" \""${_aux_dir}/${file}.backup\""""1073 mv -f ""${_aux_dir}/${file}"" ""${_aux_dir}/${file}.backup""1074 fi1075 done1076 1077 ############################1078 # search alternate m4 dirs #1079 ############################1080 SEARCH_DIRS=""""1081 for dir in m4 ; do1082 if [ -d $dir ] ; then1083 $VERBOSE_ECHO ""Found extra aclocal search directory: $dir""1084 SEARCH_DIRS=""$SEARCH_DIRS -I `pwd`/$dir""1085 fi1086 done1087 1088 ######################################1089 # remove any previous build products #1090 ######################################1091 if test -d autom4te.cache ; then1092 $VERBOSE_ECHO ""Found an autom4te.cache directory, deleting it""1093 $VERBOSE_ECHO ""rm -rf autom4te.cache""1094 rm -rf autom4te.cache1095 fi1096# tcl/tk (and probably others) have a customized aclocal.m4, so can't delete it1097# if test -f aclocal.m4 ; then1098# $VERBOSE_ECHO ""Found an aclocal.m4 file, deleting it""1099# $VERBOSE_ECHO ""rm -f aclocal.m4""1100# rm -f aclocal.m41101# fi1102 1103} # end of initialize()1104 1105 1106##############1107# initialize #1108##############1109 1110# stash path1111START_PATH=""`pwd`""1112 1113# Before running autoreconf or manual steps, some prep detection work1114# is necessary or useful. Only needs to occur once per directory, but1115# does need to traverse the entire subconfigure hierarchy to protect1116# files from being clobbered even by autoreconf.1117recursive_protect1118 1119# start from where we started1120cd ""$START_PATH""1121 1122# get ready to process1123initialize1124 1125 1126#########################################1127# DOWNLOAD_GNULIB_CONFIG_GUESS FUNCTION #1128#########################################1129 1130# TODO - should make sure wget/curl exist and/or work before trying to1131# use them.1132 1133download_gnulib_config_guess () {1134 # abuse gitweb to download gnulib's latest config.guess via HTTP1135 config_guess_temp=""config.guess.$$.download""1136 ret=11137 for __cmd in wget curl fetch ; do1138 $VERBOSE_ECHO ""Checking for command ${__cmd}""1139 ${__cmd} --version > /dev/null 2>&11140 ret=$?1141 if [ ! $ret = 0 ] ; then1142 continue1143 fi1144 1145 __cmd_version=`${__cmd} --version | head -n 1 | sed -e 's/^[^0-9]\+//' -e 's/ .*//'`1146 $VERBOSE_ECHO ""Found ${__cmd} ${__cmd_version}""1147 1148 opts=""""1149 case ${__cmd} in1150 wget)1151 opts=""-O"" 1152 ;;1153 curl)1154 opts=""-o""1155 ;;1156 fetch)1157 opts=""-t 5 -f""1158 ;;1159 esac1160 1161 $VERBOSE_ECHO ""Running $__cmd \""${CONFIG_GUESS_URL}\"" $opts \""${config_guess_temp}\""""1162 eval ""$__cmd \""${CONFIG_GUESS_URL}\"" $opts \""${config_guess_temp}\"""" > /dev/null 2>&11163 if [ $? = 0 ] ; then1164 mv -f ""${config_guess_temp}"" ${_aux_dir}/config.guess1165 ret=01166 break1167 fi1168 done1169 1170 if [ ! $ret = 0 ] ; then1171 $ECHO ""Warning: config.guess download failed from: $CONFIG_GUESS_URL""1172 rm -f ""${config_guess_temp}""1173 fi1174}1175 1176 1177##############################1178# LIBTOOLIZE_NEEDED FUNCTION #1179##############################1180libtoolize_needed () {1181 ret=1 # means no, don't need libtoolize1182 for feature in AC_PROG_LIBTOOL AM_PROG_LIBTOOL LT_INIT ; do1183 $VERBOSE_ECHO ""Searching for $feature in $CONFIGURE""1184 found=""`grep \""^$feature.*\"" $CONFIGURE`""1185 if [ ! ""x$found"" = ""x"" ] ; then1186 ret=0 # means yes, need to run libtoolize1187 break1188 fi1189 done1190 return ${ret}1191}1192 1193 1194 1195############################################1196# prepare build via autoreconf or manually #1197############################################1198reconfigure_manually=no1199if [ ""x$HAVE_AUTORECONF"" = ""xyes"" ] ; then1200 $ECHO