This file contains the information needed to assemble the list of perl configurations that will be used to build and test perl.

The file is devided into sections separated by a line that starts with an equals-sign (=). Each line in a section is combined with all lines from all the other sections. The default build-configurations file perlcurrent.cfg constist of four (4) sections:

This file wil yield 1 * 2 * 7 * 2 = 28 configurations. Test::Smoke will build perl in all of these 28 configurations and run the core test suite one (1), two (2) or three (3) times for each of those perls:

If a section consists of only one single line, like section 1 in the example, the options on this line are used in every configuration. This can be useful to set an alternate compiler (-Dcc=gcc) or to disable features that would fail anyway (-Uusefaststdio). [Thank you Merijn for contributing that insight!]

This will create the smokeconfiguration mysmoke_config and a small shellscript mysmoke.sh (or mysmoke.cmd if you are on Windows).

There are three (3) special prefixes: smoke55x, smoke562 and smoke58x. These will set the default answers for configsmoke.pl to be appropriate for smoking the maintenance branches for these versions of perl.

Since maintenence version 1.18.10, the default Policy.sh is generated from the policy-target sections in the buildconfigurations file. It is now possible to just add this three line section to your buildconfiguration file:

Some people use the posibility to handle site specific build environments from <builddir>/../Policy.sh. This excludes the use of the default Policy.sh. You will need to add the -DPERL_COPY_ON_WRITE flag to the ccflags='' line in your Policy.sh. After that you must add the policy-target section, as above, to your buildconfiguration file.

Small wrapper around Test::Smoke::run_smoke() that can use the settings from the smoke-configuration file. It runs the smoke cycle for all configurations and is a replacement for the now removed mktest.pl.

Small wrapper around Test::Smoke::Mailer that can use the settings from the smoke-configuration file. It will check if the report is already generated and do so if not. This is the replacement for the now removed mkovz.pl.

smokeperl.pl will always do the equivalent of runsmoke.pl and generate the report.

After running configsmoke.pl you should have a small wrapper-script, that sets up the environment and calls smokeperl.pl. All arguments passed to this script will be passed to smokeperl.pl! Please see smokeperl.pl for details.

The patches-to-apply-file has a simple format. It has each patch to apply on a single line and each line is semicolon separated with the full path to the patchfile in the first column and optionally the options to pass to patch(1) in the second column. By default -p1 is passed if no -pN option was specified.

This script assumes it is located in the directory where the Test::Smoke suite is installed. You can stop execution between smokes for different versions by putting the file .stopsmoking in that same directory.