/*

                   *****    *****   ******  ******  ***   ***
                 **   **  **   **  **      **      ** *** **
                **   **  **   **  ****    ****    **  *  **
               **   **  **   **  **      **      **     **
              **   **  **   **  **      **      **     **
              *****    *****   **      ******  **     **


               OOFEM : Object Oriented Finite Element Code

                 Copyright (C) 1993 - 2003   Borek Patzak



         Czech Technical University, Faculty of Civil Engineering,
     Department of Structural Mechanics, 166 29 Prague, Czech Republic
                   e-mail: oofem@cml.fsv.cvut.cz

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
*/




This file describes the procedure how to set up OOFEM project and compile it 
under Microsoft OS:

If you have Microsoft Visual Studio .NET 2003 you can use  
provided project. It allows to build serial version of oofem,
including structural and transport modules.
  The procedure is following:
  1) Change working directory to arch/win32
  2) Unpack oofem-mvs.tgz here
  3) Change directory to  mvs/oofem 
  4) run migrate.bat
  5) open oofem.sln (project (solution) file)
  6) Build the whole project
  7) Optionally to test oofem:
     -  change directory to tests directory (in oofem top dir)
     -  run do_test.bat
     -  see result file


When using different compiler, a general instructions how to set up
project for visual studio can be helpfull:

1) Unpack sources (you can use winzip to extract tar.gz files)
2) Create new workspace called oofem in oofem top directory


3) Create new project called "oofem" (of type Win32 console application), 
as an empty project and add it to the current workspace (oofem),
  3.1) Add files to a new project (in main/src directory 
       add "main.C" and "usrdefsub.C"). 
  3.2) In the project settings add "/TP"  compiler option 
       (TP will force .C files to be recognized as c++ files) 
       and enable RTTI (Run-Time Type Informations) in C++/Language settings
       add in C++/Preprocessor settings include path to 
       "../../oofemlib/src, ../../sm/src, ../../tm/src"
       Note: if you want to build both Debug and Release versions 
       you should  make these changes for both targets.
  3.3) Add "__SM_MODULE, __TM_MODULE" preprocessor definition in 
       C++/preprocessor settings.

4) Create new project called "oofemlib" 
   (of type Win32 static library, dependency of oofem) 
   and add it to the current workspace (oofem) with no precompiled headers, 
   no MFC support.
  4.1) Add files to a new project (add all files in oofemlib/src directory) 
       except "oofeggraphicscontext.C" and "oofegutils.C".
  4.2) In the project settings add "/TP"  compiler option 
       (TP will force .C files to be recognized as c++ files) 
       and enable RTTI (Run-Time Type Informations) in C++/Language settings.
  4.3) Copy "arch/win32/oofemcfg.h" and "arch/win32/oofemdef.h" 
       into oofemlib/src directory.
  4.4) Build oofemlib target

5) Create new project called "sm" 
   (of type Win32 static library, dependency of oofem) and add it to the 
   current workspace (oofem),with no precompiled headers, no MFC support.
  5.1) Add files to a new project (add all files in sm/src directory).
  5.2) Follow the same steps as in 4.2 plus add in C++/Preprocessor 
       settings include path to "../../oofemlib/src".
  5.3) Build sm target

6) Create new project called "tm"
   (of type Win32 static library, dependency of oofem) and add it to 
   the current workspace (oofem), with no precompiled headers, 
   and no MFC support.
  6.1) Add files to a new project (add all files in tm/src directory).
  6.2) Follow the same steps as in 4.2 plus add in C++/Preprocessor settings 
       include path to "../../oofemlib/src".
  6.3) Build sm target

7) Build oofem target

Optionally to test the oofem package:

8.0) Create new project called "checker" (of type Win32 console application), 
     an an empty project and add it to the current workspace (oofem)
  8.1) Add files to new project (in tools directory add checker.C, seek.C, seek.h,
       tokenizer.h, and tokenizer.C).
  8.2) In the project settings add "/TP"  compiler option.
  8.3) Add "CHECKER_MODE" preprocessor definition in C++/preprocessor settings.
  8.4) Build checker target
  8.5) Copy arch/win32/do_test.bat into tests directory. Modify this
     batch to include correct paths to the oofem and 
       checker executables.
  8.6) run "do_test.bat" in tests directory
  8.8) look the "result" file 


================================================================================
Enjoy
Borek Patzak
