From aa0e5fc742ba8398cb1d7422047087cad2d89951 Mon Sep 17 00:00:00 2001 From: Pere Mato Date: Mon, 31 Oct 2016 15:26:01 +0100 Subject: [PATCH] Added deprecation message in configure and fix instructions in INSTALL file. --- README/BUILDSYSTEM | 137 --------------------------------------------- README/INSTALL | 37 ++++-------- configure | 11 ++++ 3 files changed, 23 insertions(+), 162 deletions(-) delete mode 100644 README/BUILDSYSTEM diff --git a/README/BUILDSYSTEM b/README/BUILDSYSTEM deleted file mode 100644 index 1e2e0ffa499b0..0000000000000 --- a/README/BUILDSYSTEM +++ /dev/null @@ -1,137 +0,0 @@ -THE ROOT BUILD SYSTEM -===================== - -The new ROOT development system is based on Open Source tools like -Subversion, configure and make. - - -The Makefile ------------- - -The ROOT Makefile has been structured as described in the paper: -"Recursive Make Considered Harmful" [1]. The main philosophy is that -it is better to have a single large Makefile describing the entire -project than many small Makefiles, one for each sub-project, that are -recursively called from the main Makefile. By cleverly using the include -mechanism the single Makefile solution is as modular as the recursive -approach without the problems of incomplete dependency graphs. - -The main Makefile includes for each sub-project a Module.mk file -that provides definitions, rules and dependencies for the specific module. -Adding a new module to the ROOT system involves creating a directory in -the main ROOT directory for the module. The module directory, in turn, -should have inc and src directories and a Module.mk file. To include the -new module in the main Makefile you only have to add the line: - MODULES += - -The build configuration (controlling which optional modules will be -build) is managed via the config/Makefile.config file, which is generated -by the configure script. The platform specifics are described in the -config/Makefile. file (the architecture is specified once via the -configure script). Both these files are included by the main Makefile. - -The user can customize and override make definitions by providing their -own MyConfig.mk file and add custom or modified rules via a MyRules.mk -file. Some options in the config/Makefile. can be controled via -the ROOTBUILD environment variable. Typically they all support the debug -option: - ROOTBUILD=debug -Some others support additional options. For more see the makefiles. - - -Targets -------- - -The Makefile supports the following main targets: - -all: build complete system (default) - -fast: build complete system without creating - the .d dependency files (good for just - building the system with no further - development) - -rootcling: build all cling related components - -rootlibs: build all ROOT libraries (includes rootcling) - -rootexecs: build all ROOT executables (includes rootlibs) - -dist: make binary distribution .tar.gz file - -distsrc: make source distribution .tar.gz file - -clean: deletes all .o files - -distclean: deletes all files produced in the build - (cleans and in addition removes all - dictionaries, dependency files, etc.), - leaves the files produced by configure - -maintainer-clean: distclean + remove files produced by configure - -version: after manual update of the file - build/version_number this will recreate the - file base/inc/RVersion.h and recompile only - base/src/TROOT.cxx - -html: generate the complete html documentation of - the full ROOT system. Also hyperizes the - README/ChangeLog file - -changelog: generate the README/ChangeLog file from - information obtained by the "svn log" command - -install: install the root binary distribution to the - locations specified via configure. Does - nothing if $ROOTSYS is set to the build - directory - -showbuild: show all macro definitions used during the - build: compilers, compiler flags, optional - modules, libraries, etc. - -redhat: build binary RedHat (rpm) packages - -debian: build binary Debian (pkg) packages - - -For developers only: - -skip : skip all dependency checking and just - generate the specified obj or dictionary file - - -In addition each module has the following module specific targets: - -all- builds all components specified in the - Module.mk (library, executable, etc.) - -clean- deletes all .o files produced in the module - -distclean- deletes all in addition to the .o files also - all dictionary and dependency files - - -Porting to a new platform -------------------------- - -- add option to config/ARCHS -- make a new config/Makefile. -- add platform case to the file config/root-config.in -- add platform case to the file test/Makefile -- add platform case to base/inc/RConfig.h -- add platform case to utils/src/rootcling.cxx - - -Adding a new module -------------------- - -- make a new module directory containing an inc and src directory -- make a new Module.mk (use one of the existing Module.mk's as template) -- add module name to the MODULES macro in the main Makefile -- if optional module add option to configure script (with test for possible - third party libraries) - - -[1] http://miller.emu.id.au/pmiller/books/rmch/ diff --git a/README/INSTALL b/README/INSTALL index 87bd2246c05b9..0e7807ff9d7a8 100644 --- a/README/INSTALL +++ b/README/INSTALL @@ -33,32 +33,19 @@ Contents: To install ROOT from source you first have to get the tar file containing the source. This tar file can be found in the usual -ROOT download area (ftp://root.cern.ch/root). The files are named +ROOT download page http://root.cern.ch/downloading-root. The files are named root-.source.tar.gz. Here's a short summary: -1) Get access to the FTP area (substitute any FTP client and appropriate - email address below): - prompt% ftp root.cern.ch - User: anonymous - Password: +1) Get the sources -2) Go to the directory, and prepare for binary transfer of files: + wget https://root.cern.ch/download/root_.source.tar.gz - ftp> cd /root - ftp> bin +2) Unpack the distribution: -3) Get the sources tar-ball (substitute the appropriate version - number), and exit FTP client: - - ftp> get root-.source.tar.gz - ftp> bye - -4) Unpack the distribution: - - prompt% gzip -dc root-.source.tar.gz | tar -xf - + tar -zxf root_.source.tar.gz An alternative approach is to use our public GIT repository to get the latest version. @@ -81,7 +68,7 @@ You may want to compile features into ROOT, which depends on third party libraries. Make sure you meet all demands for additional features before trying to enable them (see below). -The prerequisites neded for the different platforms are documented at +The prerequisites needed for the different platforms are documented at https://root.cern.ch/build-prerequisites @@ -97,7 +84,7 @@ Both require to set the CMAKE_INSTALL_PREFIX variable at configuration time. The 'fix location' requires in addition to set the 'gnuinstall' option at configuration. -3.1. Environment driven build: +3.1. Location independent build: ------------------------------ You want to install in a generic directory, depending on environment @@ -109,7 +96,7 @@ variables ROOTSYS, LD_LIBRARY_PATH, and PATH. mkdir cd cmake ../root - cmake --build . [ or simply "make -j" on Unix systems ] + cmake --build . [ -- -j ] [ or simply "make -j" on Unix systems ] 3) Add bin/ to PATH and lib/ to LD_LIBRARY_PATH. For the sh shell family do: . bin/thisroot.sh @@ -120,7 +107,7 @@ variables ROOTSYS, LD_LIBRARY_PATH, and PATH. 4) try running root: root -3.2. Fixed locations build: +3.2. Fixed location build: --------------------------- You want to install ROOT in a fixed location, not depending on @@ -231,7 +218,7 @@ Here's the complete list: 5. Makefile targets: ==================== -The availble Makefile top level targets are shown by doing +The available Makefile top level targets are shown by doing make help @@ -267,7 +254,7 @@ On how to get an open source version of OpenGL see: http://www.mesa3d.org -For prebuilt versions see: +For pre-built versions see: ftp://root.cern.ch/root/opengl/ @@ -403,7 +390,7 @@ containing Globus lib, include and bin. For compilation purposes you can pass this directory to the configure script with the option --with-globus-dir=. An experimental path is available for versions 2.2.3 and 2.2.4 of the Globus Tool Kit to fix a small -bug preventing full functionallity of the root implementation; this +bug preventing full functionality of the root implementation; this is activated by setting --with-globus-patch-dir= where is the globus tool kit source, diff --git a/configure b/configure index 93cff0cf33856..6b9ba38d38db1 100755 --- a/configure +++ b/configure @@ -11,6 +11,12 @@ # this easily. # ###################################################################### + +echo "****************************************************************************************************************" +echo "* The classic configure/make method of building ROOT is now DEPRECATED in favor of the CMake one. *" +echo "* Refer to README/INSTALL file for updated instructions or visit the page https://root.cern.ch/building-root *" +echo "****************************************************************************************************************" + # ### echo %%% Some global variables # @@ -8481,4 +8487,9 @@ if [ "x$run_maintainer_clean" = "xyes" ]; then $0 `cat config.status 2>/dev/null` fi +echo "****************************************************************************************************************" +echo "* The classic configure/make method of building ROOT is now DEPRECATED in favor of the CMake one. *" +echo "* Refer to README/INSTALL file for updated instructions or visit the page https://root.cern.ch/building-root *" +echo "****************************************************************************************************************" + exit 0