#!/usr/bin/perl -w my $do_def = 0; if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) { shift; $do_def = 1; } print < #ifdef G_HAVE_GNUC_VISIBILITY EOF if ($do_def) { print <) { # ignore empty lines next if /^\s*$/; # skip comments if ($_ =~ /^\s*\/\*/) { $in_comment = 1; } if ($in_comment) { if ($_ =~ /\*\/\s$/) { $in_comment = 0; } next; } # handle ifdefs if ($_ =~ /^\#endif/) { if (!$in_skipped_section) { print $_; } $in_skipped_section = 0; next; } if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/) { $in_skipped_section = 1; } if ($in_skipped_section) { next; } if ($_ =~ /^\#ifn?def/) { print $_; next; } if ($_ =~ /^\#if.*(IN_FILE|IN_HEADER)/) { print $_; next; } chop; my $str = $_; my @words; my $attributes = ""; @words = split(/ /, $str); $str = shift(@words); chomp($str); my $alias = "IA__".$str; # Drop any Win32 specific .def file syntax, but keep attributes foreach $word (@words) { $attributes = "$attributes $word" unless $word eq "PRIVATE"; } if (!$do_def) { print <