From 3e424c7e535b8cbddf8b9c48ef134047d56cebf6 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Wed, 14 May 2014 21:30:05 +0300 Subject: [PATCH] Update README.GIT and README.PLUGIN. --- README.GIT | 203 ++++++++++++++++++++++++++++++++++++++++++++++---- README.PLUGIN | 2 +- 2 files changed, 188 insertions(+), 17 deletions(-) diff --git a/README.GIT b/README.GIT index 78116f86..5c9924ac 100644 --- a/README.GIT +++ b/README.GIT @@ -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. diff --git a/README.PLUGIN b/README.PLUGIN index f5023687..b9a14717 100644 --- a/README.PLUGIN +++ b/README.PLUGIN @@ -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 -- 2.24.0