From 0f93067221f32ea42e0f7903ba162c17e86702a6 Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Sat, 17 Sep 2022 09:21:10 +0200 Subject: Convert README to README.md and OVERVIEW.md * README -> README.md + OVERVIEW.md * meson.build: Install README.md and OVERVIEW.md * Makefile.am: Distribute and install README.md and OVERVIEW.md * configure.ac: Set `foreign` option to automake. Without the `foreign` option, old versions of automake require a README file, which no longer exists. New versions (like 1.16.5) without the `foreign` option require README or README.md. --- Makefile.am | 2 +- OVERVIEW.md | 255 ++++++++++++++++++++++++++++++++++++++++++++++++++ README | 301 ----------------------------------------------------------- README.md | 43 +++++++++ configure.ac | 2 +- meson.build | 2 +- 6 files changed, 301 insertions(+), 304 deletions(-) create mode 100644 OVERVIEW.md delete mode 100644 README create mode 100644 README.md diff --git a/Makefile.am b/Makefile.am index c3182b4..03aa1e4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -77,7 +77,7 @@ noinst_DATA = \ doctags/mm-common-libstdc++-uninstalled.pc \ util/mm-common-util-uninstalled.pc -dist_doc_DATA = README +dist_doc_DATA = README.md OVERVIEW.md doc_DATA = skeletonmm.tar.gz skeletonmm_data_files = \ diff --git a/OVERVIEW.md b/OVERVIEW.md new file mode 100644 index 0000000..6fec949 --- /dev/null +++ b/OVERVIEW.md @@ -0,0 +1,255 @@ +# mm-common overview + +The following sections provide an overview of the various files shipped +with mm-common, and briefly explain their purpose. Detailed documentation +and usage instructions can be found in the files themselves. + +## mm-common-prepare and Autotools + +The mm-common-prepare shell script is installed in ${bindir} and must be +invoked from the bootstrap script of a binding module in order to set up +necessary support files in the project's source tree. It should be run +before any of Autotools' own setup utilities. The classic command line +options such as --copy and --force can be used to adjust the behavior of +mm-common-prepare. A typical autogen.sh would look like this: +``` + #! /bin/sh -e + test -n "$srcdir" || srcdir=`dirname "$0"` + test -n "$srcdir" || srcdir=. + + mm-common-prepare --copy --force "$srcdir" + autoreconf --force --install --verbose "$srcdir" + test -n "$NOCONFIGURE" || "$srcdir/configure" --enable-maintainer-mode "$@" +``` +Do not forget to set: +``` + ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS} +``` +in your project's top-level Makefile.am. "build" should be changed to the +name of the Autoconf M4 macro subdirectory of your project's source tree. +Also note that mm-common-prepare inspects the project's configure.ac file +for the AC_CONFIG_AUX_DIR([...]) argument. This is explained in further +detail below in the section on Automake include files. + +## mm-common-get and Meson + +The mm-common-get shell script is installed in ${bindir} and must be +invoked with run_command() early in a meson.build file. The meson.build file +should contain code similar to +``` + python3 = import('python').find_installation() + cmd_py = ''' + import os + import sys + sys.exit(os.path.isdir("@0@") or os.path.isfile("@0@")) + '''.format(project_source_root / '.git') + is_git_build = run_command(python3, '-c', cmd_py, check: false).returncode() != 0 + maintainer_mode_opt = get_option('maintainer-mode') + maintainer_mode = maintainer_mode_opt == 'true' or \ + (maintainer_mode_opt == 'if-git-build' and is_git_build) + mm_common_get = find_program('mm-common-get', required: false) + if maintainer_mode and not mm_common_get.found() + message('Maintainer mode requires the \'mm-common-get\' command. If it is not found,\n' + + 'install the \'mm-common\' package, version 1.0.0 or higher.') + # If meson --wrap-mode != forcefallback, Meson falls back to the mm-common + # subproject only if mm-common-get is required. + mm_common_get = find_program('mm-common-get', required: true) + endif + if maintainer_mode + # Copy files to untracked/build_scripts and untracked/docs. + run_command(mm_common_get, '--force', + project_source_root / 'untracked' / 'build_scripts', + project_source_root / 'untracked' / 'docs', + check: true, + ) + endif +``` + +## Autoconf M4 macros (Autotools) + +The Autoconf M4 macros are installed into the system-wide macro repository +in the ${datadir}/aclocal directory. Since all used M4 macros are copied +into aclocal.m4, these macro files are required only in maintainer-mode. +For this reason, they are not copied into the source tree of a project by +mm-common-prepare. If mm-common is installed to a different prefix than +Automake, it may be necessary to adjust ACLOCAL_PATH accordingly so that +aclocal can find the M4 files: +``` + export ACLOCAL_PATH="${mm_common_prefix}/share/aclocal" +``` +This step is not necessary when using jhbuild, as it takes care of setting +up the environment for using the locally built modules. + +- macros/mm-common.m4: (generated from macros/mm-common.m4.in) \ + Provides MM_PREREQ() for requiring a minimum version of mm-common, and + an internal initialization macro shared by the other mm-common macros. + +- macros/mm-warnings.m4: \ + Implements the MM_ARG_ENABLE_WARNINGS() Autoconf macro for easy setup + of compiler diagnostics through the --enable-warnings configure option. + +- macros/mm-doc.m4: \ + Implements the MM_ARG_ENABLE_DOCUMENTATION() Autoconf macro to initialize + the documentation support for a C++ binding package. Among other things, + it provides the --enable-documentation configure option, and checks for + the required utilities. + The other Autoconf macro defined here is MM_ARG_WITH_TAGFILE_DOC(), which + ties all the ends together in order to make cross-referencing to external + documentation work. This macro should be called once for each external + Doxygen tag file a binding package depends on. It implements a configure + option to override tag file locations, attempts automatic configuration + if possible, and takes care of building the list of tag files and their + default base paths for substitution into the configuration Doxyfile. It + also generates the command line options for doc-install.pl. + +- macros/mm-module.m4: \ + The magic MM_INIT_MODULE() macro takes care of defining the various + substitution variables and preprocessor macros to identify the name, + version and API version of a C++ binding module. + +- macros/mm-pkg.m4: \ + The helper macro MM_PKG_CONFIG_SUBST, which simplifies the retrieval of + specific configuration values from pkg-config. Checks for particular + utility programs are also defined here, such as MM_CHECK_GNU_MAKE and + MM_CHECK_PERL. + +- macros/mm-dietlib.m4: \ + Implements Autoconf macros which provide options intended to reduce the + binary size of the generated binding library, typically for embedded use. + The MM_PROG_GCC_VISIBILITY macro is defined in this file as well. + +- macros/mm-ax_cxx_compile_stdcxx.m4: \ + Implements the MM_AX_CXX_COMPILE_STDCXX() macro to test and set flags + for C++11/14/17 compatibility of the C++ compiler. This is identical to the + AX_CXX_COMPILE_STDCXX() macro described at + , + except for the MM_ prefix. + +## Automake include files (Autotools) + +The Automake include files are located in the am_include/ directory. +The installed mm-common-prepare program copies all of the .am files into +a project's source tree. If AC_CONFIG_AUX_DIR([...]) is specified in +the configure.ac file, the .am files will be placed in the indicated +subdirectory. + +- am_include/generate-binding.am: \ + Variables and rules for running the gmmproc code generator to produce + the source code files for a C++ binding module. + +- am_include/compile-binding.am: \ + Variables and rules for compiling and linking the shared library which + implements a C++ binding module. + +- am_include/doc-reference.am: \ + Variables and rules for building the API reference documentation using + Doxygen, and to create a Devhelp book for the library. The installation + rules also take care of translating references to external documentation + in the generated hypertext documents. + +- am_include/dist-changelog.am: \ + A dist-hook rule to automatically generate a ChangeLog file when making + a release, intended to be used by modules which use the version control + log exclusively to document changes. + +## Python build scripts (Meson) + +These scripts can be called from meson.build files with run_command(), +custom_target(), meson.add_postconf_script(), meson.add_install_script() +and meson.add_dist_script(). + +- util/build_scripts/generate-binding.py: \ + Commands for running the gmmproc code generator to produce + the source code files for a C++ binding module. + +- util/build_scripts/doc-reference.py: \ + Commands for building the API reference documentation using + Doxygen, and to create a Devhelp book for the library. The installation + rules also take care of translating references to external documentation + in the generated hypertext documents. + +- util/build_scripts/dist-changelog.py: \ + A git command to generate a ChangeLog file when making a release, + intended to be used by modules which use the version control + log exclusively to document changes. + +- util/build_scripts/dist-build-scripts.py: \ + Commands that trim the distribution directory before a tarball is made. + The scripts copied by mm-common-get are distributed, although they are + not checked into the git repository. All .gitignore files and an empty build/ + directory are removed + +- util/build_scripts/check-dllexport-usage.py: \ + Command that checks on the gmmproc version that is to be used or has been used + to generate the sources, to check whether to use compiler directives to + export symbols. Only used for Visual Studio or clang-cl builds. + +## Documentation utilities (Meson and Autotools) + +These are two Perl scripts and two equivalent Python scripts, a style sheet, +and one XSL transformation which assist with the task of generating and installing +the Doxygen reference documentation. At least doc-install.pl or doc-install.py +is also required for tarball builds. Autotools uses the Perl scripts. +Meson uses the Python scripts. + +Autotools: To avoid copying these files into all binding modules, they are +distributed and installed with the mm-common module. Those binding modules +which shall depend on mm-common only in maintainer-mode must call +MM_CONFIG_DOCTOOL_DIR([...]) in configure.ac to indicate to mm-common-prepare +that it should copy the documentation utilities into the project's source tree. +Otherwise the files installed with mm-common will be used automatically. + +- util/doc-postprocess.pl: \ + util/doc_postprocess.py: \ + A simple script to post-process the HTML files generated by Doxygen. + It replaces various code constructs that do not match the coding style + used throughout the C++ bindings. For instance, it rewrites function + prototypes in order to place the reference symbol (&) next to the type + instead of the name of the argument. + +- util/doc-install.pl: \ + util/doc_install.py: \ + A replacement for the installdox script generated by Doxygen. Its + purpose is to translate references to external documentation at the + time the documentation is installed. This step is necessary because + the documentation is included in the tarballs, and the location of + external documentation on the installation system is not known at the + time the documentation is generated. + Apart from replacing the functionality of installdox, doc-install.pl + also acts as a drop-in replacement for the classic BSD install command + for easy integration with Automake. It also translates Devhelp books + as well, and will happily pass through unrecognized files without any + alterations. + +- util/doxygen.css: \ + A Cascading Style Sheet to unify the appearance of the HTML reference + documentation generated by Doxygen for each C++ binding module. + This file is deprecated. Use util/doxygen-extra.css instead. + +- util/doxygen-extra.css: \ + A Cascading Style Sheet to unify the appearance of the HTML reference + documentation generated by Doxygen for each C++ binding module. + +- util/tagfile-to-devhelp2.xsl: \ + An XSLT script to generate a Devhelp2 book for the Doxygen reference + documentation. The generated Doxygen tag file serves as the input of + the translation. + +## GNU C++ Library tag file + +All modules in the GNOME C++ bindings set make use of the C++ standard +library in the API. As the GNU C++ Library shipped with GCC also uses +Doxygen for its reference documentation, its tag file is made available +by mm-common at a shared location for use by all C++ binding modules. + +- doctags/libstdc++.tag: \ + The Doxygen tag file for the GNU libstdc++ reference documentation + hosted at . + This file is distributed with release archives of mm-common, but not + checked into version control on gnome.org. If mm-common is built with + Autotools in maintainer-mode or with Meson and use-network=true, + the file will be downloaded automatically from the gcc.gnu.org web server. + The file libstdc++.tag is installed into the package data directory + of mm-common. The mm-common-libstdc++ pkg-config module defines the + variables ${doxytagfile} and ${htmlrefpub}, which can be queried for + the location of the tag file and the URL of the online documentation. diff --git a/README b/README deleted file mode 100644 index 6b1ce92..0000000 --- a/README +++ /dev/null @@ -1,301 +0,0 @@ -This module is part of the GNOME C++ bindings effort . - -The mm-common module provides the build infrastructure and utilities -shared among the GNOME C++ binding libraries. It is only a required -dependency for building the C++ bindings from the gnome.org version -control repository. An installation of mm-common is not required for -building tarball releases, unless configured to use maintainer-mode. - -Release archives of mm-common include the Doxygen tag file for the -GNU C++ Library reference documentation. It is covered by the same -licence as the source code it was extracted from. More information -is available at . - -Autotools or Meson? -=================== - -mm-common can be built with Autotools or Meson. Building with Autotools -may be phased out in the future. - -The files that mm-common installs and mm-common-prepare copies to other -modules are useful in modules that are built with Autotools. -The files that mm-common installs and mm-common-get copies to other -modules are useful in modules that are built with Meson. - -The files in the skeletonmm directory show the start of a project that will -use Meson. - -Skeleton C++ binding module -=========================== - -When creating a new C++ binding module based on mm-common, the easiest way -to get started is to copy the skeletonmm directory shipped with mm-common. -It contains the build support files required for a C++ binding module using -Meson, gmmproc and glibmm. - -In order to create a new binding project from the copied skeleton directory, -any files which have "skeleton" in the filename must be renamed. References -to the project name or author in the files need to be substituted with the -actual name and author of the new binding. - -mm-common overview -================== - -The following sections provide an overview of the various files shipped -with mm-common, and briefly explain their purpose. Detailed documentation -and usage instructions can be found in the files themselves. - -mm-common-prepare and Autotools -------------------------------- - -The mm-common-prepare shell script is installed in ${bindir} and must be -invoked from the bootstrap script of a binding module in order to set up -necessary support files in the project's source tree. It should be run -before any of Autotools' own setup utilities. The classic command line -options such as --copy and --force can be used to adjust the behavior of -mm-common-prepare. A typical autogen.sh would look like this: - - #! /bin/sh -e - test -n "$srcdir" || srcdir=`dirname "$0"` - test -n "$srcdir" || srcdir=. - - mm-common-prepare --copy --force "$srcdir" - autoreconf --force --install --verbose "$srcdir" - test -n "$NOCONFIGURE" || "$srcdir/configure" --enable-maintainer-mode "$@" - -Do not forget to set: - - ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS} - -in your project's top-level Makefile.am. "build" should be changed to the -name of the Autoconf M4 macro subdirectory of your project's source tree. -Also note that mm-common-prepare inspects the project's configure.ac file -for the AC_CONFIG_AUX_DIR([...]) argument. This is explained in further -detail below in the section on Automake include files. - -mm-common-get and Meson ------------------------ - -The mm-common-get shell script is installed in ${bindir} and must be -invoked with run_command() early in a meson.build file. The meson.build file -should contain code similar to - - python3 = import('python').find_installation() - cmd_py = ''' - import os - import sys - sys.exit(os.path.isdir("@0@") or os.path.isfile("@0@")) - '''.format(project_source_root / '.git') - is_git_build = run_command(python3, '-c', cmd_py, check: false).returncode() != 0 - maintainer_mode_opt = get_option('maintainer-mode') - maintainer_mode = maintainer_mode_opt == 'true' or \ - (maintainer_mode_opt == 'if-git-build' and is_git_build) - mm_common_get = find_program('mm-common-get', required: false) - if maintainer_mode and not mm_common_get.found() - message('Maintainer mode requires the \'mm-common-get\' command. If it is not found,\n' + - 'install the \'mm-common\' package, version 1.0.0 or higher.') - # If meson --wrap-mode != forcefallback, Meson falls back to the mm-common - # subproject only if mm-common-get is required. - mm_common_get = find_program('mm-common-get', required: true) - endif - if maintainer_mode - # Copy files to untracked/build_scripts and untracked/docs. - run_command(mm_common_get, '--force', - project_source_root / 'untracked' / 'build_scripts', - project_source_root / 'untracked' / 'docs', - check: true, - ) - endif - -Autoconf M4 macros (Autotools) ------------------------------- - -The Autoconf M4 macros are installed into the system-wide macro repository -in the ${datadir}/aclocal directory. Since all used M4 macros are copied -into aclocal.m4, these macro files are required only in maintainer-mode. -For this reason, they are not copied into the source tree of a project by -mm-common-prepare. If mm-common is installed to a different prefix than -Automake, it may be necessary to adjust ACLOCAL_PATH accordingly so that -aclocal can find the M4 files: - - export ACLOCAL_PATH="${mm_common_prefix}/share/aclocal" - -This step is not necessary when using jhbuild, as it takes care of setting -up the environment for using the locally built modules. - -macros/mm-common.m4: (generated from macros/mm-common.m4.in) - Provides MM_PREREQ() for requiring a minimum version of mm-common, and - an internal initialization macro shared by the other mm-common macros. - -macros/mm-warnings.m4: - Implements the MM_ARG_ENABLE_WARNINGS() Autoconf macro for easy setup - of compiler diagnostics through the --enable-warnings configure option. - -macros/mm-doc.m4: - Implements the MM_ARG_ENABLE_DOCUMENTATION() Autoconf macro to intialize - the documentation support for a C++ binding package. Among other things, - it provides the --enable-documentation configure option, and checks for - the required utilities. - The other Autoconf macro defined here is MM_ARG_WITH_TAGFILE_DOC(), which - ties all the ends together in order to make cross-referencing to external - documentation work. This macro should be called once for each external - Doxygen tag file a binding package depends on. It implements a configure - option to override tag file locations, attempts automatic configuration - if possible, and takes care of building the list of tag files and their - default base paths for substitution into the configuration Doxyfile. It - also generates the command line options for doc-install.pl. - -macros/mm-module.m4: - The magic MM_INIT_MODULE() macro takes care of defining the various - substitution variables and preprocessor macros to identify the name, - version and API version of a C++ binding module. - -macros/mm-pkg.m4: - The helper macro MM_PKG_CONFIG_SUBST, which simplifies the retrieval of - specific configuration values from pkg-config. Checks for particular - utility programs are also defined here, such as MM_CHECK_GNU_MAKE and - MM_CHECK_PERL. - -macros/mm-dietlib.m4: - Implements Autoconf macros which provide options intended to reduce the - binary size of the generated binding library, typically for embedded use. - The MM_PROG_GCC_VISIBILITY macro is defined in this file as well. - -macros/mm-ax_cxx_compile_stdcxx.m4: - Implements the MM_AX_CXX_COMPILE_STDCXX() macro to test and set flags - for C++11/14/17 compatibility of the C++ compiler. This is identical to the - AX_CXX_COMPILE_STDCXX() macro described at - http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html, - except for the MM_ prefix. - -Automake include files (Autotools) ----------------------------------- - -The Automake include files are located in the am_include/ directory. -The installed mm-common-prepare program copies all of the .am files into -a project's source tree. If AC_CONFIG_AUX_DIR([...]) is specified in -the configure.ac file, the .am files will be placed in the indicated -subdirectory. - -am_include/generate-binding.am: - Variables and rules for running the gmmproc code generator to produce - the source code files for a C++ binding module. - -am_include/compile-binding.am: - Variables and rules for compiling and linking the shared library which - implements a C++ binding module. - -am_include/doc-reference.am: - Variables and rules for building the API reference documentation using - Doxygen, and to create a Devhelp book for the library. The installation - rules also take care of translating references to external documentation - in the generated hypertext documents. - -am_include/dist-changelog.am: - A dist-hook rule to automatically generate a ChangeLog file when making - a release, intended to be used by modules which use the version control - log exclusively to document changes. - -Python build scripts (Meson) ----------------------------- - -These scripts can be called from meson.build files with run_command(), -custom_target(), meson.add_postconf_script(), meson.add_install_script() -and meson.add_dist_script(). - -util/build_scripts/generate-binding.py: - Commands for running the gmmproc code generator to produce - the source code files for a C++ binding module. - -util/build_scripts/doc-reference.py: - Commands for building the API reference documentation using - Doxygen, and to create a Devhelp book for the library. The installation - rules also take care of translating references to external documentation - in the generated hypertext documents. - -util/build_scripts/dist-changelog.py: - A git command to generate a ChangeLog file when making a release, - intended to be used by modules which use the version control - log exclusively to document changes. - -util/build_scripts/dist-build-scripts.py: - Commands that trim the distribution directory before a tarball is made. - The scripts copied by mm-common-get are distributed, although they are - not checked into the git repository. All .gitignore files and an empty build/ - directory are removed - -util/build_scripts/check-dllexport-usage.py: - Command that checks on the gmmproc version that is to be used or been used - to generate the sources, to check whether to use compiler directives to - export symbols. Only used for Visual Studio or clang-cl builds. - -Documentation utilities (Meson and Autotools) ---------------------------------------------- - -These are two Perl scripts, a style sheet, and one XSL transformation -which assist with the task of generating and installing the Doxygen -reference documentation. At least doc-install.pl is also required for -tarball builds. - -Autotools: To avoid copying these files into all binding modules, they are -distributed and installed with the mm-common module. Those binding modules -which shall depend on mm-common only in maintainer-mode must call -MM_CONFIG_DOCTOOL_DIR([...]) in configure.ac to indicate to mm-common-prepare -that it should copy the documentation utilities into the project's source tree. -Otherwise the files installed with mm-common will be used automatically. - -util/doc-postprocess.pl: -util/doc_postprocess.py: - A simple script to post-process the HTML files generated by Doxygen. - It replaces various code constructs that do not match the coding style - used throughout the C++ bindings. For instance, it rewrites function - prototypes in order to place the reference symbol (&) next to the type - instead of the name of the argument. - -util/doc-install.pl: -util/doc_install.py: - A replacement for the installdox script generated by Doxygen. Its - purpose is to translate references to external documentation at the - time the documentation is installed. This step is necessary because - the documentation is included in the tarballs, and the location of - external documentation on the installation system is not known at the - time the documentation is generated. - Apart from replacing the functionality of installdox, doc-install.pl - also acts as a drop-in replacement for the classic BSD install command - for easy integration with Automake. It also translates Devhelp books - as well, and will happily pass through unrecognized files without any - alterations. - -util/doxygen.css: - A Cascading Style Sheet to unify the appearance of the HTML reference - documentation generated by Doxygen for each C++ binding module. - This file is deprecated. Use util/doxygen-extra.css instead. - -util/doxygen-extra.css: - A Cascading Style Sheet to unify the appearance of the HTML reference - documentation generated by Doxygen for each C++ binding module. - -util/tagfile-to-devhelp2.xsl: - An XSLT script to generate a Devhelp2 book for the Doxygen reference - documentation. The generated Doxygen tag file serves as the input of - the translation. - -GNU C++ Library tag file ------------------------- - -All modules in the GNOME C++ bindings set make use of the C++ standard -library in the API. As the GNU C++ Library shipped with GCC also uses -Doxygen for its reference documentation, its tag file is made available -by mm-common at a shared location for use by all C++ binding modules. - -doctags/libstdc++.tag: - The Doxygen tag file for the GNU libstdc++ reference documentation - hosted at . - This file is distributed with release archives of mm-common, but not - checked into version control on gnome.org. If mm-common is built with - Autotools in maintainer-mode or with Meson and use-network=true, - the file will be downloaded automatically from the gcc.gnu.org web server. - The file libstdc++.tag is installed into the package data directory - of mm-common. The mm-common-libstdc++ pkg-config module defines the - variables ${doxytagfile} and ${htmlrefpub}, which can be queried for - the location of the tag file and the URL of the online documentation. diff --git a/README.md b/README.md new file mode 100644 index 0000000..995fa91 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# mm-common + +This module is part of the GNOME C++ bindings effort . + +The mm-common module provides the build infrastructure and utilities +shared among the GNOME C++ binding libraries. It is only a required +dependency for building the C++ bindings from the gnome.org version +control repository. An installation of mm-common is not required for +building tarball releases, unless configured to use maintainer-mode. + +Release archives of mm-common include the Doxygen tag file for the +GNU C++ Library reference documentation. It is covered by the same +licence as the source code it was extracted from. More information +is available at . + +# Autotools or Meson? + +mm-common can be built with Autotools or Meson. Autotools support may be +dropped in the future. + +The files that mm-common installs and mm-common-prepare copies to other +modules are useful in modules that are built with Autotools. +The files that mm-common installs and mm-common-get copies to other +modules are useful in modules that are built with Meson. + +The files in the skeletonmm directory show the start of a project that will +use Meson. + +# Skeleton C++ binding module + +When creating a new C++ binding module based on mm-common, the easiest way +to get started is to copy the `skeletonmm` directory shipped with mm-common. +It contains the build support files required for a C++ binding module using +Meson, gmmproc and glibmm. + +In order to create a new binding project from the copied skeleton directory, +any files which have `skeleton` in the filename must be renamed. References +to the project name or author in the files need to be substituted with the +actual name and author of the new binding. + +# mm-common overview + +See [OVERVIEW.md](OVERVIEW.md) for an overview of the files shipped with mm-common. diff --git a/configure.ac b/configure.ac index eed33d7..06b0012 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ AC_INIT([mm-common], [1.0.4], [https://gitlab.gnome.org/GNOME/mm-common/issues/] AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([util/mm-common-prepare.in]) -AM_INIT_AUTOMAKE([1.9 -Wno-portability check-news no-dist-gzip dist-xz no-define std-options]) +AM_INIT_AUTOMAKE([1.9 -Wno-portability check-news no-dist-gzip dist-xz no-define std-options foreign]) # Support silent build rules. # Disable by either passing --disable-silent-rules to configure or passing V=1 to make. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) diff --git a/meson.build b/meson.build index 8a18c36..821f5c6 100644 --- a/meson.build +++ b/meson.build @@ -272,7 +272,7 @@ custom_target(tarball_filename, install_dir: install_docdir, install: true ) -install_data('README', install_dir: install_docdir) +install_data('OVERVIEW.md', 'README.md', install_dir: install_docdir) # Either curl or wget is required for downloading libstdc++.tag, # used by Doxygen. -- cgit v1.2.1