#!/usr/bin/perl

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

use strict;
use warnings;

use FindBin qw( $Bin );
use File::Spec::Functions qw( catdir catfile updir );

# Execute from the root of the Lucy repository.
chdir catdir( $Bin, updir(), updir() );

my $CHAZ_DIR = 'charmonizer';
my $MELD_EXE = catfile( $CHAZ_DIR, 'buildbin', 'meld.pl' );
my $LUCY_CHAZ_MAIN = catfile( $CHAZ_DIR, 'charmonize.c' );

# Clownfish runtime.
{
    my $out = catfile(qw( clownfish runtime common charmonizer.c ));
    unlink $out;
    system( $MELD_EXE, '--probes=', "--files=$LUCY_CHAZ_MAIN", "--out=$out" );
}

# Lucy core.
{
    my $out = catfile(qw( common charmonizer.c ));
    unlink $out;
    system( $MELD_EXE, '--probes=', "--files=$LUCY_CHAZ_MAIN", "--out=$out" );
}


Add devel script which refreshes charmonizer.c.
Add devel script which refreshes charmonizer.c.

Add devel/bin/regen_charmonizer.pl, which regenerates all
"charmonizer.c" meld files in the entire Lucy repository and allows us
to omit a step in all our host-specific build scripts.
