silc/
- Includes SILC client. There can be some extra files that will
- never appear in public distribution, such as, configuration files.
+ 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.
+
+ silcer/
+
+ Includes an example implementation of GUI (Gnome) base SILC
+ client. Please read silcer/README for more information.
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.
+
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:
+
+ http://silcnet.org/software/download/autodist/
- ./prepare
+To prepare the CVS source tree for configuration and compilation, give:
+
+ autodist
./configure --enable-debug
make
-The ./prepare script 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 prepare must be
-run every time you make some changes to configuration scripts (however,
-making changes to Makefile.am's does not require running ./prepare).
+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,
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
-
-Do not give the -d options if you do not want to dump the debugging.
-
-
-Howto Clean SILC Source Tree
-============================
-
-To entirely clear the source tree to the state after it was checked out
-from CVS, give,
-
- ./prepare-clean
+ ./silc -d "*" -f configfile 2>log
+ ./silcd -d "*" -f configfile 2>log
-This calls `make distclean' plus removes automatically generated files
-by hand. It also removes *.log files. However, it will not remove
-any other files you might have created.
+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 ./prepare and later by ./configure
-scripts. Instead, developers must write Makefile.am files. There
-are plenty of examples what they should look like. If you change
-Makefile.am during development you don't have to run ./prepare, just
-run normal make.
-
-Configuration files are the files that ./prepare automatically generates
-and what will be included into public distribution. ./prepare creates
-for example the ./configure script that is not commited to the CVS.
-`configure.in' is the file that developers must edit to change ./configure
-script. After changing one must run ./prepare.
+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.