From: Pekka Riikonen Date: Sat, 16 Apr 2005 17:24:33 +0000 (+0000) Subject: Changes for the new Autodist 1.0. X-Git-Tag: silc.toolkit.0.9.14~12 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=2ef4b55f5bca4417efd1c5abd4f836965913de81;p=silc.git Changes for the new Autodist 1.0. --- diff --git a/CHANGES b/CHANGES index 0d8dddb2..fa8a3230 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +Sat Apr 16 20:23:48 EEST 2005 Pekka Riikonen + + * Added Autodist. + Thu Apr 14 20:25:08 EEST 2005 Pekka Riikonen * Handle empty LIST command reply correcttly in server. Affected diff --git a/Makefile.ad b/Makefile.ad index b238fde0..1ffcbca2 100644 --- a/Makefile.ad +++ b/Makefile.ad @@ -18,6 +18,9 @@ AUTOMAKE_OPTIONS = 1.0 no-dependencies foreign SUBDIRS = \ +#ifdef SILC_DIST_APPS + apps \ +#endif SILC_DIST_APPS #ifdef SILC_DIST_LIB lib \ #endif SILC_DIST_LIB @@ -38,32 +41,21 @@ SUBDIRS = \ doc #endif SILC_DIST_DOC -include $(top_srcdir)/Makefile.defines.in - -dist-bzip: distdir - -chmod -R a+r $(distdir) - -tar chof $(distdir).tar $(distdir) - -bzip2 $(distdir).tar - -rm -rf $(distdir) - EXTRA_DIST = \ + silcdefs.h.in \ +#ifdef SILC_DIST_SILC #ifdef SILC_DIST_TOOLKIT README.CVS README.WIN32 README.MACOSX silcer tutorial \ #endif SILC_DIST_TOOLKIT libtoolfix \ CHANGES CREDITS +#endif SILC_DIST_SILC +#ifdef SILC_DIST_SILC # # Installing of SILC into the system # -etcdir = $(DESTDIR)$(silc_etcdir) -modulesdir = $(DESTDIR)$(silc_modulesdir) -helpdir = $(DESTDIR)$(silc_helpdir) -docdir = $(DESTDIR)$(silc_docdir) -logsdir = $(DESTDIR)$(silc_logsdir) -mandir = $(DESTDIR)@mandir@ - install-dirs: -mkdir -p $(etcdir) -mkdir -p $(modulesdir) @@ -85,11 +77,6 @@ sim-install: -$(INSTALL_DATA) $(srcdir)/lib/silcsim/*.so $(modulesdir)/ #endif SILC_DIST_SIM -examples-install: - -mkdir -p $(docdir)/examples/ - -$(INSTALL_DATA) $(srcdir)/doc/examples/README $(docdir)/examples/ - -$(INSTALL_DATA) $(srcdir)/doc/examples/silc* $(docdir)/examples/ - #ifdef SILC_DIST_CLIENT install-dirs-client: install-dirs -mkdir -p $(helpdir) @@ -134,6 +121,11 @@ etc-install-server: chmod go= $(etcdir)/silcd.conf; \ fi +examples-install: + -mkdir -p $(docdir)/examples/ + -$(INSTALL_DATA) $(srcdir)/doc/examples/README $(docdir)/examples/ + -$(INSTALL_DATA) $(srcdir)/doc/examples/silc* $(docdir)/examples/ + generate-server-key: -@if test '!' -f $(etcdir)/silcd.pub ; then \ $(sbindir)/silcd -C $(etcdir); \ @@ -168,3 +160,6 @@ install-data-hook: \ sim-install #endif SILC_DIST_SIM +include $(top_srcdir)/Makefile.defines.in + +#endif SILC_DIST_SILC diff --git a/Makefile.defines_int.in b/Makefile.defines_int.in index cf4b4304..3f829471 100644 --- a/Makefile.defines_int.in +++ b/Makefile.defines_int.in @@ -50,3 +50,9 @@ silc_modulesdir=@MODULESDIR@ silc_helpdir=@HELPDIR@ silc_docdir=@DOCDIR@ silc_logsdir=@LOGSDIR@ +etcdir = $(DESTDIR)$(silc_etcdir) +modulesdir = $(DESTDIR)$(silc_modulesdir) +helpdir = $(DESTDIR)$(silc_helpdir) +docdir = $(DESTDIR)$(silc_docdir) +logsdir = $(DESTDIR)$(silc_logsdir) +mandir = $(DESTDIR)@mandir@ diff --git a/README.CVS b/README.CVS index 45d60950..4672367d 100644 --- a/README.CVS +++ b/README.CVS @@ -164,17 +164,20 @@ Following directories currently exist in SILC source tree. Howto Compile SILC Source Tree ============================== -After checkout from CVS the SILC source tree must be prepared for -configuration and compilation. To compile the source tree, give, +To be able to prepare the CVS tree for configuration and compilation +Autodist must be installed into the system. You can download the latest +version of Autodist from: - ./autodist + http://silcnet.org/software/download/autodist/ + +To prepare the CVS source tree for configuration and compilation, give: + + autodist ./configure --enable-debug make -The ./autodist is included in to the source tree and it never -appears in public distribution. The script prepares the source tree -by creating configuration scripts and Makefiles. The autodist must be -run every time you make some changes to configuration scripts. +The autodist must be run every time you make some changes to configuration +scripts. As a developer you should read the ./configure script's help by giving ./configure --help and study all of its different options. Also, @@ -200,7 +203,7 @@ Makefiles and configuration files ================================= Developers should never directly write a Makefile. All Makefiles are -always automatically generated by ./autodist and later by ./configure +always automatically generated by autodist and later by ./configure scripts. Instead, developers must write Makefile.ad files or Makefile.am files. If the Makefile needs to include any distdefs (SILC_DIST_XXX), then Makefile.ad (.ad stands for autodist) must be written. If the diff --git a/README.DIST b/README.DIST index c8c24494..e5264ef8 100644 --- a/README.DIST +++ b/README.DIST @@ -25,14 +25,14 @@ compiled and packaged. The ./prepare script is used to prepare distribution for configuration, compilation and packaging. To prepare a specific distribution with specific version, give command: - ./autodist + autodist Where the is the distribution name. It is one of the distributions that was defined in distdir/ directory. The is the version of the distribution that will be prepared. The version format is major.minor.build, for example 0.9.10. Example: - ./autodist client 0.9.15 + autodist client 0.9.15 This prepares 'client' distribution of version 0.9.15. The package will have the version 0.9.15 automatically. @@ -62,11 +62,10 @@ After the distribution is prepared, configured and compiled it can be packaged with the following commands: make -C doc dist-hook - make dist - make dist-bzip + makedist --bzip2 -The first command creates a gzipped distribution and the second creates a -bzipped distribution. +The 'makedist --bzip2' creates the default 'tar.gz' and 'tar.bz2' +distribution. NOTE: Before giving this command, make sure that you do not have any of the tests in the SILC source tree compiled. If they are the binaries diff --git a/autodist b/autodist deleted file mode 100755 index 6c3d078b..00000000 --- a/autodist +++ /dev/null @@ -1,1017 +0,0 @@ -#!/bin/sh -# -# Author: Pekka Riikonen -# -# Copyright (C) 2005 Pekka Riikonen -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN -# NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -############################################################################### - -# XXXXXXXXXXXXXXX -# -# TODO -# -# --makedist -# "pre-dist-hooks" -# "post-dist-hooks" -# "include" -# "exclude" -# "option" -# default conffile in -i -# default distro in -i -# -# NOTE: inherit inherits only distdefs, undefs, hooks, options, includes -# and excludes. It must not inherit others. -# -# XXXXXXXXXXXXXXX - -# Scripts have the following variables in their disposal -# -# distribution distribution name -# dist_version distribution version -# package the package name of the distribution - -# Allowed structure for distdefs in non-source files - -#ifdef SILC_DIST_DEFINE -#endif SILC_DIST_DEFINE - -#ifndef SILC_DIST_DEFINE -#endif SILC_DIST_DEFINE - -#ifdef SILC_DIST_DEFINE -#else !SILC_DIST_DEFINE -#endif SILC_DIST_DEFINE - -#ifndef SILC_DIST_DEFINE -#else SILC_DIST_DEFINE -#endif SILC_DIST_DEFINE - -# Allowed structure for distdefs in source files - -#ifdef SILC_DIST_DEFINE -#endif /* SILC_DIST_DEFINE */ - -#ifndef SILC_DIST_DEFINE -#endif /* SILC_DIST_DEFINE */ - -#ifdef SILC_DIST_DEFINE -#else /* !SILC_DIST_DEFINE */ -#endif /* SILC_DIST_DEFINE */ - -#ifndef SILC_DIST_DEFINE -#else /* SILC_DIST_DEFINE */ -#endif /* SILC_DIST_DEFINE */ - -############################################################################### -# Global variables - -# Distribution subdirectory -distdir="distdir" - -# This current distribution -distribution=default -dist_version=0.0 -package= - -# All inherited distributions in this distribution -inherits= - -# All distribution defines for this distribution -distdefs= - -# All distribution undefines for this distribution -undistdefs= - -# All distribution options -options= - -# All includes -includes= - -# All excludes -excludes= - -# All pre, post pre-dist and post-dist hooks -pre_hooks= -post_hooks= -pre_dist_hooks= -post_dist_hooks= - -# Distribution license and license header -license= -licenseh= - -# Whether to output ad_debug information -debug=false -ver="1.0" -makedist=false - - -############################################################################### -# Configuration file -if test -f "$distdir/autodist.conf"; then - . $distdir/autodist.conf -fi - -DP=$DISTPREFIX - - -############################################################################### -# Functions - -# -# Print out debug information if debugging is enabled. To enable debugging -# set the global variable "debug" to true value. -# -# Arguments: ad_debug -# -ad_debug() -{ - if test x$debug = xtrue; then - echo autodist: $1 - fi -} - -# -# Prints out error message and exits the script. -# -# Arguments: ad_fatal -# -ad_fatal() -{ - echo autodist: error: $1 - exit 1 -} - -# -# Initializes the Autodist environment, creates default distribution -# directory, and default distribution. -# -# Arguments: ad_initialize -# -ad_initialize() -{ - ad_debug "-->$FUNCNAME()" - - # Create default distdir - if test '!' -f $distdir; then - mkdir -p $distdir - fi - - # Create default distribution - # XXX - - ad_debug "<--$FUNCNAME()" -} - -# -# Creates the distdefs header file including defined distdefs -# -# Arguments: ad_create_distdefs_h -# -ad_create_distdefs_h() -{ - ad_debug "-->$FUNCNAME()" - - fname=$DISTDEFS - rm -f $fname - echo "/*" > $fname - echo " Automatically generated by Autodist $ver. Do not edit." >> $fname - echo >> $fname - echo " Generated: `date` by `whoami`" >> $fname - echo " Distribution: $distribution" >> $fname - echo " License: $license" >> $fname - echo "*/" >> $fname - echo >> $fname - echo "#ifndef _"$DP"_DISTDEFS_H" >> $fname - echo "#define _"$DP"_DISTDEFS_H" >> $fname - echo >> $fname - - for i in $distdefs - do - echo "#define $i 1" >>$fname - done - - echo >> $fname - echo "#endif /* _"$DP"_DISTDEFS_H */" >> $fname - - ad_debug "<--$FUNCNAME()" -} - -# -# Creates the main configure script for the distribution. This runs -# the aclocal, autoheader and autoconf tools. -# -# Arguments: ad_make_configure -# -ad_make_configure() -{ - ad_debug "-->$FUNCNAME()" - local run_autoconf=false - - rm -f configure - - if test "$ACLOCAL"; then - ad_debug "Running aclocal" - $ACLOCAL 1>/dev/null 2>/dev/null - if test $? != 0; then - ad_fatal "aclocal failed" - fi - fi - - if test "$AUTOCONF"; then - ad_debug "Running autoconf" - $AUTOCONF - if test $? != 0; then - ad_fatal "autoconf failed" - fi - run_autoconf=true - fi - - if test "$AUTOHEADER"; then - ad_debug "Running autoheader" - $AUTOHEADER - if test $? != 0; then - ad_fatal "autoheader failed" - fi - fi - - if test "$LIBTOOLIZE"; then - ad_debug "Running libtoolize" - $LIBTOOLIZE - if test $? != 0; then - ad_fatal "libtoolize failed" - fi - fi - - if test x$run_autoconf = xtrue; then - if test '!' -f configure; then - ad_fatal "creating configure script failed" - fi - fi - - ad_debug "<--$FUNCNAME()" -} - -# -# Creates the configure.ac script from the configure.ad fragments in -# the source tree. Takes the source configure file as argument which -# is used to create the actual configure.ac. -# -# Arguments: ad_make_configure_ac -# -ad_make_configure_ac() -{ - ad_debug "-->$FUNCNAME(): $1" - - if test '!' -f $1; then - ad_fatal "The configure file '$1' does not exist" - fi - - rm -f configure.ac configure.ad.cfs - - cfs=`find . -name configure\*\.ad` - for i in $cfs - do - if test "x$i" = "x$1"; then - continue - fi - ad_debug "including $i" - cat $i >> configure.ad.cfs - done - - # Header for configure.ac - fname="configure.tmp.ac" - echo "# Automatically generated by Autodist $ver. Do not edit." > $fname - echo "# To make changes edit the $i file in the source tree." >> $fname - echo >> $fname - echo "# Source: $i" >> $fname - echo "# Generated: `date` by `whoami`" >> $fname - echo "# Distribution: $distribution" >> $fname - echo "# License: $license" >> $fname - echo >> $fname - - ad_debug "creating configure.ac" - if test -f configure.ad.cfs; then - sed '/AD_INCLUDE_CONFIGURE/ r configure.ad.cfs' $1 > $fname.tmp - sed -e "/AD_INCLUDE_CONFIGURE/s///" $fname.tmp >> $fname - rm -f configure.ad.cfs $fname.tmp - else - cat $1 >> $fname - fi - - # Process AD_INIT - sed -e "/AD_INIT/s//AC_INIT($distribution, $dist_version, [], $package)/" $fname > $fname.tmp - - # Process for distribution - ad_process_file $fname.tmp configure.ac - rm -f $fname $fname.tmp - - ad_debug "<--$FUNCNAME(): $1" -} - -# -# Creates the Makefile.in files by running the automake tool. -# -# Arguments: ad_make_makefile_ins -# -ad_make_makefile_ins() -{ - ad_debug "-->$FUNCNAME()" - - if test "$AUTOMAKE"; then - ad_debug "Running automake" - $AUTOMAKE - if test $? != 0; then - ad_fatal "automake failed" - fi - fi - - ad_debug "<--$FUNCNAME()" -} - -# -# Creates the Makefile.am files from the Makefile.ad files in the -# source tree. This runs the distribution specific processing for the -# Makefile.ad files. -# -# Arguments: ad_make_makefile_ams -# -ad_make_makefile_ams() -{ - ad_debug "-->$FUNCNAME()" - - files=`find . -name Makefile\.ad` - for i in $files - do - fname=`echo $i | sed s/\.ad//` - - # Header for the Makefile.am - echo "# Automatically generated by Autodist $ver from Makefile.ad. Do not edit." > $fname.am - echo "# To make changes edit the $i file in the source tree." >> $fname.am - echo >> $fname.am - echo "# Source: $i" >> $fname.am - echo "# Generated: `date` by `whoami`" >> $fname.am - echo "# Distribution: $distribution" >> $fname.am - echo "# License: $license" >> $fname.am - echo >> $fname.am - - # Run the distribution processing for this Makefile.ad - ad_debug "Processing $i to be $fname.am" - ad_process_file $i $fname.am - done - - ad_debug "<--$FUNCNAME()" -} - -# -# Processes all files with .ad suffix, with exception of configure*.ad -# and Makefile.ad files, for distribution from the source tree. -# -# Arguments: ad_process_ads -# -ad_process_ads() -{ - ad_debug "-->$FUNCNAME()" - - files=`find . -name \*\.ad \! -name configure\*\.ad \! -name Makefile\.ad` - for i in $files - do - fname=`echo $i | sed s/\.ad//` - - # Header - echo "# Automatically generated by Autodist $ver. Do not edit." > $fname - echo "# To make changes edit the $i file in the source tree." >> $fname - echo >> $fname - echo "# Source: $i" >> $fname - echo "# Generated: `date` by `whoami`" >> $fname - echo "# Distribution: $distribution" >> $fname - echo "# License: $license" >> $fname - echo >> $fname - - # Run the distribution processing for this file - ad_debug "Processing $i to be $fname" - ad_process_file $i $fname - done - - ad_debug "<--$FUNCNAME()" -} - -# -# Processes the entire source tree for distribution. This inspects files -# in the source tree, with exception of any file with .ad suffix, and -# performs distribution processing for the file. The original file is -# replaced with the processed file. This function is used when creating -# the distribution for packaging. -# -# Arguments: ad_process_source_tree -# -ad_process_source_tree() -{ - ad_debug "-->$FUNCNAME(): $1" - - ad_debug "<--$FUNCNAME(): $1" -} - -# -# Creates distribution of the source tree. All files in the distribution -# will be processed and the distribution will be packaged. -# -ad_makedist() -{ - ad_debug "-->$FUNCNAME()" - - ad_debug "<--$FUNCNAME()" -} - -# -# Parses the distribution. Gets all distribution defines from the -# distribution. This also expands all inherited distributions recursively -# to get all inherited distribution defines. From inherited distributions -# their name and package name is not inherited. -# -# Arguments: parse_distribution -# -ad_parse_distribution() -{ - ad_debug "-->$FUNCNAME(): $1" - - if test '!' -f $distdir/$1; then - ad_fatal "Distribution '$1' is not declared" - fi - - # Get inherited - local inhs=`cat $distdir/$1 | grep -v "#" \ - | grep "inherit " | cut -d' ' -f2 | sort | uniq` - - # Get distdefs - local defs=`cat $distdir/$1 | grep -v "#" \ - | grep "define " | cut -d' ' -f2 | sort | uniq` - - if test "$inhs" = "" && test "$defs" = ""; then - ad_fatal "Distribution '$1' does not define anything" - fi - - # Get undefined distdefs - local undefs=`cat $distdir/$1 | grep -v "#" \ - | grep "undef " | cut -d' ' -f2` - - # Get options - local opts=`cat $distdir/$1 | grep -v "#" \ - | grep "option " | cut -d' ' -f2` - - # Get includes - local incs=`cat $distdir/$1 | grep -v "#" \ - | grep "include " | cut -d' ' -f2` - - # Get excludes - local excs=`cat $distdir/$1 | grep -v "#" \ - | grep "exclude " | cut -d' ' -f2` - - ad_debug "inherits=$inhs" - ad_debug "distdefs=$defs" - ad_debug "includes=$incs" - ad_debug "excludes=$excs" - ad_debug "undistdefs=$undefs" - ad_debug "options=$opts" - - # Expand distdefs from inherited distributions - for i in $inhs - do - if test x$1 = x$i; then - ad_fatal "Infinite recursion detected. Fix the '$distdir/$1' \ - distribution to not have 'inherit $i' declared." - fi - - if test '!' -f $distdir/$i; then - ad_fatal "Distribution '$i' is not declared (inherited from '$1')" - fi - - ad_parse_distribution $i true - done - - # Get license - license=`cat $distdir/$1 | grep -v "#" \ - | grep "license " | cut -d' ' -f2` - licenseh=`cat $distdir/$1 | grep -v "#" \ - | grep "license-header " | cut -d' ' -f2` - - ad_debug "license=$license" - ad_debug "licenseh=$licenseh" - - if test x$2 = xfalse; then - # Get distribution name - local dname=`cat $distdir/$1 | grep -v "#" | grep "name "` - - if test "$dname"; then - distribution=$dname - fi - - # Get distribution package name (optional) - local dpname=`cat $distdir/$1 | grep -v "#" \ - | grep "package " | cut -d' ' -f2` - - if test "$dpname"; then - package=$dpname - else - package=$distribution - fi - - ad_debug "distribution=$distribution" - ad_debug "package=$package" - fi - - # Get hooks (optional) - local prh=`cat $distdir/$1 | grep -v "#" \ - | grep "pre-hook " | cut -d' ' -f2` - local poh=`cat $distdir/$1 | grep -v "#" \ - | grep "post-hook " | cut -d' ' -f2` - local prdh=`cat $distdir/$1 | grep -v "#" \ - | grep "pre-dist-hook " | cut -d' ' -f2` - local podh=`cat $distdir/$1 | grep -v "#" \ - | grep "post-dist-hook " | cut -d' ' -f2` - - # Return to caller - inherits="$inherits $inhs" - distdefs="$distdefs $defs" - includes="$includes $incs" - excludes="$excludes $incs" - undistdefs="$undistdefs $undefs" - options="$options $opts" - pre_hooks="$pre_hooks $prh" - post_hooks="$post_hooks $poh" - pre_dist_hooks="$pre_dist_hooks $prdh" - post_dist_hooks="$post_dist_hooks $podh" - - ad_debug "<--$FUNCNAME(): $1" -} - -# -# Processes parsed distdefs. Removes duplicates, and undefined distdefs -# from the distdefs. -# -# Arguments: ad_process_distdefs -# -ad_process_distdefs() -{ - ad_debug "-->$FUNCNAME()" - - # Remove all undefined distribution defines - for i in $undistdefs - do - ad_debug "undefining $i distdef" - distdefs=`echo $distdefs | sed s/$i//` - done - - rm -f autodist.tmp.defs autodist.pre.hooks autodist.post.hooks - rm -f autodist.pre.dist.hooks autodist.post.dist.hooks - - # Remove duplicate distdefs - for i in $distdefs - do - echo $i >>autodist.tmp.defs - done - distdefs=`cat autodist.tmp.defs | sort | uniq` - distdefs=`echo $distdefs` - rm -f autodist.tmp.defs - - ad_debug "distdefs=$distdefs" - - # Remove duplicate pre-hooks - for i in $pre_hooks - do - echo ". $i" >>autodist.tmp.defs - done - if test -f autodist.tmp.defs; then - cat autodist.tmp.defs | sort | uniq > autodist.pre.hooks - rm -f autodist.tmp.defs - fi - - # Remove duplicate post-hooks - for i in $post_hooks - do - echo ". $i" >>autodist.tmp.defs - done - if test -f autodist.tmp.defs; then - cat autodist.tmp.defs | sort | uniq > autodist.post.hooks - rm -f autodist.tmp.defs - fi - - # Remove duplicate pre-dist-hooks - for i in $pre_dist_hooks - do - echo ". $i" >>autodist.tmp.defs - done - if test -f autodist.tmp.defs; then - cat autodist.tmp.defs | sort | uniq > autodist.pre.dist.hooks - rm -f autodist.tmp.defs - fi - - # Remove duplicate post-dist-hooks - for i in $post_dist_hooks - do - echo ". $i" >>autodist.tmp.defs - done - if test -f autodist.tmp.defs; then - cat autodist.tmp.defs | sort | uniq > autodist.post.dist.hooks - rm -f autodist.tmp.defs - fi - - ad_debug "<--$FUNCNAME()" -} - -# -# Process a file given as argument for the distribution. -# -# Arguments: process_file -# -ad_process_file() -{ - local found=false - - ad_debug "-->$FUNCNAME(): $1 $2" - - # Process only regular files - if test '!' -f $1; then - ad_debug "<--$FUNCNAME(): $1 $2" - return - fi - - ad_debug "Getting #ifdef's and #ifndef's" - - # Get defined distribution defines - local defs=`awk "/#ifdef "$DP"_DIST_|#else "$DP"_DIST_/ { print; }" \ - $1 |cut -d'*' -f2 |cut -d' ' -f2 | sort | uniq` - - # Get explicitly not-defined distribution defines - local ndefs=`awk "/#ifndef "$DP"_DIST_|#else !"$DP"_DIST_/ { print; }" \ - $1 |cut -d'*' -f2 |cut -d' ' -f2 | cut -d'!' -f2 | sort | uniq` - - ad_debug "defs=$defs" - ad_debug "ndefs=$ndefs" - - # Create the script to include and exclude stuff in the file according - # to the distribution defines - local f=autodist.tmp.script - rm -f $f - - # ifdefs - ad_debug "processing ifdefs" - for d in $defs - do - found=false - for i in $distdefs - do - if test x$d = x$i; then - found=true - break - fi - done - - # If distribution define was not found exclude those lines from the 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 - else - echo "/^#else !$d/,/^#endif $d/ { next; }" >> $f - fi - done - - # ifndefs - ad_debug "processing ifndefs" - for d in $ndefs - do - found=false - for i in $distdefs - do - if test x$d = x$i; then - found=true - break - fi - done - - # If distribution define was found exclude those lines from the 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 - else - echo "/^#else $d/,/^#endif $d/ { next; }" >> $f - fi - done - - # Now process the file with the script - if test -f $f; then - - # Those distdef lines that remain in the file are removed to make - # the appearance prettier - echo "/^#ifdef "$DP"_DIST_|^#endif "$DP"_DIST_|^#else "$DP"_DIST_|^#else !"$DP"_DIST_|^#ifndef "$DP"_DIST_/ { next; }" >> $f - echo "{ print; }" >> $f - - # Execute the script - awk -f $f $1 >> $2 - fi - - rm -f $f - - ad_debug "<--$FUNCNAME(): $1 $2" -} - - -# -# Process a source file given as argument for the distribution. -# -# Arguments: process_source_file -# -ad_process_source_file() -{ - local found=false - - ad_debug "-->$FUNCNAME(): $1 $2" - - # Process only regular files - if test '!' -f $1; then - ad_debug "<--$FUNCNAME(): $1 $2" - return - fi - - ad_debug "Getting #ifdef's and #ifndef's" - - # Get defined distribution defines - local defs=`awk '/#ifdef SILC_DIST_|#else \/\* SILC_DIST_/ { print; }' \ - $1 |cut -d'*' -f2 |cut -d' ' -f2 | sort | uniq` - - # Get explicitly not-defined distribution defines - local ndefs=`awk '/#ifndef SILC_DIST_|#else \/\* \!SILC_DIST_/ { print; }' \ - $1 |cut -d'*' -f2 |cut -d' ' -f2 | cut -d'!' -f2 | sort | uniq` - - ad_debug "defs=$defs" - ad_debug "ndefs=$ndefs" - - # Create the script to include and exclude stuff in the file according - # to the distribution defines - local f=autodist.tmp.script - rm -f $f - - # ifdefs - ad_debug "processing ifdefs" - for d in $defs - do - found=false - for i in $distdefs - do - if test x$d = x$i; then - found=true - break - fi - done - - # If distribution define was not found exclude those lines from the 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 - else - echo "/^#else \/\* \!$d/,/^#endif \/\* $d/ { next; }" >> $f - fi - done - - # ifndefs - ad_debug "processing ifndefs" - for d in $ndefs - do - found=false - for i in $distdefs - do - if test x$d = x$i; then - found=true - break - fi - done - - # If distribution define was found exclude those lines from the 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 - else - echo "/^#else \/\* $d/,/^#endif \/\* $d/ { next; }" >> $f - fi - done - - # Now process the file with the script - if test -f $f; then - - # 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 "{ print; }" >> $f - - # Execute the script - awk -f $f $1 >> $2 - fi - - rm -f $f - - ad_debug "<--$FUNCNAME(): $1 $2" -} - - -############################################################################### -# Autodist code - -usage="Usage: autodist [options] [distribution] [version]" -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. - -Operation modes: - -h, --help print this help, then exit - -V, --version print version number, then exit - -v, --verbose verbosely report processing - -d, --distdir search distributions from - -s, --distdefs [] print distribution defines of , then exit - -m, --makedist create and package distribution - -i, --init initialize Autodist environment, create default - distribution directory and distribution, then exit" - -# -# Process command line arguments -# -while test $# -gt 0; do - case "${1}" in - - -d |--distdir) - shift; - test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } - distdir="${1}"; - shift;; - - --list) - exit 0;; - - -s | --distdefs) - shift; - if test $# -eq 0; then - ad_parse_distribution $distribution false - echo "Distribution: ${distribution}" 1>&2; - else - ad_parse_distribution $1 false - echo "Distribution: ${1}" 1>&2; - fi - ad_process_distdefs - echo "Distdefs:" 1>&2; - echo "${distdefs}"; - exit 0;; - - -i | --init) - ad_initialize; - exit 0;; - - -m | --makedist) - makdist=true - shift;; - - -v | --verbose) - debug=true - shift;; - - -h | --help | --h*) - echo "${usage}" 1>&2; - echo 1>&2; - echo "${help}" 1>&2; - echo 1>&2; - exit 0;; - - -V | --version) - echo "autodist (SILC Autodist) $ver" 1>&2; - echo "Written by Pekka Riikonen" 1>&2; - echo 1>&2; - echo "Copyright (C) 2004 - 2005 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; - exit 0;; - - --) - shift; - break;; - - -*) - echo "${usage}" 1>&2; - exit 1;; - - *) - break;; - - esac -done - -# -# Parse the requested distribution -# -if test $# != 0; then - distribution="${1}"; - shift -fi -ad_parse_distribution $distribution false -ad_process_distdefs - -if test $# != 0; then - dist_version="${1}"; -fi -ad_debug "Preparing source tree for configuration and compilation..." -ad_debug "Preparing $distribution distribution version $dist_version" - -# -# Create the distribution defines header file -# -if test "$DISTDEFS"; then - ad_create_distdefs_h -else - ad_fatal "DISTDEFS not defined in $distdir/autodist.conf" -fi - -# -# Run pre-hooks -# -if test -f autodist.pre.hooks; then - . autodist.pre.hooks - rm -f autodist.pre.hooks -fi - -# -# Generate the Makefile.am files from Makefile.ad files -# -ad_make_makefile_ams - -# -# Generate the configure.ac from configure.ad file(s) -# -ad_make_configure_ac ./configure.ad - -# -# Generate configure script -# -ad_make_configure - -# -# Generate Makefile.in files -# -ad_make_makefile_ins - -# -# Process all files with .ad suffix for distribution processing -# -ad_process_ads - -# -# Run post-hooks -# -if test -f autodist.post.hooks; then - . autodist.post.hooks - rm -f autodist.post.hooks -fi - -# -# Generate distribution, if requested -# -if test x$makedist = xtrue; then - ad_debug "Creating distribution" - - exit 0 -fi - -ad_debug "Done, now run ./configure and make." -exit 0 diff --git a/configure.ad b/configure.ad index 1b9dd93c..410d19f2 100644 --- a/configure.ad +++ b/configure.ad @@ -19,11 +19,15 @@ AD_INIT AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE AC_PREREQ(2.52) -AC_CONFIG_HEADERS(includes/silcdefs.h) +AC_CONFIG_HEADERS(silcdefs.h) AC_PROG_INSTALL AC_PROG_MAKE_SET +AC_PROG_LN_S +AC_SUBST(LN_S) +AC_PATH_PROG(sedpath, sed) + #ifdef SILC_DIST_COMPILER # Put here any platform specific stuff # @@ -44,9 +48,6 @@ AC_PROG_CC AC_C_INLINE AC_C_CONST -AC_PROG_LN_S -AC_SUBST(LN_S) - __SILC_HAVE_PTHREAD="" __SILC_HAVE_SIM="" __SILC_ENABLE_DEBUG="" @@ -54,7 +55,6 @@ __SILC_ENABLE_DEBUG="" AC_PROG_RANLIB AC_DISABLE_SHARED AC_PROG_LIBTOOL -AC_PATH_PROG(sedpath, sed) # Header checking # @@ -337,7 +337,7 @@ AC_SUBST(FIX_SHA1) # Default installation destination # #ifdef SILC_DIST_AUTODIST -AC_PREFIX_DEFAULT(/usr/local/) +AC_PREFIX_DEFAULT(/usr/local) #else !SILC_DIST_AUTODIST AC_PREFIX_DEFAULT(/usr/local/silc) #endif SILC_DIST_AUTODIST @@ -477,10 +477,10 @@ AC_ARG_WITH(silcd-pid-file, AC_SUBST(PIDFILE) #endif SILC_DIST_SERVER +#ifdef SILC_DIST_COMPILER ## ## With/without checkings ## -#ifdef SILC_DIST_COMPILER # # SILC library checking @@ -1105,8 +1105,6 @@ AD_INCLUDE_CONFIGURE # AC_SUBST(SILC_TOP_SRCDIR) AC_SUBST(LIBS) -INCLUDE_DEFINES_INT="include \$(top_srcdir)/Makefile.defines_int" -AC_SUBST(INCLUDE_DEFINES_INT) AC_SUBST(SILC_LIB_INCLUDES) AC_SUBST(__SILC_HAVE_PTHREAD) AC_SUBST(__SILC_HAVE_SIM) @@ -1122,6 +1120,9 @@ if test x$libtoolfix = xtrue; then fi AM_CONDITIONAL(SILC_LIBTOOLFIX, test x$libtoolfix = xtrue) +INCLUDE_DEFINES_INT="include \$(top_srcdir)/Makefile.defines_int" +AC_SUBST(INCLUDE_DEFINES_INT) + #endif SILC_DIST_COMPILER # @@ -1129,12 +1130,19 @@ AM_CONDITIONAL(SILC_LIBTOOLFIX, test x$libtoolfix = xtrue) # AC_CONFIG_FILES( Makefile +#ifdef SILC_DIST_DOC +doc/Makefile +#endif SILC_DIST_DOC +#ifdef SILC_DIST_COMPILER Makefile.defines Makefile.defines_int -doc/Makefile includes/Makefile includes/silcversion.h includes/silcincludes.h +#endif SILC_DIST_COMPILER +#ifdef SILC_DIST_APPS +apps/Makefile +#endif SILC_DIST_APPS ) #ifdef SILC_DIST_TOOLKIT @@ -1275,6 +1283,7 @@ if test x$has_threads = xtrue; then fi echo " Multi-threads support .........: $threads" echo " Debugging enabled .............: $summary_debug" -#endif SILC_DIST_COMPILER echo "" echo "Compile the sources with 'make' or 'gmake' command." +#endif SILC_DIST_COMPILER + diff --git a/distdir/BSD b/distdir/BSD new file mode 100644 index 00000000..53293212 --- /dev/null +++ b/distdir/BSD @@ -0,0 +1,25 @@ + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/distdir/BSD-header b/distdir/BSD-header new file mode 100644 index 00000000..8aa2ac3b --- /dev/null +++ b/distdir/BSD-header @@ -0,0 +1,8 @@ + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the conditions listed in the + COPYING file are met. + + + diff --git a/distdir/GPL b/distdir/GPL new file mode 100644 index 00000000..d60c31a9 --- /dev/null +++ b/distdir/GPL @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/distdir/GPL-header b/distdir/GPL-header new file mode 100644 index 00000000..f217f102 --- /dev/null +++ b/distdir/GPL-header @@ -0,0 +1,8 @@ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. diff --git a/distdir/autodist b/distdir/autodist index b4f8097d..0aa0831f 100644 --- a/distdir/autodist +++ b/distdir/autodist @@ -1,4 +1,18 @@ name SILC Autodist package autodist +bug-report autodist-bugs@silcnet.org + +license apps/autodist/COPYING +license-header distdir/GPL-header distdir/BSD-header + define SILC_DIST_AUTODIST -exclude CHANGES CREDITS libtoolfix TODO README* +define SILC_DIST_APPS + +include apps/autodist/INSTALL INSTALL +include apps/autodist/AUTHORS AUTHORS +include apps/autodist/README README +exclude apps/autodist/INSTALL apps/autodist/AUTHORS apps/autodist/README +exclude TODO README.* ltmain.sh + +noprocess apps/autodist/doc apps/autodist/tests + diff --git a/distdir/autodist.conf b/distdir/autodist.conf index 84044dfc..8a279ae8 100644 --- a/distdir/autodist.conf +++ b/distdir/autodist.conf @@ -1,9 +1,49 @@ +# Autodist configuration file + +# By default distdef prefix is '_DIST_'. To add your own prefix set the +# prefix here. NOTE: Remember to change all 'define' directives in +# distributions to use the new prefix if you change it. Example: +# +# DISTPREFIX="SILC" +# +# Will set the distdef prefix as 'SILC_DIST_'. +# DISTPREFIX="SILC" +# The distdef header will be created by the Autodist. It need to be included +# in the source code in order for the preprocessor to respect distdef +# conditionals in source code. Example: +# +# DISTDEFS="include/distdefs.h" +# DISTDEFS="includes/silcdistdefs.h" +# Location of the aclocal tool. If this is omitted the Autodist will not +# run aclocal. User need to run it manually then. +# ACLOCAL="aclocal" + +# Location of the autoheader tool. If this is omitted the Autodist will not +# run autoheader. User need to run it manually then. +# AUTOHEADER="autoheader" + +# Location of the autoconf tool. If this is omitted the Autodist will not +# run autoconf. User need to run it manually then. +# AUTOCONF="autoconf" + +# Location of the automake tool. If this is omitted the Autodist will not +# run automake. User need to run it manually then. +# AUTOMAKE="automake" + +# Location of the libtoolize tool. This option should be omitted if your +# source tree does not use libtool. +# LIBTOOLIZE="libtoolize --automake --copy" + +# Location of the make program. This must be specified in order to be +# able to create distributions. +# +MAKE="make" diff --git a/distdir/client b/distdir/client index 80ca5138..76ec28b1 100644 --- a/distdir/client +++ b/distdir/client @@ -1,5 +1,6 @@ name Client package silc-client +bug-report silc-devel@lists.silcnet.org inherit common define SILC_DIST_CLIENT define SILC_DIST_CLIENTLIB diff --git a/distdir/common b/distdir/common index e21636c2..39a2a5bf 100644 --- a/distdir/common +++ b/distdir/common @@ -1,5 +1,6 @@ # Common SILC source tree distdefs -option no-dist template +option template +define SILC_DIST_SILC define SILC_DIST_LIB define SILC_DIST_INCLUDES define SILC_DIST_DOC diff --git a/distdir/default b/distdir/default index 376953a7..a000fd97 100644 --- a/distdir/default +++ b/distdir/default @@ -1,20 +1,16 @@ +# Default distribution +# +# NOTE: By default, this distribution cannot be packaged. Take away the +# 'no-dist option if you whish to use this as a normal distribution. +# +# If you add new distributions into distdir/ inherit them here. +# +option no-dist + # Default distribution for preparing raw CVS sources. inherit common inherit client inherit server inherit toolkit -option no-dist define SILC_DIST_INPLACE pre-hook distdir/pre-run - -#include README.FOOBAR foobar.dir -#exclude distdir foobar -#define SILC_DIST_DEFAULT -#undef SILC_DIST_FOOBAR -#pre-hook scripts/foobar-pre.sh -#post-hook scripts/foobar-post.sh -#pre-dist-hook scripts/foobar-dist-pre.sh -#post-dist-hook scripts/foobar-dist-post.sh -#option no-dist -#option no-inherit -#option template diff --git a/distdir/pre-run b/distdir/pre-run index 45a898d0..cc716ca1 100644 --- a/distdir/pre-run +++ b/distdir/pre-run @@ -1,3 +1,9 @@ +#!/bin/sh + +distribution=$1 +dist_version=$2 +package=$3 + # preparing irssi echo "Preparing irssi" file=irssi/irssi-version.h.in diff --git a/distdir/server b/distdir/server index e73ee7ff..15eaecc4 100644 --- a/distdir/server +++ b/distdir/server @@ -1,4 +1,7 @@ name Server package silc-server +bug-report silc-devel@lists.silcnet.org +license distdir/BSD +license-header distdir/GPL-header distdir/BSD-header inherit common define SILC_DIST_SERVER diff --git a/distdir/toolkit b/distdir/toolkit index d88f13de..180ab29a 100644 --- a/distdir/toolkit +++ b/distdir/toolkit @@ -1,8 +1,13 @@ name Toolkit package silc-toolkit +bug-report silc-devel@lists.silcnet.org inherit common inherit client inherit server define SILC_DIST_TOOLKIT -include README.CVS README.WIN32 README.MACOSX silcer tutorial +include README.CVS +include README.WIN32 +include README.MACOSX +include silcer +include tutorial pre-hook distdir/pre-run diff --git a/doc/Makefile.ad b/doc/Makefile.ad index 834caf10..f6c1b5f3 100644 --- a/doc/Makefile.ad +++ b/doc/Makefile.ad @@ -94,8 +94,8 @@ EXTRA_DIST = \ #endif SILC_DIST_SERVER #ifdef SILC_DIST_TOOLKIT toolkit \ -#endif SILC_DIST_TOOLKIT CodingStyle \ +#endif SILC_DIST_TOOLKIT FAQ \ example_silcd.conf \ silcalgs.conf \ diff --git a/includes/Makefile.ad b/includes/Makefile.ad index 946ac7e5..9abf2d80 100644 --- a/includes/Makefile.ad +++ b/includes/Makefile.ad @@ -34,5 +34,4 @@ EXTRA_DIST = \ silcbeos.h \ silcos2.h \ silcversion.h.in \ - silcdistdefs.h \ - silcdefs.h.in + silcdistdefs.h