How do I generate a new board with a different clock speed?

What I want to do is go to the Tools->Boards menu and have an entry called "AtTiny85 1MHz" and have aa definition of F_CPU=1000000. The advantage here is that I can use F_CPU to figure out what clock prescale to set, and by having this set for the board it will force included libraries to compile with F_CPU=1000000, which means that libraries like millis(), that rely on F_CPU, will be compiled with the desired F_CPU. But between boards.txt, the hardware subdirectory, and what appears to be a convoluted and undocumented directory structure, I haven't a clue as to where to begin.

I would like to write my source code so I can determine the desired clock speed by selecting a board with 1, 2, 4, 8 or 16MHz in its name, and the code will compile, select the right prescale in setup, and just run my code. So if I have problems at 1MHz then I can try 2MHz, rhen 4MHz, as I look for a speed compatible with my external circuitry.

The goal is to produce a really-low-power system that can run off a coin cell battery. It will also be asleep 99 44/100% of the time, which makes for good floats. Or is that soap that has floating point? Anyway, I hope you can see what I'm asking for and suggest ways to create a new board type. I couldn't find an old board type for AtTiny85. But I might be looking in the wrong place.

The goal is to produce a really-low-power system that can run off a coin cell battery.

The standard ATmega328 can run off a coin cell for years, as described in this exhaustive blog post.

I think you will find it not worthwhile to mess with clock speeds, as the millis() timer and so many peripheral interface settings depend on the precise value. Lowering the clock speed usually does not save significant energy, as all instructions just take longer to execute.

For most of my low power projects, I use an ATmega328 with a 32 kHz crystal on the OSC pins and Timer2 for a real time clock, then use the internal 8 MHz RC oscillator for the tasks to be executed during the infrequent waking periods.

Is there a reason you aren't just using TinyCore? That'll let you use the ATTiny85 at 1MHz without messing around with board files.

Even ATTinyCore does not provide options for internal clock for 2 or 4 MHz, the ones that require changing the prescaler after the chip starts.

You do realize, that while the chip is in SLEEP_MODE_POWERDOWN, the clock is stopped - power consumption in this mode is the same regardless of what speed the chip is clocked at.