Update README.GIT and README.PLUGIN.
authorPekka Riikonen <priikone@silcnet.org>
Wed, 14 May 2014 18:30:05 +0000 (21:30 +0300)
committerPekka Riikonen <priikone@silcnet.org>
Wed, 14 May 2014 18:30:05 +0000 (21:30 +0300)
README.GIT
README.PLUGIN

index 78116f8610914ce38cad9483be35ce84669f3ee2..5c9924ac962a0c93c7270df3a9c437e8f29aaec5 100644 (file)
@@ -1,8 +1,15 @@
 Compiling SILC from GIT Tree
 ============================
 
 Compiling SILC from GIT Tree
 ============================
 
-The GIT tree must be prepared for compilation with Autodist.  You can
-download the latest version of Autodist from:
+These instructions are meant for developers wanting to compile SILC
+directly from the GIT tree.
+
+To prepare the source tree for making official releases, read the
+README.DIST instead.
+
+To be able to prepare the GIT tree for configuration and compilation
+Autodist must be installed into the system.  You can download the latest
+version of Autodist from: 
 
        http://autodist.silc.fi
 
 
        http://autodist.silc.fi
 
@@ -14,9 +21,6 @@ To prepare SILC Client distribution for compilation give the following
 command:
 
        autodist client
 command:
 
        autodist client
-
-Then configure and compile:
-
        ./configure
        make
 
        ./configure
        make
 
@@ -28,23 +32,17 @@ To prepare SILC Server distribution for compilation give the following
 command:
 
        autodist server
 command:
 
        autodist server
-
-Then configure and compile:
-
        ./configure
        make
 
 
        ./configure
        make
 
 
-Preparing SILC Server
-=====================
+Preparing SILC Toolkit
+======================
 
 To prepare SILC Toolkit distribution for compilation give the following
 command:
 
        autodist toolkit
 
 To prepare SILC Toolkit distribution for compilation give the following
 command:
 
        autodist toolkit
-
-Then configure and compile:
-
        ./configure
        make
 
        ./configure
        make
 
@@ -56,8 +54,181 @@ To compile so called INLINE version of the SILC sources give the following
 command:
 
        autodist
 command:
 
        autodist
-
-Then configure and compile:
-
        ./configure
        make
        ./configure
        make
+
+The INLINE version is usually used when doing actual SILC development as
+it makes all code available for compilation, testing and debugging, while
+the other distributions limit the available code only to that used by the
+distribution.
+
+
+Running, Debugging and Developing
+=================================
+
+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,
+you should configure the script with --enable-debug option as it
+compiles SILC with -g (debugging) option and it enables the 
+SILC_LOG_DEBUG* scripts.  Warning is due here:  The debugging produced
+by both cilent and server is very heavy, thus it is common to test
+the programs as follows:
+
+       ./silc -d "*" -f configfile 2>log
+       ./silcd -d "*" -f configfile 2>log
+
+The -d option enables the debug printing.  The argument for the -d option
+is a string that is used to match the output debug.  The example "*" will
+match for everything, and all debugs will be printed.  If you want to
+limit the debugs you want to printout you can give for example a string
+like "*server*,*rng*" to match all functions, and filenames that has
+"server" or "rng" string in them.  Others will not be printed out.  You   
+can freely define regural expressions as debug string.
+
+
+Makefiles and configuration files
+=================================
+
+Developers should never directly write a Makefile.  All Makefiles are 
+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 
+Makefile is generic (common to all distributions) then Makefile.am may be 
+written.  Note that distdefs MUST NOT be used in Makefile.am files, as the 
+autodist will modify them.  See the source tree for examples.  If you 
+change Makefile.ad files, the autodist must be rerun.
+
+The autodist also creates the configure.ac script from which the autoconf 
+then creates the ./configure script.  All changes to configure must 
+always be done into the configure.ad scripts.  All changes made to 
+configure.ac will be lost.  The autodist distdefs may also be used in 
+configure.ad files.  It is also possible to write more than one 
+configure.ad in the source tree.  All configure.ad fragments will be 
+collected from the source tree by autodist and combined into one 
+configure.ac scripts.  After making changes to configure.ad files the 
+autodist must be rerun.
+
+The distdefs are defined in the corresponding distributions.  All 
+distributions live in distdir/ directory.  The distdefs can be used in any 
+file in the source tree, but mainly they are used in Makefile.ad, 
+configure.ad and source and headers files.  See autodist documentation for 
+more information how to use distdefs.
+
+
+What SILC Source Tree Includes
+==============================
+
+SILC Source tree includes a lot more stuff that appears in public 
+distribution.  The source tree includes, for example, internal scripts, 
+configuration files, etc.  These never appear on a public distribution.
+
+Following directories currently exist in SILC source tree.
+
+  apps/
+
+       All applications.
+
+  doc/
+
+        Includes all the SILC documentation.  Some of the documentation
+        are generated when distribution is generated.  The automatically
+        generated files must never be commited to CVS.
+
+  includes/
+
+        Includes SILC include files.
+
+  apps/irssi/
+
+       Includes the Irssi SILC Client.
+
+  lib/
+
+        Includes SILC libraries.  There maybe libraries on the CVS that
+        does not appear on public distribution.
+
+  lib/contrib/
+
+        Contrib directory for routines that some of the platforms might
+        not have.  In that case these routines are provided by the SILC.
+
+  lib/silcclient/
+
+        The SILC Client library. Implementation of the SILC Client without
+        the user interface.  The library provides an interface for user
+        interface designers.
+
+  lib/silccore/
+
+        The SILC Protocol Core library.  Implementation of all the core
+        components of the SILC Protocol.  This is used by all the SILC
+        applications.
+
+  lib/silccrypt/
+
+        The SILC Crypto library. Provides all cryptographic algorithms
+        used in the SILC.  Provides also the Cryptographically strong
+        random number generator.
+
+  lib/silcmath/
+
+        The SILC Math library. Provides the Math and MP routines for
+        SILC applications.  The MP library is actually the GMP.
+
+  lib/silsim/
+
+        The SILC Modules library.  Provides the dynamically loadable
+        modules.
+
+  lib/silcske/
+
+        The SILC Key Exchange (SKE) library.  Implementation of the
+        SKE protocol.  This is used by all SILC applications.
+
+  lib/silcutil/
+
+        The SILC Utility library.  Provides various utility functions
+        for the applications.
+
+  lib/silcutil/unix/
+
+        The SILC Utility library.  Provides various Unix specific utility
+        functions for the applications.
+
+  lib/silcutil/win32/
+
+        The SILC Utility library.  Provides various WIN32 specific utility
+        functions for the applications.
+
+  public_html/
+
+        Includes the official SILC web pages and everything that relates
+        to them.  This directory never appears on public distribution.
+
+  apps/silc/
+
+       Includes an example implementation of ncurses based SILC client.
+       It won't compile with current Toolkit since it is not being 
+       updated.  It is still good example for Toolkit programmer to 
+       figure out how to use SILC Toolkit.
+
+  apps/silcer/
+
+       Includes an example implementation of GUI (Gnome) base SILC
+       client.  Please read silcer/README for more information.
+
+  apps/silcd/
+
+        Includes SILC server.  There can be some extra files that will
+        never appear in public distribution, such as, configuration files.
+
+  win32/
+
+       Includes win32 Toolkit specific files.  It includes MSVC++
+       Workspace files.  The win32/tests includes example code for
+       use of SILC Toolkit and SILC Client Library on Win32 GUI 
+       application.
index f5023687df46c32850f9d5e54c7bd53099551289..b9a147170deea96504fa1f587951cb4c4873568e 100644 (file)
@@ -3,7 +3,7 @@ Compiling SILC Plugin for Irssi
 
 In order to compile the SILC Plugin (instead of the SILC Client), pass 
 the following options to configure, if your Irssi is installed into
 
 In order to compile the SILC Plugin (instead of the SILC Client), pass 
 the following options to configure, if your Irssi is installed into
-/usr/bin/irssi and /usrlib/irssi:
+/usr/bin/irssi and /usr/lib/irssi:
 
        --prefix=/usr
        --with-silc-plugin
 
        --prefix=/usr
        --with-silc-plugin