If you use GNAT, you can use GPR files for the project. There you can change the file name for specific packages, for example:
for Specification (Rectangular_Form) use "Rectangular_Method_1.ads";
for Implementation (Rectangular_Form) use "Rectangular_Method_1.adb";
you can even set this depending on the environment variable.
If your spec files should all look the same, you can only use Rectangular_Form.adsand use the implementation line at the top.
An example of a GPR file might look like this:
project Example is
type Methods is ("normal", "something_else");
Method : Methods := external ("METHOD", "normal");
package Naming is
case Method is
when "normal" =>
for Implementation ("Example") use "example_normal.adb";
when "something_else" =>
for Implementation ("Example") use "example_something.adb";
end case;
end Naming;
end Example;
gnatmake -P example.gpr METHOD -XMETHOD=... gnatmake .
example_*.adb Example, Example_Normal ..