X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fautodist%2Fautodist.in;h=b4c1d864296bf6c3e564fb5df326995783ff2cb4;hb=HEAD;hp=e95fc80f7912984ae248ac69761fd91ef6426da9;hpb=4e0d1bf04b2a627f9b313b1d2db9401fe13f707c;p=autodist.git diff --git a/apps/autodist/autodist.in b/apps/autodist/autodist.in index e95fc80..b4c1d86 100755 --- a/apps/autodist/autodist.in +++ b/apps/autodist/autodist.in @@ -2,7 +2,7 @@ # # Author: Pekka Riikonen # -# Copyright (C) 2005 Pekka Riikonen +# Copyright (C) 2005 - 2007 Pekka Riikonen # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -228,7 +228,7 @@ ad_initialize() # Create default distdir if test '!' -f $distdir; then - mkdir -p $distdir + mkdir -p -- $distdir fi # Create Autodist configuration file @@ -529,11 +529,17 @@ EOF # Enable dependencies if requested if test x$am_deps = xtrue; then + # Get list of configure.ad's to get them into deps also + cfs=`find . -type f -name configure\*\.ad` + cfs=`echo $cfs | sed 's/\.\///g'` + cat >> $fname <>autodist.tmp.defs done - distdefs=`sort < autodist.tmp.defs | uniq` + if test -f autodist.tmp.defs; then + distdefs=`sort < autodist.tmp.defs | uniq` + fi distdefs=`echo $distdefs` rm -f autodist.tmp.defs @@ -1450,7 +1480,7 @@ ad_process_noprocess() f="$cur/autodist__noprocess" rm -rf $f - mkdir -p $f || exit 1 + mkdir -p -- $f || exit 1 # First, include them to new location with correct directory structure. old_am_distdir="$am_distdir" @@ -1518,11 +1548,11 @@ ad_process_file() fi # Get defined distribution defines - defs=`awk "/^#ifdef "$DP"_DIST_|^#else "$DP"_DIST_/ { print; }" \ + defs=`awk "/^#ifdef ${DP}_DIST_|^#else ${DP}_DIST_/ { print; }" \ $1 |cut -d'*' -f2 |cut -d' ' -f2 | sort | uniq` # Get explicitly not-defined distribution defines - ndefs=`awk "/^#ifndef "$DP"_DIST_|^#else !"$DP"_DIST_/ { print; }" \ + ndefs=`awk "/^#ifndef ${DP}_DIST_|^#else !${DP}_DIST_/ { print; }" \ $1 |cut -d'*' -f2 |cut -d' ' -f2 | cut -d'!' -f2 | sort | uniq` ad_debug "defs in $1: $defs" @@ -1548,9 +1578,9 @@ ad_process_file() # This also handles the #ifdef's #else (ie. #ifndef) branch. if test x$found = xfalse; then ad_debug "ifdef $d will be excluded (it is NOT defined)" - echo "/^#ifdef $d/,/^#else !$d|^#endif $d/ { next; }" >> $f + echo "/^#ifdef $d$/,/^#else !$d$|^#endif $d$/ { next; }" >> $f else - echo "/^#else !$d/,/^#endif $d/ { next; }" >> $f + echo "/^#else !$d$/,/^#endif $d$/ { next; }" >> $f fi done @@ -1571,9 +1601,9 @@ ad_process_file() # This also handles the #ifndef's #else (ie. #ifdef) branch. if test x$found = xtrue; then ad_debug "ifndef $d will be excluded (it IS defined)" - echo "/^#ifndef $d/,/^#else $d|^#endif $d/ { next; }" >> $f + echo "/^#ifndef $d$/,/^#else $d$|^#endif $d$/ { next; }" >> $f else - echo "/^#else $d/,/^#endif $d/ { next; }" >> $f + echo "/^#else $d$/,/^#endif $d$/ { next; }" >> $f fi done @@ -1629,11 +1659,11 @@ ad_process_source_file() fi # Get defined distribution defines - defs=`awk '/^#ifdef SILC_DIST_|^#else \/\* SILC_DIST_/ { print; }' \ + defs=`awk "/^#ifdef ${DP}_DIST_|^#else \/\* ${DP}_DIST_/ { print; }" \ $1 |cut -d'*' -f2 |cut -d' ' -f2 | sort | uniq` # Get explicitly not-defined distribution defines - ndefs=`awk '/^#ifndef SILC_DIST_|^#else \/\* \!SILC_DIST_/ { print; }' \ + ndefs=`awk "/^#ifndef ${DP}_DIST_|^#else \/\* \!${DP}_DIST_/ { print; }" \ $1 |cut -d'*' -f2 |cut -d' ' -f2 | cut -d'!' -f2 | sort | uniq` ad_debug "defs in $1: $defs" @@ -1659,9 +1689,9 @@ ad_process_source_file() # This also handles the #ifdef's #else (ie. #ifndef) branch. if test x$found = xfalse; then ad_debug "ifdef $d will be excluded (it is NOT defined)" - echo "/^#ifdef $d/,/^#else \/\* \!$d|^#endif \/\* $d/ { next; }" >> $f + echo "/^#ifdef $d$/,/^#else \/\* \!$d |^#endif \/\* $d / { next; }" >> $f else - echo "/^#else \/\* \!$d/,/^#endif \/\* $d/ { next; }" >> $f + echo "/^#else \/\* \!$d /,/^#endif \/\* $d / { next; }" >> $f fi done @@ -1682,9 +1712,9 @@ ad_process_source_file() # This also handles the #ifndef's #else (ie. #ifdef) branch. if test x$found = xtrue; then ad_debug "ifndef $d will be excluded (it IS defined)" - echo "/^#ifndef $d/,/^#else \/\* $d|^#endif \/\* $d/ { next; }" >> $f + echo "/^#ifndef $d$/,/^#else \/\* $d |^#endif \/\* $d / { next; }" >> $f else - echo "/^#else \/\* $d/,/^#endif \/\* $d/ { next; }" >> $f + echo "/^#else \/\* $d /,/^#endif \/\* $d / { next; }" >> $f fi done @@ -1693,7 +1723,7 @@ ad_process_source_file() # Those distdef lines that remain in the file are removed to make # the appearance prettier - echo "/^#ifdef SILC_DIST_|^#endif \/\* SILC_DIST_|^#else \/\* SILC_DIST_|^#else \/\* \!SILC_DIST_|^#ifndef SILC_DIST_/ { next; }" >> $f + echo "/^#ifdef "$DP"_DIST_|^#endif \/\* "$DP"_DIST_|^#else \/\* "$DP"_DIST_|^#else \/\* \!"$DP"_DIST_|^#ifndef "$DP"_DIST_/ { next; }" >> $f echo "{ print; }" >> $f # Execute the script @@ -1713,13 +1743,13 @@ ad_process_source_file() } # -# Processes a non-source file. This is the -p, --process option. +# Processes a file. This is the -p, --process option. # -# Arguments: ad_process +# Arguments: ad_process # ad_process() { - ad_debug "Starting process: $1 $2" + ad_debug "Starting process: $1 $2 $3" nolog=true @@ -1729,19 +1759,47 @@ ad_process() # Parse distribution distribution=`grep "dist:" < autodist.dist | cut -d: -f2` || exit 1 + dist_version=`grep "ver:" < autodist.dist | cut -d: -f2` || exit 1 ad_parse_distribution $distribution false ad_process_distdefs # Process file - ad_make_makefile_am $1 $2 + case "$1" in + makefile) + if test -z $3; then + ad_fatal "File type $1 requires argument" + fi + ad_make_makefile_am $2 $3 + exit 0;; - ad_debug "Ending process: $1 $2" + configure) + ad_make_configure_ac $2 + exit 0;; + + non-source) + if test -z $3; then + ad_fatal "File type $1 requires argument" + fi + ad_process_file $2 $3 false + exit 0;; + + source) + if test -z $3; then + ad_fatal "File type $1 requires argument" + fi + ad_process_source_file $2 $3 false + exit 0;; + + *) + ad_fatal "Unknown file type: $1"; + ;; + esac } # # Run hooks # -# Arguments: ad_run_hooks +# Arguments: ad_run_hooks # ad_run_hooks() { @@ -1756,8 +1814,8 @@ ad_run_hooks() if test '!' -f $i; then ad_fatal "Hook script $i does not exist" fi - ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\"" - sh $i "$distribution" "$dist_version" "$package" || exit 1 + ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\" \"$2\"" + sh $i "$distribution" "$dist_version" "$package" "$2" || exit 1 done ad_log "" @@ -1767,7 +1825,7 @@ ad_run_hooks() # # Run dist hooks # -# Arguments: ad_run_dist_hooks +# Arguments: ad_run_dist_hooks # ad_run_dist_hooks() { @@ -1783,8 +1841,8 @@ ad_run_dist_hooks() ad_fatal "Dist hook script $i does not exist" fi - ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\" \"$am_distdir\"" - sh $i "$distribution" "$dist_version" "$package" "$am_distdir" || exit 1 + ad_log " sh $i \"$distribution\" \"$dist_version\" \"$package\" \"$am_distdir\" \"$2\"" + sh $i "$distribution" "$dist_version" "$package" "$am_distdir" "$2" || exit 1 done ad_log "" @@ -1794,14 +1852,13 @@ ad_run_dist_hooks() ############################################################################### # Autodist code -usage="Usage: autodist [options] [distribution] [version]" +usage="Usage: autodist [OPTIONS] [DISTRIBUTION] [VERSION] [PARAMS]" help="\ Autodist prepares source tree for configuration, compilation and -distribution. Prepares the source tree from the \`autodist.ad' -configuration file. Generates Automake.am files from Automake.ad -files, configure.ac file from configure.ad file(s), generates the -configure script by running Autoconf tool, and generates Makefile.in -files by running Automake tool. +distribution. Generates Automake.am files from Automake.ad files, +configure.ac file from configure.ad file(s), generates the configure +script by running Autoconf tool, and generates Makefile.in files by +running Automake tool. Operation modes: -h, --help print this help, then exit @@ -1811,8 +1868,10 @@ Operation modes: -s, --distdefs [] print distribution defines of , then exit -i, --init initialize Autodist environment, create default distribution directory and distribution, then exit - -p, --process process file into for distribution, - only non-source files can be processed with -p + -p, --process [] + process file into for distribution, + is 'makefile', 'configure', 'non-source' + or 'source' and defines the type of -m, --makedist create and package distribution --gzip create package compressed with gzip (default) --bzip2 create also package compressed with bzip2 @@ -1857,8 +1916,8 @@ while test $# -gt 0; do -p | --process) shift; - if test $# -eq 2; then - ad_process $1 $2 + if test $# -ge 2; then + ad_process $1 $2 $3 else echo "${usage}" 1>&2; fi @@ -1899,7 +1958,7 @@ while test $# -gt 0; do echo "@PACKAGE@ (@PACKAGE_NAME@) $ver" 1>&2; echo "Written by Pekka Riikonen" 1>&2; echo 1>&2; - echo "Copyright (C) 2004 - 2005 SILC Project" 1>&2; + echo "Copyright (C) 2004 - 2007 SILC Project" 1>&2; echo "\ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. " 1>&2; @@ -1954,14 +2013,17 @@ ad_debug "Preparing $distribution distribution version $dist_version" # if test "$DISTDEFS"; then ad_create_distdefs_h -else - ad_fatal "DISTDEFS not defined in $distdir/autodist.conf" +fi + +# Get extra parameters from command line +if test $# != 0; then + shift fi # # Run pre-hooks # -ad_run_hooks "$pre_hooks" +ad_run_hooks "$pre_hooks" "$@" # # Generate the Makefile.am files from Makefile.ad files @@ -1995,11 +2057,12 @@ ad_debug "Creating autodist.dist" echo "dist:$distfile" > autodist.dist echo "ver:$dist_version" >> autodist.dist echo "distdir:$package-$dist_version" >> autodist.dist +echo "params:$@" >> autodist.dist # # Run post-hooks # -ad_run_hooks "$post_hooks" +ad_run_hooks "$post_hooks" "$@" ad_log "Source tree processed successfully." ad_debug "Done, now run ./configure and make."