#! /usr/bin/perl use strict; my %FLAGS = { 'CFLAGS' => $ARGV[0], 'CPPFLAGS' => $ARGV[1], 'LDDFLAGS' => $ARGV[2], 'CXXFLAGS' => $ARGV[3], }; sub clean_and_deduplicate { my $arg = shift; my $return_flags = ""; my @flags = split( /\s+/, $arg ); my %seen = (); my @flags = grep { !$seen{$_}++ } @flags; foreach my $flag (@flags) { #print("FLAG: $flag\n"); $return_flags .= "$flag " unless $flag =~ m/PLATFORM/ || $flag =~ m/-DBUILD_DATETIME/ || $flag =~ m/-fdebug-prefix-map/ || $flag =~ m/-ffile-prefix-map/; } return $return_flags; } chdir("debian/tmp/usr/share/apache2/build/") || die("$1"); open( CONFIG_VARS, "<", "config_vars.mk" ) || die("config_vars.mk: $!"); open( TMP_CONFIG_VARS, ">", "tmp_config_vars.mk" ) || die("tmp_config_vars.mk: $1"); while ( my $line = ) { chomp $line; unless ( $line =~ m/(^|_)(LD|CPP|C|CXX)FLAGS/ ) { print TMP_CONFIG_VARS "$line\n"; } else { my ( $flag, $value ) = split( /\s*=\s*/, $line, 2 ); if ( exists $FLAGS{$flag} ) { $value .= ' ' . $FLAGS{$flag}; } my $mangled = clean_and_deduplicate($value); print "mangle: $flag: '$value' => '$mangled'\n"; printf TMP_CONFIG_VARS "%s = %s\n", $flag, $mangled; } } close(CONFIG_VARS); close(TMP_CONFIG_VARS); unlink("config_vars.mk") || die("unlink: config_vars.mk: $1"); rename( "tmp_config_vars.mk", "config_vars.mk" ) || die("rename: tmp_config_vars.mk: $1");