============================================================
markdown to html rules

============================================================
"mkcmake help" that shows how to configure
and build the project

============================================================
Fix formatting issues in README.md

============================================================
Add new feature for NetBSD-style defines like __dead,
__pure etc.  and use them all in other feature when necessary.

============================================================
Use external BSD install

============================================================
Installation should used in INSTALL

============================================================
remove target "distclean"
remove target "configure"

============================================================
features: do not add new sources to MKC_SRCS unless
we build compatlib (if it exists)

============================================================
Add feature "alloca"

============================================================
gcc on Solaris-10: gcc: error: -pie is not supported in this configuration ***
Runtime check is needed for flags passed to compiler and linker

============================================================
FAQ for users who see mk-configure for the first time and want to
build project with a help of mk-c.

============================================================
New feature "path_max" for detecting PATH_MAX from getconf
or from define (if exists). This is issue #7

============================================================
Introduce MKC_REQUIRE_BUILTINS in addition to MKC_CHECK_BUILTINS
remove hello_ prefix from all examples
install target: introduce dependencies for target files

MKC_CHECK_CUSTOM -- checks for compilation, we also need to
check compilation + "linkable-ness".

===============================================

MKC_CHECK_VARS fails on NetBSD on sys_signame

============================================================

[06/27 15:13]<yauheni> MKDEP.c   = ${MAKEDEPEND} -f- ${ddash} ${MKDEPFLAGS} \
[06/27 15:13]<yauheni>     ${CFLAGS:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} ${_CPPFLAGS} >
[06/27 15:13]<yauheni> лёша, зачем эта замена?
[06/27 17:51]<yauheni> mkc_imp.dep.mk:
[06/27 17:51]<yauheni> .if !defined(_MKC_IMP_DEP_MK) && !empty(_SRCS_ALL)
[06/27 17:51]<yauheni> ...
[06/27 17:51]<yauheni> .if defined(_SRCS_ALL)

INCS generated by INTEXTS

============================================================
Plan 0.28.0

- test for "inline" keyword
- test for CCLD option
- bzero, bcopy
- NetBSD style macroses

- check awk capabilities at build time
- Hide regression tests details
- "bmake -k regrtest/check" (mkc.minitest.mk?)

- strndup(SunOS-5.10, -fgetln,_compatlib)
- PRId64
- leveldb, strtoll, strtoull
- wmemcpy, strnlen
- wcsdup
- CFLAGS0

- Special marker for checks that cannot be possible in cross-compiling

- regression tests without garbage, make it look like paexec\

- MKC_FEATURES: inttypes

Some thoughts inspired by talks with Michael Crogan

- MKASNEEDED=yes => ld --as-needed

- _mkc_done_<prj>_<trg>

- project "roundup" for testing 

- "errorcheck/configure" tests should be run in parallel. Something
  like shlock(1) or flock(1) is needed for this.
- Alternative .depend generation, e.g. like it is described in GNU
  make info files
- Additional examples/ is needed for
  triggering rebuild of subproject if "something" was rebuild in
  another subproject (build script for example).
- Interdependencies between targetX-subprjA and targetY-subprjB (for
  example all-prject1 and install-prject2). Maybe this is cool idea
  for examples/ and slides. I need some good example for this.
  <<<depend-project1:errorcheck-autotools_based_project2>>>!!!
- Steal cool features from Simon Gerraty's mk files and analyse
  "meta mode" he invented.

Some "targets" from TARGETS should set MKCHECKS to "no"

ronn(1) : markdown to man pages

  custom test failed -> exit status of mkcmake should not be zero
  MKC_CUSTOM_ERR.qqqq -> error message before exiting just like 

  mkcmake configure doesn't work
  New variable MKC_CUSTOM_ENV.xxx

  Add script_check to MKC_CHECK_CUSTOM
               Ex.  MKC_CHECK_CUSTOM+=               nested_funcs
                    MKC_CUSTOM_FN.nested_funcs=      nested_funcs.c
                    MKC_CUSTOM_FN.script_check=      checks/script_check

  - BINSUBDIR, LIBSUBDIR, LIBEXECSUBDIR etc...
  - Fix USE_SSP support for clang (-mllvm -stack-protector-buffer-size=1)
  - USE_RPATH
  - OBJCOPTS_<proj>
  - Regression tests:
    * optional .f tests
    * optional .p tests
    * optional .m tests
    * optional(!) glib2 tests

============================================================
Plan 1)

  - Support for MKDEBUG like in NetBSD mk files
  - .lua.luac:
  - Implement mkc_imp.libtool.mk to build
    the shared libraries using GNU libtool(1).
  - MKSTRIP, STRIP, mkc_install: use STRIP, not STRIPPROG

  Slides for:
    - Slide "extensibility" about Lua module.
    - code specific to GNU ld(1) (.def?)

============================================================
Plan 2)

  - ./configure written in shell?
  - EXPORT_DYNAMIC_SYMBOLS - add the specified symbols to
    dynamic symbol table (GNU ld)
  - EXPORT_SYMBOLS_REGEXP

  - Syllable, Haiku, OpenServer/UnixWare and HURD
  - lcc and tcc compilers
  - epm -> rpm, SVR4 pkg etc.
  - mkc_imp.filelist.mk
    - FL_NOPREFIX
    - FL_PERSUBPRJ
  - IRIX: "endianness" and EXPORT_SYMBOLS

============================================================
Plan 3)

  = sample for home-made .mk file (Ocaml? Pike?)
  = marker for user's custom tests that
    run generated executables, i.e. not ready
    for cross-compilation

  = support for gettext

  = mkclint?

  = Command line may be limited in size.
    Save defines to config.h and set HAVE_CONFIG_H to 1
    for compiling.

  = MKC_CUSTOM_premk, MKC_CUSTOM_postmk

  = Online tutorial

  = shared libraries support for AIX, UnixWare, Hurd, Haiku.
  = shared libraries support for nwcc and other compilers.

  = Comparison with quagmire, kBuild, CMake, scons, waf, framewerk, pmk,
    MagicMakefiles, bjam, pymake, bitmake, pkgconf, Gradle
    http://sourceforge.net/projects/mkbuild etc.

  = Often compilers need special options to compile pthread code.
    Support for MKPTHREAD=yes|no is needed.

  = implement MANBZ2?

  = man page for mkc_check_compiler

============================================================
Plan 4)

  = EXPORT_SYMBOLS for HP-UX, AIX, SCO etc.

  = Single cache file as an automatically loaded (if exists)
    bmake makefile.

  = Targets bin_rpm, bin_epm
  = Targets src_tar, src_targz, src_tarbz2

  = mkc.subdir.mk:
    - continue bulding even if some subprojects failed

  = MKC_CHECK_CUSTOM:
    - MKC_CUSTOM_FN=xxx.f
    - MKC_CUSTOM_FN=xxx.objc

  = Implement mkc.qt.mk

  = Implement mkc.doxygen.mk?

============================================================
Plan 5)

  = mkc.configure.mk functionality but for bourne shell, e.g.

    Upstream creates ./configure shell script:
      MKC_CONFIG_MK=mkc_config.mk
      MKC_CONFIG_H=mkc_config.h

      MKC_CHECK_HEADERS='
        header1.h
        header2.h
        header3.h'
      MKC_CHECK_FUNCLIBS='
        func1:lib1
        func2
        func3:lib3'
      #<...>
      . mkc_configure
      mkc_run # generating mkc_config.h and mkc_config.mk

    User runs
      ./configure ...
      <any>make all

  = MKC_CHECK_DECL_TYPE (define, function|variable)

  = MKC_DEFINE_01 - -DHAVE_XXX=0 or -DHAVE_XXX=1

============================================================
Plan 6)
  = MKC_BUILTINS (from autoconf):
      broken_free_NULL,
      exit_ret_int,
      isinf, isnan, malloc_0, putenv_xxx, realloc, signal,
      snprintf, sprintf, sscanf, strerror_r, strnlen,
      sysconf, unlink, unsetenv, va_copy, va_list,
      signed_shr, int_div, chown_minus_1,...
      (autoconf.info/Particular Function Checks)

      AC_FUNC_ALLOCA
  = autoconf (Portability of headers)
  = autoconf (Particular Header Checks)
