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

  = Targets tgz, tbz, deb, rpm

  = mkc_imp.sub{dir,prj}.mk
    - subprojects to exclude from target "all:".

  = symlinks to executables and libraries in ${OBJDIR}/{bin,lib}

  = presentartion.pdf:
    - graph of tools based on mk files and mk-c

  = Implement mkc_imp.libtool.mk to make building
    the shared libraries using GNU libtool(1).

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

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

  = MKC_NEED_FUNCLIBS - the same as MKC_SOURCE_FUNCLIBS but
    implementation is taken from mk-c.
    Ex: MKC_NEED_FUNCLIBS += strlcat strlcpy getline

  = MKC_CUSTOM_premk, MKC_CUSTOM_postmk

  = (U/ser, D/eveloper, M/akefile) markers for variables in mk-configure.7

  = Online tutorial

  = better support for cross-compilation
    - lalala
    - mkc_imp.pkg-config.mk (PKG_CONFIG_SYSROOT_DIR)

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

  =    COPTS.<prog> and COPTS.lib<lib> variables
    or COPTS_<prog> and COPTS_lib<lib>?

  = MLINKS?

  = Comparison with quagmire, kBuild, CMake, scons, waf, framewerk, pmk,
    MagicMakefiles etc.

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

  = Example for bison/flex + MKC_REQUIRE_BUILTINS=bison flex

============================================================
Plan2)

  = PROGS= a b c d
    SRCS.a = ...
    SRCS.b = ...

  = man page for mkc_check_compiler

  = MKPIE for building Position Independent Executables

  = mkc.subdir.mk:
    - continue bulding even if some subprojects failed
    - list of variables to export for subprojects

  = mkc.subdir.mk, mkc.subprj.mk: reimplement ${dir}.${MACHINE}

  = WARNS for compilers other than gcc

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

  = user-defined postinstall and preinstall?

  = preinstall : installdirs?

  = Regression tests:
    - optional .f tests
    - optional .p tests
    - optional(!) glib2 tests

  = implement MANBZ2?

  = Improve support for C++, Objective-C, Fortran and Pascal

  = Implement mkc.qt.mk

  = Implement mkc.doxygen.mk?

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

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