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
 ============================
 
-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
 
@@ -14,9 +21,6 @@ To prepare SILC Client distribution for compilation give the following
 command:
 
        autodist client
-
-Then configure and compile:
-
        ./configure
        make
 
@@ -28,23 +32,17 @@ To prepare SILC Server distribution for compilation give the following
 command:
 
        autodist server
-
-Then configure and compile:
-
        ./configure
        make
 
 
-Preparing SILC Server
-=====================
+Preparing SILC Toolkit
+======================
 
 To prepare SILC Toolkit distribution for compilation give the following
 command:
 
        autodist toolkit
-
-Then configure and compile:
-
        ./configure
        make
 
@@ -56,8 +54,181 @@ To compile so called INLINE version of the SILC sources give the following
 command:
 
        autodist
-
-Then configure and compile:
-
        ./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
-/usr/bin/irssi and /usrlib/irssi:
+/usr/bin/irssi and /usr/lib/irssi:
 
        --prefix=/usr
        --with-silc-plugin