I've just released mk-configure-0.24.0, lightweight alternative to GNU autotools and other build systems. As it is based on bmake and follows the same design as BSD mk files it should be friendly to BSD developers. The main goals are portability and simplicity.
pkgsrc package: devel/mk-configure sources: https://github.com/cheusov/mk-configure examples of use: https://github.com/cheusov/runawk https://github.com/cheusov/pkgnih https://github.com/cheusov/distbb https://github.com/cheusov/paexec https://github.com/cheusov/pkg_summary-utils https://github.com/cheusov/pkg_online https://github.com/cheusov/lmdbg ====================================================================== Version 0.24.0, by Aleksey Cheusov, Fri, 8 Mar 2013 13:18:00 +0300 mkc.sub{dir,prj}.mk: - support for subprojects containing / symbol was added. In OBJDIR_<dir> variable slashes are replaced with underlines. In addition OBJDIR_<dir:T> variable is set. - now also run the target "errorcheck" - now work correctly with non-empty MAKEOBJDIR and MAKEOBJDIRPREFIX. Minor improvements in examples/*/linkme.mk DPLIBS is deprecated, use LDADD instead. ${MKC_SOURCE_FUNCLIBS}.o is added to CLEANFILES if it is set. Minor fixes in mkc_imp.lua.mk (LUA_MODULES vs. LUA_LMODULES). Some improvements and fixes in man page and FAQ. Thanks to Jeremy Reed, Min Sik Kim and Jan Smydke. ====================================================================== Version 0.23.0, by Aleksey Cheusov, Sun, 22 Jul 2012 14:06:06 +0300 mkc.subprj.mk: - Support for "virtual" subproject was added. Subprojects listed in SUBPRJ and SUBPRJS_DFLT are not necessarily associated with a subdirectory. See examples/hello_superfs for example. Virtual subproject is a way to group several subprojects into new one. New variables were introduced: COPTS_<proj> OBJCOPTS_<proj> LDADD_<proj> LDFLAGS_<proj> CPPFLAGS_<proj> CXXFLAGS_<proj>. See the manual page for details. Fix: OBJDIR_<subdir> variables now always contain full paths. Fix in mkc_which(1). Now it differs directories and regular files. Minor fixes in regression tests for EXPORT_SYMBOLS. mkc.lib.mk: - SHLIB_MINOR unconditionally defaults to 0 More slides in .pdf presentation: - cross-compilation - EXPORT_SYMBOLS Fixes for Pascal support Minor fixes in the man page ====================================================================== Version 0.22.0, by Aleksey Cheusov, Fri, 9 Mar 2012 20:26:34 +0300 Improvements in cross-compilation. The following variables were introduced: TOOLDIR, SYSROOT, TOOLCHAIN_PREFIX and MACHINE_GNU_PLATFORM. PROGS variable was introduced (sf.net bug #3445658). Support for Lua submodules was added (e.g. net.socket.lua -> net/socket.lua). New variable LUA_MODULES was introduced for this purpose. MKPIE (Position Independent Executables), USE_SSP (Stack Smashing Protection), USE_FORT and USE_RELRO variables were introduced for security reasons. Variable OBJDIR_<dir> was introduced. mkc.subdir.mk and mkc.subprj.mk: Commands associated with targets "all", "install", "clean", "cleandir", "depend", "test", "installdirs", "uninstall", "errorcheck" and "filelist" in Makefile override the standard behaviour. MKC_REQUIRE_HEADERS, MKC_REQUIRE_DEFINES, MKC_REQUIRE_TYPES, MKC_REQUIRE_VARS, MKC_REQUIRE_MEMBERS, MKC_REQUIRE_FUNCS<n> and MKC_REQUIRE_CUSTOM do not change CFLAGS. mkc.subdir.mk and mkc.subprj.mk: "cleandir" target takes into account CLEANFILES, CLEANDIRS, DISTCLEANFILES and DISTCLEANDIRS variables (removes files). PCNAME.<lib> variable was introduced in mkc_imp.pkg-config.mk, this is a map from library name to pcname (.pc). Improvements for SHRTOUT. New variable OBJCOPY was introduced. Update of the presentation. Fix in manual page (sf.net bug #3441610). New regression tests (examples). -- Best regards, Aleksey Cheusov.