Skip to content
Snippets Groups Projects
  1. Apr 24, 2018
    • Mark OLESEN's avatar
      CONFIG: remove WM_LINK_LANGUAGE env variable (always c++) · 2768500d
      Mark OLESEN authored
      - was somewhat redundant in wmake/rules/General/general anyhow
      2768500d
    • Mark OLESEN's avatar
      ENH: improve handling of ThirdParty packages · b4d38ab4
      Mark OLESEN authored
      - generalize some of the library extensions (.so vs .dylib).
        Provide as wmake 'sysFunctions'
      
      - added note about unsupported/incomplete system support
      
      - centralize detection of ThirdParty packages into wmake/ subdirectory
        by providing a series of scripts in the spirit of GNU autoconfig.
        For example,
      
            have_boost, have_readline, have_scotch, ...
      
        Each of the `have_<package>` scripts will generally provide the
        following type of functions:
      
            have_<package>          # detection
            no_<package>            # reset
            echo_<package>          # echoing
      
        and the following type of variables:
      
            HAVE_<package>          # unset or 'true'
            <package>_ARCH_PATH     # root for <package>
            <package>_INC_DIR       # include directory for <package>
            <package>_LIB_DIR       # library directory for <package>
      
        This simplifies the calling scripts:
      
            if have_metis
            then
                wmake metisDecomp
            fi
      
        As well as reducing clutter in the corresponding Make/options:
      
            EXE_INC = \
                -I$(METIS_INC_DIR) \
                -I../decompositionMethods/lnInclude
      
            LIB_LIBS = \
                -L$(METIS_LIB_DIR) -lmetis
      
        Any additional modifications (platform-specific or for an external build
        system) can now be made centrally.
      b4d38ab4
    • Mark OLESEN's avatar
      COMP: sinclude platform-specific CGAL rules · 29c020f5
      Mark OLESEN authored
      - permits platform-specific override of the general CGAL rules
      29c020f5
  2. Apr 20, 2018
    • Mark OLESEN's avatar
      BUG: wmkdepend finds 'include' in multi-line comments (closes #784) · 1f25c597
      Mark OLESEN authored
      - the previous grammar used
      
            '/*' { fgoto comment; }
      
        to start processing multi-line comments and
      
            comment := any* :>> '*/' @{ fgoto main; };
      
        as a finishing action to return to normal lexing, but seemed not to
        have been triggered properly.
      
        Now simply trap in a single rule:
      
            '/*' any* :>> '*/';             # Multi-line comment
      
      STYLE: use more compact dnl (delete to newline)
      
        OLD:   [^\n]* '\n'
        NEW:   (any* -- '\n') '\n'
      
        eliminates the intermediate state
      1f25c597
  3. Apr 17, 2018
  4. Apr 13, 2018
  5. Apr 12, 2018
    • Mark OLESEN's avatar
      ENH: make it easier to switch between the various make dependencies programs. · de72a04a
      Mark OLESEN authored
      - However, the new ragel-based parser is much faster
        than the others, and does not cause 'too many open files' error
        that the flex-based parser does (issue #784).
      
        The timings (using src/sampling as being somewhat representative)
      
          $ wclean; wmakeLnInclude -u .; time wmake -s dep
      
              3.4s  wmkdepend (ragel) [now default]
              5.7s  wmkdep (flex)
              6.1s  cpp -M
      
      - The makeDepend script is for testing purposes only, but could used as
        a hook for other dependency generation systems (eg, ninja).
        It simply wraps 'cpp -M' in a form that is calling compatible with
        wmkdepend.
      
      BUG: wmkdepend parser was missing optional leading space on #include match
      
      STYLE: use -G2 (goto-based) option for wmkdepend state machine
      
      - the machine is compact with few states and lends itself to this
      de72a04a
  6. Apr 09, 2018
  7. Apr 11, 2018
    • Mark OLESEN's avatar
      ENH: replace flex-based wmkdep with ragel-based parser (issue #784) · 1676bd40
      Mark OLESEN authored
        This is similar to efforts (Feb 2010) but using ragel
        (https://en.wikipedia.org/wiki/Ragel) instead of the now defunct
        coco/r. The modified commit message from 2010:
      
      ENH: add C++-based wmkdepend parser (uses ragel grammar).
      
      - This avoids dependency on lex/flex and provides better encapsulation
        for buffer switching. As a result, the maximum number of open files
        only corresponds to the include depth.
      
      --
      
      Note that the flex source and rules are still available, but are not
      deactivate (see wmake/rules/General/transform)
      1676bd40
  8. Apr 08, 2018
  9. Mar 28, 2018
  10. Mar 21, 2018
  11. Feb 28, 2018
  12. Mar 05, 2018
  13. Feb 22, 2018
  14. Jan 31, 2018
  15. Jan 30, 2018
  16. Dec 19, 2017
  17. Dec 17, 2017
  18. Dec 15, 2017
  19. Dec 08, 2017
  20. Dec 07, 2017
  21. Nov 24, 2017
    • Mark OLESEN's avatar
      ENH: more succinct output from command-line errors. · 5947f9a3
      Mark OLESEN authored
      - unknown options or missing option values now emit a shorter message
        without the entire usage. This makes it easier to identify the errors
        and is better aligned with the behaviour of GNU system tools.
      
        ====
           $ simpleFoam -case
           Using: OpenFOAM-plus (see www.OpenFOAM.com)
           Build: plus-01234
      
           Error: option '-case' requires an argument
      
           See 'simpleFoam -help' for usage
        ====
      
      - provide for reduced (-help) and full (-help-full) usage information.
        In many cases the reduced usage provided sufficient and easier
        to find the information.
      
      - make -srcDoc an alias for -doc-source
      
      - no warnings about option aliases for future dates.
      5947f9a3
  22. Sep 29, 2017
  23. Oct 30, 2017
    • Mark OLESEN's avatar
      ENH: improve wcleanBuild, wcleanPlatform flexibility (issue #627) · ba8fdda5
      Mark OLESEN authored
      - add -compiler=NAME option to remove a build or platforms directory
        corresponding to any specified compiler on the current arch.
      
      - when -compiler or -compiler=NAME is specified, also clean related
        sub-directories as well. This will cleanup mpi-related directory.
      ba8fdda5
  24. Oct 23, 2017
  25. Sep 20, 2017
    • Mark OLESEN's avatar
      ENH: update List and DynamicList methods (issue #595) · 049617d0
      Mark OLESEN authored
      - improve functional compatibility with DynList (remove methods)
        * eg, remove an element from any position in a DynamicList
        * reduce the number of template parameters
        * remove/subset regions of DynamicList
      
      - propagate Swap template specializations for lists, hashtables
      
      - move construct/assignment to various containers.
      
      - add find/found methods for FixedList and UList for a more succinct
        (and clearer?) usage than the equivalent global findIndex() function.
      
      - simplify List_FOR_ALL loops
      049617d0
  26. Aug 04, 2017
  27. Jul 31, 2017
  28. Jun 27, 2017
  29. May 30, 2017
  30. May 05, 2017
  31. Apr 20, 2017
    • Mark Olesen's avatar
      CONFIG: address differences between shells · 7f01a4be
      Mark Olesen authored
      - suppress error messages that appear with zsh.
        According to unset(1p), 'unset -f' unsets a function.
        If the function was not previously defined, this is a no-op.
        This is similar for zsh, but there it emits a warning if the
        function was not previously defined.
      
      - avoid 'local' in functions sources from etc/bashrc.
        ksh does not support this.
      
      - use 'command' shell builtin instead of 'type'.
        Seems to be more consistent between shell flavours.
      7f01a4be
  32. Apr 19, 2017
  33. Mar 29, 2017
  34. Mar 20, 2017
    • Mark Olesen's avatar
      ENH: minor improvements to environment · b970ba09
      Mark Olesen authored
      - handle sourcing bashrc with a relative path (issue #383)
      - handle sourcing from bash and zsh.
        Still need manual intervention when sourcing dash, sh, or ksh.
      - replace grep in etc/cshrc with sed only
      - logical instead of physical path for WM_PROJECT_DIR (issue #431).
        Doesn't seem to be possible for csh/tcsh.
      
        * Continue using physical locations when comparing directories,
          but not for the top-level FOAM_INST_DIR, WM_PROJECT_DIR.
      
      - relocate WM_CC, WM_CXX overrides from etc/config.*/compiler
        to etc/config.*/settings to ensure that they are left untouched
        when etc/config.sh/compiler is sourced while making third-party
        packages (eg, gcc, llvm, CGAL).
      
      - provide fallback FOAM_TUTORIALS setting in RunFunctions
      
      STYLE: remove "~OpenFOAM" fallback as being too rare, non-obvious
      b970ba09
  35. Mar 15, 2017
  36. Mar 10, 2017