You need a two-level approach.
The first level is to add the escaping for bmake, which is to double
each '$':
CONFIGURE_ARGS+= ... -bI:$$(PERL_INC)/perl.exp ...
Next, you need to add the escaping for the shell, by adding a '\' before
each '$' that reaches the shell:
CONFIGURE_ARGS+= ... -bI:\$$(PERL_INC)/perl.exp ...
You don't need "double quotes" around the whole variable value, that's
only needed when you use shell variables, but not when you compose shell
commands in bmake:
CONFIGURE_ARGS+= \
-Dlddlflags=-G \
-bI:\$$(PERL_INC)/perl.exp \
-bE:\$$(BASEEXT).exp \
-bnoentry \a
-lc \
-lm
This will preserve the '$' characters through both bmake and the shell.
The tricky detail is to know at which exact point these '$' characters
will be expanded later. The expression '$(PERL_INC)' is for a makefile,
due to the parentheses. But this would mean that there really needs to
be an environment variable named LDDLFLAGS3264 that has this exact
value, and that passing the flags directly to CONFIGURE_ARGS is probably
the wrong approach.
Roland