I agree with Adam Burry that a separate script is likely best for this. Not sure which languages you're familiar with, but here's a quick Python script that'll do the job:
#!/usr/bin/python
'''Makes a .m file from an enum in a C++ source file.'''
from __future__ import print_function
import sys
import re
def parse_cmd_line():
    '''Gets a filename from the first command line argument.'''
    if len(sys.argv) != 2:
        sys.stderr.write('Usage: enummaker [cppfilename]\n')
        sys.exit(1)
    return sys.argv[1]
def make_m_file(cpp_file, m_file):
    '''Makes an .m file from enumerations in a .cpp file.'''
    in_enum = False
    enum_val = 0
    lines = cpp_file.readlines()
    for line in lines:
        if in_enum:
            # Currently processing an enumeration
            if '}' in line:
                # Encountered a closing brace, so stop
                # processing and reset value counter
                in_enum = False
                enum_val = 0
            else:
                # No closing brace, so process line
                if '=' in line:
                    # If a value is supplied, use it
                    ev_string = re.match(r'[^=]*=(\d+)', line)
                    enum_val = int(ev_string.group(1))
                # Write output line to file
                e_out = re.match(r'[^=\n,]+', line)
                m_file.write(e_out.group(0).strip() + '=' +
                        str(enum_val) + ';\n')
                enum_val += 1
        else:
            # Not currently processing an enum,
            # so check for an enum definition
            enumstart = re.match(r'enum \w+ {', line)
            if enumstart:
                in_enum = True
def main():
    '''Main function.'''
    # Get file names
    cpp_name = parse_cmd_line()
    m_name = cpp_name.replace('cpp', 'm')
    print('Converting ' + cpp_name + ' to ' + m_name + '...')
    # Open the files
    try:
        cpp_file = open(cpp_name, 'r')
    except IOError:
        print("Couldn't open " + cpp_name + ' for reading.')
        sys.exit(1)
    try:
        m_file = open(m_name, 'w')
    except IOError:
        print("Couldn't open " + m_name + ' for writing.')
        sys.exit(1)
    # Translate the cpp file
    make_m_file(cpp_file, m_file)
    # Finish
    print("Done.")
    cpp_file.close()
    m_file.close()
if __name__ == '__main__':
    main()
Running ./enummaker.py testenum.cpp on the following file of that name:
/* Random code here */
enum LogID {
    LOG_ID_ITEM1=0,
    LOG_ID_ITEM2,
    LOG_ID_ITEM3=10,
    LOG_ID_ITEM4
};
/* More random code here */
enum Stuff {
    STUFF_ONE,
    STUFF_TWO,
    STUFF_THREE=99,
    STUFF_FOUR,
    STUFF_FIVE
};
/*  Yet more random code here */
produces a file testenum.m containing the following:
LOG_ID_ITEM1=0;
LOG_ID_ITEM2=1;
LOG_ID_ITEM3=10;
LOG_ID_ITEM4=11;
STUFF_ONE=0;
STUFF_TWO=1;
STUFF_THREE=99;
STUFF_FOUR=100;
STUFF_FIVE=101;
This script assumes that the closing brace of an enum block is always on a separate line, that the first identifier is defined on the line following the opening brace, that there are no blank lines between the braces, that enum appears at the start of a line, and that there is no space following the = and the number. Easy enough to modify the script to overcome these limitations. You could have your makefile run this automatically.