| 418 | |
| 419 | === {{{Root/Xyz/inc/config*}}} and {{{Root/Xyz/src/XyzConfig.h}}} |
| 420 | |
| 421 | It is considered a bad thing to distribute configuration files in the way it has been done before. |
| 422 | So far, {{{XyzConfig.h}}} had two sections. If the build was occurring on a system where the configure script could run, {{{XyzConfig.h}}} would include {{{<builddir>/inc/config_xyz.h}}} (the file generated by configure). |
| 423 | If configure wasn't present (e.g., MSVS), {{{XyzConfig.h}}} would fall through to the second half. |
| 424 | This would include {{{configall_system.h}}} and then add whatever else was necessary. |
| 425 | |
| 426 | The new system uses two files generated by configure: {{{config.h}}}, which is what is used when building libXyz, and a smaller {{{config_xyz.h}}}, which is what a client uses when building against libXyz. |
| 427 | {{{XyzConfig.h}}} no longer includes a second section for use by MSVS. |
| 428 | Instead, this information is moved into {{{inc/config_xyz_default.h}}} and {{{inc/config_xyz.h}}}. |
| 429 | |
| 430 | By changing the {{{configure.ac}}} statement from {{{AC_CONFIG_HEADER([config_xyz.h])}}} to {{{AC_CONFIG_HEADER([config.h config_xyz.h])}}}, the new file {{{config.h}}} takes the role of the previous {{{config_xyz.h}}}. It is created automatically by autoconf, which is run by {{{run_autotools}}}. The new {{{config_xyz.h}}} is for defining public symbols only. It's template file {{{config_xyz.h.in}}} has to be created by hand. See [wiki:pm-config-header here] for more information. |