#! /usr/bin/perl use strict; my %FLAGS = { 'CFLAGS' => $ARGV[0], 'CPPFLAGS' => $ARGV[1], 'LDDFLAGS' => $ARGV[2], }; 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/; } 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)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");