1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
|
############################################################
PLAN 0.38.0:
============================================================
Generate .d files at the same time as compilation and load
in the very beginning by default if appropriate variable
is set.
============================================================
MKC_REQUIRE_PKGCONFIG - make sure _mkc_ files are deleted
when this check fails.
============================================================
New rules for .by (bison without -y option)
============================================================
Add new feature for glibc-style defines
__wur and __deprecated
============================================================
MKC_CACHEDIR ?= ${OBJTOP:U${SRCTOP}}
============================================================
Add new feature for define restrict (C99 etc.)
############################################################
PLAN 0.39.0:
- Implement mkc_imp.libtool.mk to build
the shared libraries using GNU libtool(1).
- add support for pkg-config aware projects, i.e., projects
that provide .pc files
############################################################
PLAN REST:
============================================================
More efun features: e{read,write,setenv} from FreeBSD
============================================================
Add recursive lint and ctags (by David Young) targets
============================================================
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
============================================================
LDFLAGS.check
============================================================
markdown to html rules
============================================================
Add new feature for NetBSD-style defines
__packed, __section, __restrict,
__sysloglike, __scanflike, __format_arg
and glibc-style define __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
============================================================
INCS generated by INTEXTS
============================================================
Plan 0.28.0
- test for "inline" keyword
- test for CCLD option
- bzero, bcopy
- Hide regression tests details
- "bmake -k regrtest/check" (mkc.minitest.mk?)
- Special marker for checks that cannot be possible in cross-compiling
- regression tests without garbage, make it look like paexec
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
- 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:
============================================================
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?
= Implement mkc.cunit.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,...
AC_FUNC_ALLOCA
= autoconf info documentation: Particular Functions
= autoconf info documentation: Portability Of Headers
= autoconf info documentation: Particular Headers
|