============================================================
SRC_PATHADD, CC_PREFIX and CXX_PREFIX?

============================================================
SHRTOUT -- set -x and redirect everything to temporary
log file and print it only if the target fails?

============================================================
Tests for MCOMPRESS?

============================================================
MKC_PATH environment variable for mkcmake(1)
and mkc_compiler_settings(1)

============================================================
OBJDIR_* and SRCDIR_* variable should be available
after mkc.init.mk and initialized again in mkc.mk

============================================================
Generate .d files at the same time as compilation and load
in the very beginning by default if appropriate variable
is set.

============================================================
More efun features: e{read,write,setenv} from FreeBSD

============================================================
MKC_CACHEDIR ?= ${OBJTOP:U${SRCTOP}}

New rules for .by (bison without -y option)

============================================================
LDFLAGS.check

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

============================================================
Add new feature for NetBSD-style defines like __dead,
__pure, __printflike, __UNCONST, __constfunc, __noinline,
__always_inline, __returns_twice, __noclone, __unused,
__used, __packed, __aligned, __section, __restrict,
__printflike, __sysloglike, __scanflike, __format_arg,
__arraycount, __MIN, __MAX

and glibc-style defines like __wur, __deprecated, __nonnull

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

============================================================
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

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

[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

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

- PRId64
- leveldb, strtoll, strtoull
- wmemcpy, strnlen
- wcsdup

- 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 

- "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

  - BINSUBDIR, LIBSUBDIR, LIBEXECSUBDIR etc...
  - USE_RPATH
  - Regression 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).

============================================================
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?

============================================================
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

  = 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)
