Note to self, don’t use GNU m4 on Win32

Bah, humbug !!!

the focal point of the entire operation is a suitable pre-processor.

The idea:

defined test substitution macros generated by front end for pre processor

template file that relies upon said macros

output to be generated from preprocessing the macros from in the template.

The problem?

Target platform: MicroShaft Windows NT 5.1 (XP)

At first I figured I would use the C Pre-Processor since MinGW is on the target box, along with several other development tools.

Then I remembered I have GNU utilities for Win32 installed on this machine. So I took a look and found that a port of GNU m4 v1.4 is installed. I learned enough of the m4 ‘macro’ language just for tasks like this but guess what!

m4.exe fails to expand all macros in the template file.

Being more then somewhat disappointed, I ssh’d into my OpenBSD machine and fed it through the m4 implementation it comes with (not GNU), and guess what?

That freaking works fine.

*unzips fly, pisses on m4.exe*

Odds are the 1.4.11 version of GNU m4 I have on FreeBSD installed from ports works, hell scripting OpenBSDs sed works for this task, let along custom perl !

So I’ve just used vim to quickly :%s/m4 defines/cpp defines and seem to have to use that in order to get it working. Nice, simple, and effective.