Index: installer/CMakeLists.txt
===================================================================
--- installer/CMakeLists.txt	(revision db5a963a92aaee3b23bafb50ef38ebf6f65d6211)
+++ installer/CMakeLists.txt	(revision e16e1244b069bf7f503ff00586de9b4ff9146d33)
@@ -1,5 +1,5 @@
 # => http://www.cmake.org/Wiki/CMake:CPackPackageGenerators
 
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.0)
 project(TOL-Installer)
 
@@ -8,15 +8,19 @@
 endif(NOT TOL_RUNTIME_DIR)
 
-set(CPACK_PACKAGE_VENDOR "Tol-Project")
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Time Oriented Language")
+set(CPACK_PACKAGE_NAME "TOL")
 set(CPACK_PACKAGE_VERSION_MAJOR "3")
 set(CPACK_PACKAGE_VERSION_MINOR "3")
 set(CPACK_PACKAGE_VERSION_PATCH "0")
 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Time Oriented Language")
+set(CPACK_PACKAGE_VENDOR "TOL Project")
 set(CPACK_PACKAGE_CONTACT "Pedro Gea <pgea@bayesforecast.com>")
 
-if( WIN32 )
-  add_subdirectory( windows )
+if(WIN32)
+  add_subdirectory(windows)
 else(WIN32)
-  add_subdirectory( linux )
-endif( WIN32 )
+  add_subdirectory(linux)
+  #! Sacar el include del IF despuÃ©s de incluir los PARENT_SCOPE en Windows
+  #! y comprobar que todo funciona adecuadamente.
+  include(CPack)
+endif(WIN32)
Index: installer/linux/CMakeLists.txt
===================================================================
--- installer/linux/CMakeLists.txt	(revision db5a963a92aaee3b23bafb50ef38ebf6f65d6211)
+++ installer/linux/CMakeLists.txt	(revision e16e1244b069bf7f503ff00586de9b4ff9146d33)
@@ -1,85 +1,104 @@
-macro( subdirlist result dir )
-  set( ExtraMacroArgs ${ARGN} )
-  message( "GLOB children RELATIVE ${dir} ${dir}/*" )
-  file( GLOB children RELATIVE ${dir} ${dir}/* )
-  set( dirlist "" )
-  foreach( child ${children} )
-    if( IS_DIRECTORY ${dir}/${child} )
-      if( ExtraMacroArgs STREQUAL RELATIVE )
+
+macro(subdirlist result dir)
+  set(ExtraMacroArgs ${ARGN})
+  message("GLOB children RELATIVE ${dir} ${dir}/*")
+  file(GLOB children RELATIVE ${dir} ${dir}/*)
+  set(dirlist "")
+  foreach(child ${children})
+    if(IS_DIRECTORY ${dir}/${child})
+      if(ExtraMacroArgs STREQUAL RELATIVE)
 	list(APPEND dirlist ${child})
-      else( ExtraMacroArgs STREQUAL RELATIVE )
-	list(APPEND dirlist ${dir}/${child} )
-      endif( ExtraMacroArgs STREQUAL RELATIVE )
-    endif( IS_DIRECTORY ${dir}/${child} )
-  endforeach( )
-  set( ${result} ${dirlist} )
+      else(ExtraMacroArgs STREQUAL RELATIVE)
+	list(APPEND dirlist ${dir}/${child})
+      endif(ExtraMacroArgs STREQUAL RELATIVE)
+    endif(IS_DIRECTORY ${dir}/${child})
+  endforeach()
+  set(${result} ${dirlist})
 endmacro()
 
-set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" ${CMAKE_MODULE_PATH} )
-include( cpack_generator )
-
-message( STATUS "LINUX_NAME = ${LINUX_NAME}" )
-
-if( CPACK_GENERATOR )
-  message( STATUS "requested CPACK_GENERATOR = ${CPACK_GENERATOR}" )
-else( CPACK_GENERATOR )
-  if( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR )
-    message( STATUS "Setting CPACK_GENERATOR to ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR}" )
-    set( CPACK_GENERATOR ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR} CACHE STRING "" )
-  endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR )
-endif( CPACK_GENERATOR )
-
-set( CPACK_TGZ_COMPONENT_INSTALL 1 PARENT_SCOPE )
-set( CPACK_DEB_COMPONENT_INSTALL 1 PARENT_SCOPE )
-set( CPACK_RPM_COMPONENT_INSTALL 1 PARENT_SCOPE )
-set( CPACK_PACKAGE_NAME tol PARENT_SCOPE )
-
-#cpack --help-variable CPACK_PACKAGE_FILE_NAME
-message( STATUS "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}" )
+#=============================================================================
+
+set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" ${CMAKE_MODULE_PATH})
+include(cpack_generator)
+
+message(STATUS "LINUX_NAME = ${LINUX_NAME}")
+
+if(CPACK_GENERATOR)
+  message(STATUS "Requested CPACK_GENERATOR = ${CPACK_GENERATOR}")
+else(CPACK_GENERATOR)
+  if(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR)
+    message(STATUS "Setting CPACK_GENERATOR to ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR}")
+    set(CPACK_GENERATOR ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR} CACHE STRING "")
+  endif(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR)
+endif(CPACK_GENERATOR )
 
 #set(SPECIFIC_COMPILER_NAME "")
-  
-set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics")
-
-if ( CPACK_GENERATOR STREQUAL "RPM" )
+
+#=============================================================================
+# SETTINGS
+#=============================================================================
+
+#=== Installer filename ======================================================
+
+# Variable PACKAGE_ARCHITECTURE
+if(CPACK_GENERATOR STREQUAL "RPM")
   execute_process(COMMAND uname "-m"
     OUTPUT_VARIABLE PACKAGE_ARCHITECTURE
     OUTPUT_STRIP_TRAILING_WHITESPACE )
-elseif( CPACK_GENERATOR STREQUAL "DEB" )
+elseif(CPACK_GENERATOR STREQUAL "DEB")
+  message(STATUS "CPACK_DEBIAN_PACKAGE_ARCHITECTURE = ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
   find_program(DPKG_CMD dpkg)
   if(NOT DPKG_CMD)
     message(STATUS "Can not find dpkg in your path, default to i386.")
-    set( PACKAGE_ARCHITECTURE i386 )
-  endif()
+    set(PACKAGE_ARCHITECTURE i386)
+  endif(NOT DPKG_CMD)
   execute_process(COMMAND "${DPKG_CMD}" --print-architecture
     OUTPUT_VARIABLE PACKAGE_ARCHITECTURE
-    OUTPUT_STRIP_TRAILING_WHITESPACE )
-else( CPACK_GENERATOR STREQUAL "RPM" )
-  set( PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} )
-endif( CPACK_GENERATOR STREQUAL "RPM" )
-
+    OUTPUT_STRIP_TRAILING_WHITESPACE) 
+else(CPACK_GENERATOR STREQUAL "RPM")
+  set(PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
+endif(CPACK_GENERATOR STREQUAL "RPM")
+message(STATUS "PACKAGE_ARCHITECTURE=${PACKAGE_ARCHITECTURE}")
+
+# Variable CPACK_SYSTEM_NAME
 string( TOLOWER "${LINUX_NAME}.${PACKAGE_ARCHITECTURE}" _CPACK_SYSTEM_NAME )
 set( CPACK_SYSTEM_NAME ${_CPACK_SYSTEM_NAME} CACHE STRING "" )
-
-if ( CPACK_GENERATOR STREQUAL "RPM" )
-  get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
-  if( LIB64 STREQUAL "TRUE" )
-    set( LIBSUFFIX "64" )
-  else( LIB64 STREQUAL "TRUE" )
-    set( LIBSUFFIX "" )
-  endif( LIB64 STREQUAL "TRUE" )
-else( CPACK_GENERATOR STREQUAL "RPM" )
-  set( LIBSUFFIX "" )
-endif( CPACK_GENERATOR STREQUAL "RPM" )
-
-# RPM
-set( CPACK_RPM_PACKAGE_URL "www.tol-project.org" PARENT_SCOPE )
-set( CPACK_RPM_PACKAGE_VENDOR "TOL Project" PARENT_SCOPE )
-set( CPACK_RPM_PACKAGE_RELOCATABLE OFF PAREENT_SCOPE )
-set( CPACK_RPM_PACKAGE_AUTOREQ " no" PARENT_SCOPE )
-set( CPACK_RPM_PACKAGE_GROUP "Applications/Engineering" PARENT_SCOPE )
-
-set( CPACK_RPM_core_PACKAGE_SUMMARY "The minimal TOL components necessary for a functional runtime" PARENT_SCOPE )
-set( CPACK_RPM_core_PACKAGE_DESCRIPTION 
+message(STATUS "CPACK_SYSTEM_NAME=${CPACK_SYSTEM_NAME}")
+
+# Variable CPACK_PACKAGE_FILE_NAME
+# Default value for ${CPACK_PACKAGE_FILE_NAME} is:
+#   ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}
+# See: cpack --help-variable CPACK_PACKAGE_FILE_NAME
+message(STATUS "CPACK_PACKAGE_FILE_NAME=${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
+
+#=== Components ==============================================================
+
+set(CPACK_TGZ_COMPONENT_INSTALL 1 PARENT_SCOPE)
+set(CPACK_DEB_COMPONENT_INSTALL 1 PARENT_SCOPE)
+set(CPACK_RPM_COMPONENT_INSTALL 1 PARENT_SCOPE)
+
+#set(CPACK_COMPONENTS_GROUPING "ALL_COMPONENTS_IN_ONE" PARENT_SCOPE)
+set(CPACK_COMPONENTS_GROUPING "IGNORE" PARENT_SCOPE)
+set(CPACK_COMPONENTS_ALL core headers gui)
+
+set(CPACK_COMPONENT_CORE_DESCRIPTION "TOL Core (Time Oriented Language)" PARENT_SCOPE)
+set(CPACK_COMPONENT_HEADERS_DESCRIPTION "C++ headers for TOL (Time Oriented Language)" PARENT_SCOPE)
+set(CPACK_COMPONENT_GUI_DESCRIPTION "GUI for TOL (Time Oriented Language)" PARENT_SCOPE)
+
+#=== RPM =====================================================================
+#!! Mirar si algunas configuraciones pueden obviarse porque por defecto usan 
+#!! una configuraciÃ³n general, por ejemplo: CPACK_RPM_PACKAGE_VENDOR quizÃ¡
+#!! ya usa: CPACK_PACKAGE_VENDOR
+#!! Comprobar si los nombres de las componentes pueden ponerse en mayÃºsculas:
+#!! CPACK_RPM_CORE_PACKAGE_DESCRIPTION en lugar de: CPACK_RPM_core_PACKAGE_DESCRIPTION
+
+set(CPACK_RPM_PACKAGE_URL "www.tol-project.org" PARENT_SCOPE)
+set(CPACK_RPM_PACKAGE_VENDOR "TOL Project" PARENT_SCOPE)
+set(CPACK_RPM_PACKAGE_RELOCATABLE OFF PAREENT_SCOPE)
+set(CPACK_RPM_PACKAGE_AUTOREQ " no" PARENT_SCOPE)
+set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering" PARENT_SCOPE)
+
+set(CPACK_RPM_core_PACKAGE_SUMMARY "The minimal TOL components necessary for a functional runtime" PARENT_SCOPE)
+set(CPACK_RPM_core_PACKAGE_DESCRIPTION 
 "
 TOL = Time Oriented Language is a language and environment for statistical 
@@ -89,22 +108,56 @@
 expose all R funcionality whithin TOL.
 
-" PARENT_SCOPE )
-set( CPACK_RPM_core_PACKAGE_REQUIRES " atlas, tcl >= 8.5, boost-filesystem >= 1.41, boost-thread >= 1.41, suitesparse >= 3, fftw >= 3, gsl >= 1.13, bzip2-libs, zlib, libtool-ltdl, libcurl >= 7.19, postgresql-libs >= 8.4, mysql-libs, unixODBC " PARENT_SCOPE )
-set( CPACK_RPM_headers_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION} "  PARENT_SCOPE )
-set( CPACK_RPM_gui_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget, tcllib, blt, tcl-tktreectrl, tkimg "  PARENT_SCOPE )
-
-set( CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE )
-set( CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE )
-set( CPACK_RPM_gui_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE )
-
-# DEB
-set( CPACK_DEBIAN_core_PACKAGE_DEPENDS "libboost-filesystem (>= 1.41), libboost-thread (>= 1.41), libsuitesparse, libfftw3, libgsl0 (>= 1.13), bzip2, zlib1g, libltdl, libcurl3 (>=7.19), tcl (>= 8.5)" PARENT_SCOPE )
-set( CPACK_DEBIAN_headers_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})")
-set( CPACK_DEBIAN_gui_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION}), tk (>= 8.5)")
-
-# BIN: TOL-CORE
-#file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/tol*" exe_pattern)
-#file(GLOB RT_EXE  ${exe_pattern} "${TOL_RUNTIME_DIR}/bin/confenv.sh" )
-set( PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}" ) 
+" PARENT_SCOPE)
+
+set(CPACK_RPM_core_PACKAGE_REQUIRES "atlas, tcl >= 8.5, boost-filesystem >= 1.41, boost-thread >= 1.41, suitesparse >= 3, fftw >= 3, gsl >= 1.13, bzip2-libs, zlib, libtool-ltdl, libcurl >= 7.19, postgresql-libs >= 8.4, mysql-libs, unixODBC " PARENT_SCOPE)
+set(CPACK_RPM_headers_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION} "  PARENT_SCOPE)
+set(CPACK_RPM_gui_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget, tcllib, blt, tcl-tktreectrl, tkimg "  PARENT_SCOPE)
+
+set(CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE)
+set(CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE)
+set(CPACK_RPM_gui_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE)
+
+#=== DEB =====================================================================
+
+# + CPACK_DEBIAN_PACKAGE_NAME = CPACK_PACKAGE_NAME (lower case)
+# + CPACK_DEBIAN_PACKAGE_VERSION = CPACK_PACKAGE_VERSION
+# + CPACK_DEBIAN_PACKAGE_ARCHITECTURE
+# - CPACK_DEBIAN_PACKAGE_DEPENDS
+# + CPACK_DEBIAN_PACKAGE_MAINTAINER = CPACK_PACKAGE_CONTACT
+# + CPACK_DEBIAN_PACKAGE_DESCRIPTION = PACK_PACKAGE_DESCRIPTION_SUMMARY
+# + CPACK_DEBIAN_PACKAGE_SECTION = 'devel'
+# + CPACK_DEBIAN_PACKAGE_PRIORITY = 'optional'
+# - CPACK_DEBIAN_PACKAGE_HOMEPAGE
+set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics" PARENT_SCOPE)
+set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "www.tol-project.org" PARENT_SCOPE)
+
+#set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-filesystem-dev (>= 1.41), libboost-thread-dev (>= 1.41), libsuitesparse-dev, libfftw3-bin, libgsl0ldbl (>= 1.13), bzip2, zlib1g, libltdl7, libcurl3 (>=7.19), tcl (>= 8.5), tk (>= 8.5)" PARENT_SCOPE) 
+set(CPACK_DEBIAN_CORE_PACKAGE_DEPENDS "libboost-filesystem-dev (>= 1.41), libboost-thread-dev (>= 1.41), libsuitesparse-dev, libfftw3-bin, libgsl0ldbl (>= 1.13), bzip2, zlib1g, libltdl7, libcurl3 (>=7.19), tcl (>= 8.5)" PARENT_SCOPE) 
+set(CPACK_DEBIAN_HEADERS_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})" PARENT_SCOPE)
+set(CPACK_DEBIAN_GUI_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION}), tk (>= 8.5)" PARENT_SCOPE)
+
+#=============================================================================
+# INSTALLATION FILES
+#=============================================================================
+
+#=== Installation Directory ==================================================
+
+# lib or lib64 directory
+if(CPACK_GENERATOR STREQUAL "RPM")
+  get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+  if(LIB64 STREQUAL "TRUE")
+    set(LIBSUFFIX "64")
+  else(LIB64 STREQUAL "TRUE")
+    set(LIBSUFFIX "")
+  endif(LIB64 STREQUAL "TRUE")
+else(CPACK_GENERATOR STREQUAL "RPM")
+  set(LIBSUFFIX "")
+endif(CPACK_GENERATOR STREQUAL "RPM")
+
+set(PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}")
+
+#=== [core] ==================================================================
+
+# core executables [BIN]
 install(FILES 
   "${TOL_RUNTIME_DIR}/bin/tolcon"
@@ -116,26 +169,31 @@
   WORLD_EXECUTE)
 
+# TolCore (stdlib directory)
 file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir)
 install(DIRECTORY ${stdlib_dir} DESTINATION "${PREFIX_TOL}/bin"
-  COMPONENT core )
-
-# LIB
-file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/lib" lib_dir)
-file( GLOB TOL_SH_LIBS  "${TOL_RUNTIME_DIR}/lib/*.so" )
-install( FILES ${TOL_SH_LIBS} DESTINATION "${PREFIX_TOL}/lib"
   COMPONENT core)
-file( GLOB toltcl_dirs  
+
+# libraries [LIB]
+file(GLOB tol_libs  "${TOL_RUNTIME_DIR}/lib/*.so")
+install(FILES ${tol_libs} DESTINATION "${PREFIX_TOL}/lib"
+  COMPONENT core)
+
+# core tcltk libraries (toltcl & TclCurl)
+file(GLOB toltcl_dirs  
   "${TOL_RUNTIME_DIR}/lib/toltcl*"
-  "${TOL_RUNTIME_DIR}/lib/TclCurl*" )
-install( DIRECTORY ${toltcl_dirs} DESTINATION "${PREFIX_TOL}/lib"
-  COMPONENT core )
-
-# INCLUDE
+  "${TOL_RUNTIME_DIR}/lib/TclCurl*")
+install(DIRECTORY ${toltcl_dirs} DESTINATION "${PREFIX_TOL}/lib"
+  COMPONENT core)
+
+#=== [headers] ===============================================================
+
+# headers [INCLUDE]
 file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir)
 install( DIRECTORY ${include_dir} DESTINATION "${PREFIX_TOL}"
-  COMPONENT headers )
-
-# TOLBASE = gui
-subdirlist( tclExtDirs "${TOL_RUNTIME_DIR}/lib" )
+  COMPONENT headers)
+  
+#=== [gui] ===================================================================
+
+# gui executables [BIN]
 install(FILES 
   "${TOL_RUNTIME_DIR}/bin/tolbase.tcl"
@@ -146,8 +204,14 @@
   GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE
   WORLD_EXECUTE)
-install( DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib"
+
+# gui tcltk libraries  
+subdirlist(tclExtDirs "${TOL_RUNTIME_DIR}/lib")
+install(DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib"
   COMPONENT gui
-  PATTERN *toltcl* EXCLUDE
-  PATTERN *TclCurl* EXCLUDE )
+  PATTERN toltcl* EXCLUDE
+  PATTERN TclCurl* EXCLUDE)
+##!!! cuidado que excluye bftoltcl.tcl quitar *
+  
+#=============================================================================
 
 # SCRIPTS (/usr/bin)
@@ -166,4 +230,2 @@
 #endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" )
 # Estudiar como hacer lo mismo con CPACK_DEBIAN_core_PACKAGE_CONTROL_EXTRA
-
-include( CPack )
