libafs: reset global icl set pointers on shutdown
[openafs.git] / README.DEVEL
index 3c3d2b9..7ad8170 100644 (file)
@@ -7,8 +7,8 @@ later you can reformat for this style with the following option:
 -npro -nbad -bap -nbc -bbo -br -ce -cdw -brs -ncdb -cp1 -ncs -di2 -ndj -nfc1
 -nfca -i4 -lp -npcs -nprs -psl -sc -nsob -ts8
 
-Do not use $< in any cross-platform dir as it requires a reasonable
-make that is not available on all systems.
+Do not use $< for non-pattern rules in any cross-platform dir as it
+requires a reasonable make that is not available on all systems.
 
 Do not have build rules that build multiple targets. Make doesn't seem able
 to handle this, and it interferes with -j builds. (In particular, build the
@@ -21,7 +21,7 @@ way to do this?)
 
 -- Prototyping and Style --
 Prototypes for all source files in a given dir DDD should be placed
-int the file DDD/DDD_prototypes.h. All externally used (either API
+in the file DDD/DDD_prototypes.h. All externally used (either API
 or used by other source files) routines and variables should be
 prototyped in this file.
 
@@ -34,7 +34,7 @@ Format of the prototype files should look like:
 
        #ifndef AFS_SRC_DDD_PROTO_H
        #define AFS_SRC_DDD_PROTO_H
-       
+
        /* filename.c */
        prototypes
 
@@ -47,10 +47,11 @@ In most of the existing prototypes, the define is DDD_PROTOTYPES_H, which is
 probably ok as well.
 
 The declaration of the routines should be done in ANSI style. If at some
-later date, it is determined that prototypes don't work on some platform 
+later date, it is determined that prototypes don't work on some platform
 properly, we can use ansi2knr during the compile.
 
-       rettype routine(argtype arg)
+       rettype
+       routine(argtype arg)
        {
 
        }
@@ -61,13 +62,13 @@ and should have (void) if no arguments are taken.
 Header files should not contain macros or other definitions unless they
 are used across multiple source files.
 
-All routines should be declared static if they are not used outside that 
+All routines should be declared static if they are not used outside that
 source file.
 
 Compiles on gcc-using machines should strive to handle using
 -Wstrict-prototypes -Werror. (this may take a while)
 
-Routines shall be defined in source prior to use if possible, and 
+Routines shall be defined in source prior to use if possible, and
 prototyped in block at top of file if static.
 
 API documentation in the code should be done using Qt-style Doxygen
@@ -81,3 +82,24 @@ Suggested compiler flags:
        Solaris Workshop CC: -fd -v
                (You might not want the -fd, it isn't really useful, just complains about the
                K&R style functions, but -v gives useful info.)
+
+\f
+Dependencies required to build OpenAFS from source
+--------------------------------------------------
+The following packages are required to build all of the OpenAFS code
+from source on various operating systems:
+
+On Debian:
+- autoconf, automake, bison, comerr-dev, cpio, flex, libkrb5-dev,
+  libncurses5-dev, libpam0g-dev, libxml2-utils, perl, pkg-config;
+- libfuse-dev (for the FUSE-based user-mode client);
+- dblatex, docbook-xsl, doxygen, xsltproc (for documentation);
+- debhelper, hardening-wrapper, dkms (to build the Debian packages)
+
+On FreeBSD:
+- autoconf, automake, libtool;
+- fusefs-libs, pkgconf (for the FUSE-based user-mode client);
+- perl, dblatex, docbook-xsl, libxslt, python, ruby, zip (for documentation)
+
+In addition, FreeBSD systems require kernel sources and a configured kernel
+build directory (see section "FreeBSD Notes" in the README file).