Initial commit

Change-Id: I6a4444e3c193dae437cd7929f4c39aba7b749efa
diff --git a/INSTALL.FreeBSD b/INSTALL.FreeBSD
new file mode 100644
index 0000000..4625d8a
--- /dev/null
+++ b/INSTALL.FreeBSD
@@ -0,0 +1,125 @@
+See INSTALL file for general instructions on building freeDiameter.
+
+------------------
+QUICK INSTRUCTIONS
+------------------
+
+On FreeBSD-8.0 at least the following ports packages were required (should be same on FreeBSD-7.x):
+ cmake flex bison gnutls
+
+Then the cmake command had to look like:
+ cmake -DFLEX_EXECUTABLE:FILEPATH=/usr/local/bin/flex -DSCTP_USE_MAPPED_ADDRESSES:BOOL=ON ...
+
+
+---------------------
+COMPLETE INSTRUCTIONS
+---------------------
+
+1) If you don't have freeBSD yet:
+   Install minimal system + ports using initial installer /usr/sbin/sysinstall
+
+
+2) Install 'cmake'
+
+ a) from sources:
+    # cd /usr/ports/devel/cmake
+    # make install
+    
+ b) or from package (don't forget to set your PACKAGEROOT appropriately. Ex: set PACKAGEROOT=ftp://ftp.jp.freebsd.org):
+    # pkg_add -v -r cmake
+	
+ 
+3) Install 'mercurial' (optional)
+  (replace 'cmake' by 'mercurial' in the previous command) 
+
+4) Install 'flex' and 'bison', same way.
+
+5) Install 'gnutls' and 'libidn', same way also.
+
+6) Retrieve freeDiameter source code:
+   # cd ~
+   # /usr/local/bin/hg clone http://www.freediameter.net/hg/freeDiameter/
+   
+6b) Make a build directory
+   # mkdir fD-build
+   # cd fD-build
+   
+7) Run cmake for freeDiameter (add other flags as you see fit, see INSTALL for more details)
+   # /usr/local/bin/cmake -DFLEX_EXECUTABLE:FILEPATH=/usr/local/bin/flex -DSCTP_USE_MAPPED_ADDRESSES:BOOL=ON ../freeDiameter
+
+8) Compile, optionnaly test
+   # make
+   # make test
+
+9) Install
+   # make install
+   
+10) Run (the install path can be changed during cmake step):
+   # /usr/local/bin/freeDiameterd --help
+
+
+------------------------------
+app_acct test ADDITIONAL STEPS
+------------------------------
+Here is additional steps in order to run the test for app_acct
+
+1) Install the required packages
+  # pkg_add -v -r postgresql84-client
+  # pkg_add -v -r postgresql84-server
+
+2) Prepare access to the database:
+  # echo postgresql_enable=YES >> /etc/rc.conf
+  # /usr/local/etc/rc.d/postgresql initdb
+  # su - pgsql
+  > /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
+  > /usr/local/bin/createuser root
+  Shall the new user be allowed to create databases? (y/n) y
+  > logout
+  # /usr/local/bin/createdb root
+  # /usr/local/bin/psql root
+  root=# CREATE TABLE incoming_test (
+  root(# recorded_on timestamp with time zone NOT NULL,
+  root(# "Accounting-Record-Type" integer,
+  root(# "Session-Id" bytea,
+  root(# "Accounting-Record-Number" integer,
+  root(# "Route-Record1" bytea,
+  root(# "Route-Record2" bytea,
+  root(# "Route-Record3" bytea,
+  root(# "Route-Record4" bytea );
+  root=# \q
+
+3) configure the sources
+  # make edit_cache
+   BUILD_APP_ACCT:BOOL=ON
+   TEST_APP_ACCT:BOOL=ON
+   TEST_APP_ACCT_CONNINFO:STRING="user=root dbname=root"
+   
+4) run the test
+  # tests/testappacct -d
+  or
+  # make test
+  
+  
+----------------------------------
+Segmentation fault on program exit
+----------------------------------
+
+In case you encounter a segmentation fault on program termination like this:
+  [...]
+  freeDiameterd framework is terminated.
+  Segmentation fault: 11 (core dumped)
+
+with a backtrace like this:
+  #0  0x0000000801a414a0 in ?? ()
+  #1  0x0000000800f99274 in __cxa_finalize () from /lib/libc.so.7
+  #2  0x0000000800f460b7 in exit () from /lib/libc.so.7
+  
+You may try to add the following compilation directive in cmake:
+  -DSKIP_DLCLOSE:BOOL=ON
+
+Note: this segmentation fault was experienced with:
+ - FreeBSD 8.1
+ - 64 bits architecture only.
+ - Profiling mode only.
+
+