* Mon Mar 30 2020 vle@gmx.net
- Update to mk-configure-0.34.1
Fixes in mk-configure:
* broken builtins prog_* (broken since 0.29.2)
* MKC_REQUIRE_BUILTINS also sets BUILTIN.<builtin> variable
(broken -- always)
* mk/ also installs mkc_imp.foreign_autotools.mk (broken -- always)
* mkc_compiler_settings(1): unexpected loading of ../Makefile.inc
(broken -- 0.34.0)
* mk-configure.7:
* clang also supports WARNERR
* add documentation for MKC_REQUIRE_BUILTINS
* other minor clean-ups and fixes
* mkc_imp.foreign_autotools.mk: do not change .OBJDIR!
Fixes and improvements in tests/, examples/ and build infrastructure:
* examples/hello_calc2: build failure with gcc-10 (multiple
definition of `calc_lval'). Thanks to Sergei Trofimovich.
* examples/hello_autoconf: out-of-tree build failure
* examples/check_compiler_opts: run "cleandir" at the end of "test"
* examples/hello_require_tools: run "cleandir" at the end of "test"
* examples/subprojects/test.mk: better ignore nroff
warning "cannot adjust line"
* tests/dltest: run "cleandir" at the end of "test"
* tests/mkc_check_custom: run "cleandir" at the end of "test"
* tests/os_OpenBSD: run "cleandir" at the end of "test"
* tests/os_Linux: run "cleandir" at the end of "test"
* tests/require_prototype: run "cleandir" at the end of "test"
* tests/os_NetBSD: run "cleandir" at the end of "test"
* examples/hello_autoconf: use MKC_REQUIRE_BUILTINS
instead of MKC_CHECK_BUILTINS
* main.mk: clean -> clean-examples; cleandir -> cleandir-examples
Add example/Makefile for running tests after installing mk-configure
* Thu Mar 19 2020 vle@gmx.net
- Fix MKC_SYSCONFDIR (/usr/etc). Now it is /etc
* Tue Mar 17 2020 vle@gmx.net
- Use "bmkdep" as a default "build dependencies" tool
instead of "makedepend".
* Fri Mar 13 2020 vle@gmx.net
- Update to 0.34.0:
This release introduces some incompatibilities with older releases:
- mkc_install -l is changed
- Target "distclean" is considered deprecated.
Use target "configure" instead!
- Remove support for Pascal, Fortran and ObjC.
Only C and C++ are supported.
- Do not add ${LEXLIB} to LDADD if SRCS contains .l files.
You have to add it manually when needed or use new feature "libl".
- mkc_check_custom: remove options -p and -n
- LDREAL is either C or C++ compiler, not the linker
- mkc_check_custom: do not use CARGS anymore
- Introduce CXXOPTS and CXXOPTS_<prj> variables and
do not pass COPTS to C++ compiler. COPTS is only for C!
mk-configure build system changes:
- Introduce new targets "help", "help_subprj" and "help_use" and
appropriate framework for documenting the software project. See
mkc_imp.help.mk makefile. mk-configure itself uses this
framework, so, you can run "bmake help" before build. Also
introduce the following configuring variables for mk-configure:
USE_AWK, USE_ID, USE_INSTALL, USE_NM, USE_SH, USE_CC_COMPILERS,
USE_CXX_COMPILERS. See updated doc/INSTALL.md
- Add virtual targets "examples" in addition to "tests".
- Move helpers/* scripts to examples/helpers/ subdirectory. They
are for testing mk-configure only.
Mk files:
* C{,XX}FLAGS.{warns,ssp,pie,pic}, LDFLAGS.pie etc...:
Defaults for these values are determined at build time by
checking whether compiler/linker accepts the corresponding
option. Load compiler specific options from ~/.mk-c and
MKFILESDIR directories, and exit with error if they do not
exist. For generating such settings for compiler absent at build
time, use newly introduced script "mkc_compiler_settings".
* C{,XX}FLAGS:
Pass these flags to the compiler after C{,XX}FLAGS.warns
for overriding bad warnings/errors
* MKC_CHECK_{CC,CXX}_OPTS:
double underline symbols in the option is considered
as a single space
* MKC_CHECK_CUSTOM:
- pass MKC_CUSTOM_{CPPFLAGS,CFLAGS,CXXFLAGS,LDFLAGS,LDADD}.<check_name>
flags to the compiler
- introduce variable MKC_CUSTOM_NOAUTO.<checkname>
- introduce variable MKC_CUSTOM_CACHE.<checkname>
- introduce variable MKC_CHECK_CCLD_OPTS and MKC_CHECK_CXXLD_OPTS
* Introduce new variables CC_VERSION and CXX_VERSION determined
by mkc_check_compiler(1)
* Introduce INSTALL_FLAGS variables and remove undocumented
COPY, PRESERVE, INSTPRIV and RENAME
* Keep initial settings for mk-configure in sys.mk
instead of mkc_imp.vars.mk
* Introduce MKC_CUSTOM_LINK.<custom_check_name> variable for link testing
* Introduce CFLAGS.check and CXXFLAGS.check variables
* Set CFLAGS.dflt.sunpro to -errtags
* mkc.conf.mk: undefine MKC_CHECK_CC_OPTS, MKC_CHECK_CXX_OPTS after use
* Introduce new checks MKC_CHECK_CCLD_OPTS and MKC_CHECK_CXXLD_OPTS
* Introduce new "help" framework, see mkc_imp.help.mk section in man page
* mkc.minitest.mk: minor fix in target "cleandir"
Features:
- add support for C++ (extern "C") to all feature header files
- add new feature "libl" for libl.a or libfl.a
Utilities:
* mkc_install:
- "move" semantic is disabled forever, so flag -c is silently ignored
- add manual page
- flag -l is changed and becomes compatible with NetBSD install(1)
- actually it is almost completely reimplemented
* mkc_check_compiler:
- add man page
- exit status is 2, if bad option is specified
- CC defaults to "cc" as the documentation says
- detects not only compiler type, but also a version
- cache file name for C compiler type is _mkc_cc_type.*
* mkc_check_custom:
- switch to getopts
- add option -l and support for LDFLAGS and LDADD
- add new option -t and remove options -p and -n
- do not use CARGS anymore, use CFLAGS and CPPFLAGS instead
* mkc_which:
- add man page
* mkc_check_version:
- add man page
* mkc_get_deps:
- installed to libexec/ instead of bin/
Documentation update
Code clean-ups and minor fixes
- Update to 0.33.1:
Clarify problems with MAKE_VERSION variable.
mkc_imp.foreign_autotools.mk: fix for incorrect make invocation for
generated Makefile.
Remove -Wabi from GNU c++ warnings.
mkc_check_decl: use autodetected AWK.
- Update to 0.33.0:
Add new features "getdelin" and "strndup".
Fix MKC_CHECK_FUNCS<n> when MKC_FUNC_OR_DEFINE.<x> is "yes".
Fix awk in mkc_check_compiler. AWK is supposed to be replaced as
seen in Makefile.inc. This makes awk work correctly on solaris etc.
Thanks to Niclas Rosenvik!
Change the order of options passed to the C and C++ compiler. It
is: CPPFLAGS0, CPPFLAGS, CPPFLAGS_<project>, C{,XX}FLAGS,
C{,XX}FLAGS.ssp, C{,XX}FLAGS.pie, C{,XX}FLAGS.warns,
C{,XX}FLAGS_<project>, C{,XX}FLAGS.pic (for shared objects), COPTS,
COPTS_<project>.
scripts/mkc_check_custom: switch to /usr/xpg4/bin/sh on SunOS-5.10
Fixes in regression tests for Solaris 10 and 11.
examples/hello_libdeps: fix regression test on
Linux/mips64/eglibc-2.13.
* Sun Jan 05 2020 vle@gmx.net
- Update to 0.32.1:
Changes between 0.32.0 and 0.32.1:
* Fix MKC_CHECK_SIZEOF when having slashes in the header part.
Thanks to Niclas Rosenvik for the fix!
* Fix support for .cxx c++ files in profiled and shared libraries.
Thanks to Niclas Rosenvik for the fix!
* Fix in presentation/Makefile
* Fix in mk-configure.7 man page
* Fix at_do_* target
* Remove $(COPTS) from $(CFLAGS) and change COMPILE.{c,cc}
* Fix regression test examples/hello_errwarn on musl-based Linuxes (Alpine Linux)
Changes from 0.31.0 and 0.32.0
* Calculate WARNERR and {CC,CXX}FLAGS.warnerr lazily. This makes some
interesting scenaria possible, for example, setting WARNS in
Makefile.common or Makefile.inc top-level files.
* Feature "prog_gmake": fix fork-bomb seen on FreeBSD 12.0-RELEASE-p3
due to features of native make(1).
* Fixes for builtins prog_gm4, prog_gmake, prog_gawk and prog_flex
(multiline output)
* MKC_BUILTINS_*: fix find_n_match function in mkc_check_common.sh
* Minor fixes in examples/hello_{yaxx,calc2}
* Always apply -Werror=implicit-function-declaration for clang.
This fixes MKC_CHECK_FUNCS on clang-5.0.1 and earlier versions.
* mkc_imp.foreign_autotools.mk: if AT_MAKE is empty set it to "false"
* Get rid of builtin "endianess" (with single N)
* mkc_check_common.sh: always use mkc_which(1) instead of which(1)
* Updates for Lua code in examples/
* BMAKE_REQD check: workaround for broken bmake (seen on Darwin) that
defines empty MAKE_VERSION
* examples/hello_dictd/test.mk: avoid double-slash in dirs
* Thu Apr 11 2019 vle@gmx.net
- Update to 0.31.0:
* Fix in MKC_CHECK_PROTOTYPES. The problem was it says "found" for
undeclared prototypes.
* All FEATURES now check for _MKC_CHECK_<xxx> define. A check for
this define guarantees that #include <mkc_XXX.h> are not used
without appropriate MKC_FEATURES += <xxx> in Makefile.
* New publicly available mkc.conf.mk header was introduced. With a
help of it one can implement custom "FEATURES".
* MKC_CHECK_HEADERS, MKC_CHECK_HEADER_FILES, MKC_CHECK_DEFINES,
MKC_CHECK_TYPES, MKC_CHECK_VARS, MKC_CHECK_MEMBERS,
MKC_CHECK_FUNCS<n>, MKC_CHECK_PROTOTYPES, MKC_CHECK_SIZEOF and
MKC_PROTOTYPE_HEADERS.<name> now accepts a list of comma-separated
headers for checking at once.
For example, on NetBSD sys/fts.h requires preceding sys/types.h and
sys/stat.h. So, now we can write
MKC_CHECK_HEADERS = sys/types.h,sys/stat.h,fts.h
* MKC_CHECK_FUNCS<n>: new variable MKC_FUNC_OR_DEFINE.<func> was introduced.
With a help of it one can check for
function declaration of equivalent define.
* mkc_imp.conf-final.mk: duplicated entries are not added to CPPFLAGS,
CFLAGS, LDADD and SRCS.
* Man page for mkc_check_decl, mkc_check_sizeof and mkc_check_headers
were updated.
* mkc.minitest.mk: new variable MKC_DIFF was introduced for diff(1)
command.
* mkc_check_decl: new check type funcordefine was introduced.
* Improvements and minor fixes in regression tests and examples.
* This release was sucessfully tested on FreeBSD-11.1, diverse
glibc-based Linuxes, NetBSD-8.99, OpenBSD-6.4 and SunOS-5.11.
* Deprecated features were removed: DPLIBS and PKG_CONFIG_DEPS variables,
builtin "endianess".
* Mon Aug 06 2018 jengelh@inai.de
- Update description from manpage.
* Fri Jul 13 2018 dap.darkness@gmail.com
- Update to 0.30.0:
* Variables MKC_{CHECK,REQUIRE}_HEADER_FILES were introduced.
* Improvements and addons to regression tests.
* Improvements and minor fixes in
mkc_check_{header,decl,funclib,sizeof}.
* This may fix checking failure if -Werror=strict-prototyping
is passed to CFLAGS.
* OBJDIR_<project> is now set correctly with MAKEOBJDIRPREFIX.
* Fix build failure (mkc_check_prog not found).
* Fix MKC_FEATURES "fgenln".
* mkc_check_common.sh is installed to libexec directory.
- Let's ignore more tests (mkshlib, mkstaticlib, mkpiclib, mkdll,
mkprofilelib) & examples (hello_cxx, hello_cxxlib)
to prevent build-time issue.
Version: 0.29.1-bp150.2.4
* Sun May 29 2016 dap.darkness@gmail.com
- Added mkcmake.macros to provide rpm macros.
- Added mk-configure-rpmlintrc to skip some useless warnings.
- Don't override upstream's files permissions.
- Prevented files-duplicate warnings.
- Group was fixed.
* Sun Jan 17 2016 mpluskal@suse.com
- Update to 0.29.1
* FIX: features "progname", "warn", "err" and "fgetln" as well
as _mkcfake.c file were added to the list of installed ones.
* Tue Dec 02 2014 dap.darkness@gmail.com
- 0.29.0 version:
* New variables MKC_CHECK_CC_OPTS and MKC_CHECK_CXX_OPTS were
introduced for checking C/C++ compiler's options;
* Makefile.inc and Makefile.common are included after
system variables are set, in particular CC and CXX;
* CC_TYPE is now set in mk.init.mk;
* Fixes for "err" and "warn" features. Now verr(3), verrx(3),
vwarn(3) and vwarnx(3) functions are detected correctly
(the problem was seen on gcc-4.9/armv7);
* Fix support for COMPATLIB. Objects for "features" should not
be generated outside compatibility library;
* A number of fixes in regression tests: support for latest GCC,
lib64 and lib/tri-ple-ts Linuxes;
* mkc_check_custom:
- new option -e for checking stderr for emptyness,
- new option -b for printing yes/no instead of 1/0,
- additional options to compiler are passed.
- `bmake cleandir-*` to clean examples dir after %check.
* Sun Sep 14 2014 dap.darkness@gmail.com
- 0.28.0 version:
* no upstream changelog.
- Disabled not Linux friendly hello_libdeps test.
* Sun Jun 01 2014 dap.darkness@gmail.com
- Imported from repoforge.
- SUSEficated.
* Wed Apr 17 2013 david@hrbac.cz
- new upstream release
* Sun Jul 22 2012 vle@gmx.net
- update to 0.23.0
* Sun Apr 08 2012 denis@fateyev.com
- Bump to 0.22.0
* Mon Jan 02 2012 vle@gmx.net
- adapted for repoforge
* Tue Dec 27 2011 mike@altlinux.org
- tweak examples so that they're built as well but packaged pristine
* Mon Dec 26 2011 mike@altlinux.org
- don't install just-built examples as docs
* Sat Dec 24 2011 mike@altlinux.org
- further spec cleanup
- check fixup (thx upstream)
- extended BR: properly
* Mon Nov 21 2011 mike@altlinux.org
- dropped MKCATPAGES (thx upstream)
* Mon Nov 07 2011 mike@altlinux.org
- 0.21.2
- minor spec cleanup
* Tue Jun 29 2010 lav@altlinux.ru
- add check section
* Fri Jun 25 2010 lav@altlinux.ru
- disable examples build
* Thu Jun 24 2010 lav@altlinux.ru
- fix install, disable lua test, enable all tests
- update buildreqs
* Fri Jun 18 2010 lav@altlinux.ru
- new version 0.16.0 (with rpmrb script)
* Tue Nov 17 2009 lav@altlinux.ru
- new version 0.12.0 (with rpmrb script)
* Wed Jul 29 2009 lav@altlinux.ru
- build for Sisyphus