diff options
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf-2.23.0-win32.patch | 558 | ||||
-rw-r--r-- | glib/glib-2.28.1-win32-2.patch | 553 | ||||
-rwxr-xr-x | glib/makefile.mk | 19 | ||||
-rw-r--r-- | glib/prj/d.lst | 3 | ||||
-rw-r--r-- | pango/makefile.mk | 2 | ||||
-rw-r--r-- | pango/pango-1.28.3-win32.patch | 917 |
6 files changed, 580 insertions, 1472 deletions
diff --git a/gdk-pixbuf/gdk-pixbuf-2.23.0-win32.patch b/gdk-pixbuf/gdk-pixbuf-2.23.0-win32.patch index 2677ef0ca1c7..3c56febbad6b 100644 --- a/gdk-pixbuf/gdk-pixbuf-2.23.0-win32.patch +++ b/gdk-pixbuf/gdk-pixbuf-2.23.0-win32.patch @@ -197,7 +197,7 @@ @@ -1,9 +1,19 @@ -TOP = ..\.. PRJ_TOP = .. -+GLIB_TOP = $(PRJ_TOP)\..\..\..\..\..\glib\wntmsci12.pro\misc\build\glib-2.28.1 ++GLIB_TOP = PACKAGE = gdk_pixbuf PKG_VER = $(GDK_PIXBUF_VER) +GLIB_INC = -I$(OUTDIR)\inc\external\glib-2.0 @@ -212,7 +212,7 @@ +GDIPLUS_LIB = gdiplus.lib -!INCLUDE $(TOP)/glib/build/win32/make.msc -+!INCLUDE $(GLIB_TOP)\build\win32\make.msc ++!INCLUDE $(OUTDIR)\inc\external\glib-2.0\make.msc !IFNDEF PERL PERL = perl @@ -270,11 +270,11 @@ gdk-pixbuf-marshal.h: gdk-pixbuf-marshal.list - ..\..\glib\gobject\glib-genmarshal --prefix=_gdk_pixbuf_marshal gdk-pixbuf-marshal.list --header >gdk-pixbuf-marshal.h -+ $(GLIB_TOP)\glib\gobject\glib-genmarshal --prefix=_gdk_pixbuf_marshal gdk-pixbuf-marshal.list --header >gdk-pixbuf-marshal.h ++ $(OUTDIR)\bin\glib-genmarshal --prefix=_gdk_pixbuf_marshal gdk-pixbuf-marshal.list --header >gdk-pixbuf-marshal.h gdk-pixbuf-marshal.c: gdk-pixbuf-marshal.h gdk-pixbuf-marshal.list - ..\..\glib\gobject\glib-genmarshal --prefix=_gdk_pixbuf_marshal gdk-pixbuf-marshal.list --body >gdk-pixbuf-marshal.c -+ $(GLIB_TOP)\glib\gobject\glib-genmarshal --prefix=_gdk_pixbuf_marshal gdk-pixbuf-marshal.list --body >gdk-pixbuf-marshal.c ++ $(OUTDIR)\bin\glib-genmarshal --prefix=_gdk_pixbuf_marshal gdk-pixbuf-marshal.list --body >gdk-pixbuf-marshal.c -gdk-pixbuf-alias.h: gdk-pixbuf.symbols - perl makegdkpixbufalias.pl < gdk-pixbuf.symbols > gdk-pixbuf-alias.h @@ -333,7 +333,7 @@ # gdk-pixbuf-enum-types.h : $(gdk_pixbuf_headers) makefile.msc - $(PERL) $(GLIB)\gobject\glib-mkenums \ -+ $(PERL) $(PRJ_TOP)\glib-mkenums.pl \ ++ $(PERL) $(OUTDIR)\bin\glib-mkenums \ --fhead "#ifndef __GDK_PIXBUF__ENUM_TYPES_H__\n#define __GDK_PIXBUF_ENUM_TYPES_H__\n" \ --fprod "/* enumerations from \"@filename@\" */\n" \ --vhead "GType @enum_name@_get_type (void);\n#define GDK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ @@ -343,7 +343,7 @@ gdk-pixbuf-enum-types.c: $(gdk_pixbuf_headers) makefile.msc - $(PERL) $(GLIB)\gobject\glib-mkenums \ - --fhead "#include <gdk-pixbuf/gdk-pixbuf.h>" \ -+ $(PERL) $(PRJ_TOP)\glib-mkenums.pl \ ++ $(PERL) $(OUTDIR)\bin\glib-mkenums \ + --fhead "#include <gdk-pixbuf.h>" \ --fprod "\n/* enumerations from \"@filename@\" */" \ --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \ @@ -370,11 +370,11 @@ -PACKAGE = pixops PRJ_TOP = ..\.. +PACKAGE = pixops -+GLIB_TOP = $(PRJ_TOP)\..\..\..\..\..\glib\wntmsci12.pro\misc\build\glib-2.28.1 ++GLIB_TOP = +GLIB_INC = -I$(OUTDIR)\inc\external\glib-2.0 -!INCLUDE $(TOP)/glib/build/win32/make.msc -+!INCLUDE $(GLIB_TOP)\build\win32\make.msc ++!INCLUDE $(OUTDIR)\inc\external\glib-2.0\make.msc -PKG_CFLAGS = -I.. $(GLIB_CFLAGS) +PKG_CFLAGS = -I.. $(SOLARINC) $(GLIB_INC) $(GLIB_CFLAGS) @@ -422,548 +422,6 @@ #include "pixops.h" #include "pixops-internal.h" ---- misc/gdk-pixbuf-2.23.0/glib-mkenums.pl 2011-03-24 04:59:07.281250000 +0100 -+++ misc/build/gdk-pixbuf-2.23.0/glib-mkenums.pl 2011-03-22 01:58:24.343750000 +0100 -@@ -1 +1,538 @@ --dummy -+#! perl.exe -+ -+use warnings; -+use File::Basename; -+use Safe; -+ -+# glib-mkenums.pl -+# Information about the current enumeration -+my $flags; # Is enumeration a bitmask? -+my $option_underscore_name; # Overriden underscore variant of the enum name -+ # for example to fix the cases we don't get the -+ # mixed-case -> underscorized transform right. -+my $option_lowercase_name; # DEPRECATED. A lower case name to use as part -+ # of the *_get_type() function, instead of the -+ # one that we guess. For instance, when an enum -+ # uses abnormal capitalization and we can not -+ # guess where to put the underscores. -+my $seenbitshift; # Have we seen bitshift operators? -+my $enum_prefix; # Prefix for this enumeration -+my $enumname; # Name for this enumeration -+my $enumshort; # $enumname without prefix -+my $enumname_prefix; # prefix of $enumname -+my $enumindex = 0; # Global enum counter -+my $firstenum = 1; # Is this the first enumeration per file? -+my @entries; # [ $name, $val ] for each entry -+my $sandbox = Safe->new; # sandbox for safe evaluation of expressions -+ -+sub parse_trigraph { -+ my $opts = shift; -+ my @opts; -+ -+ for $opt (split /\s*,\s*/, $opts) { -+ $opt =~ s/^\s*//; -+ $opt =~ s/\s*$//; -+ my ($key,$val) = $opt =~ /(\w+)(?:=(.+))?/; -+ defined $val or $val = 1; -+ push @opts, $key, $val; -+ } -+ @opts; -+} -+sub parse_entries { -+ my $file = shift; -+ my $file_name = shift; -+ my $looking_for_name = 0; -+ -+ while (<$file>) { -+ # read lines until we have no open comments -+ while (m@/\*([^*]|\*(?!/))*$@) { -+ my $new; -+ defined ($new = <$file>) || die "Unmatched comment in $ARGV"; -+ $_ .= $new; -+ } -+ # strip comments w/o options -+ s@/\*(?!<) -+ ([^*]+|\*(?!/))* -+ \*/@@gx; -+ -+ # strip newlines -+ s@\n@ @; -+ -+ # skip empty lines -+ next if m@^\s*$@; -+ -+ if ($looking_for_name) { -+ if (/^\s*(\w+)/) { -+ $enumname = $1; -+ return 1; -+ } -+ } -+ -+ # Handle include files -+ if (/^\#include\s*<([^>]*)>/ ) { -+ my $file= "../$1"; -+ open NEWFILE, $file or die "Cannot open include file $file: $!\n"; -+ -+ if (parse_entries (\*NEWFILE, $NEWFILE)) { -+ return 1; -+ } else { -+ next; -+ } -+ } -+ -+ if (/^\s*\}\s*(\w+)/) { -+ $enumname = $1; -+ $enumindex++; -+ return 1; -+ } -+ -+ if (/^\s*\}/) { -+ $enumindex++; -+ $looking_for_name = 1; -+ next; -+ } -+ -+ if (m@^\s* -+ (\w+)\s* # name -+ (?:=( # value -+ \s*\w+\s*\(.*\)\s* # macro with multiple args -+ | # OR -+ (?:[^,/]|/(?!\*))* # anything but a comma or comment -+ ))?,?\s* -+ (?:/\*< # options -+ (([^*]|\*(?!/))*) -+ >\s*\*/)?,? -+ \s*$ -+ @x) { -+ my ($name, $value, $options) = ($1,$2,$3); -+ -+ if (!defined $flags && defined $value && $value =~ /<</) { -+ $seenbitshift = 1; -+ } -+ -+ if (defined $options) { -+ my %options = parse_trigraph($options); -+ if (!defined $options{skip}) { -+ push @entries, [ $name, $value, $options{nick} ]; -+ } -+ } else { -+ push @entries, [ $name, $value ]; -+ } -+ } elsif (m@^\s*\#@) { -+ # ignore preprocessor directives -+ } else { -+ print STDERR "$0: $file_name:$.: Failed to parse `$_'\n"; -+ } -+ } -+ -+ return 0; -+} -+ -+sub version { -+ print "glib-mkenums version glib-@GLIB_VERSION@\n"; -+ print "glib-mkenums comes with ABSOLUTELY NO WARRANTY.\n"; -+ print "You may redistribute copies of glib-mkenums under the terms of\n"; -+ print "the GNU General Public License which can be found in the\n"; -+ print "GLib source package. Sources, examples and contact\n"; -+ print "information are available at http://www.gtk.org\n"; -+ exit 0; -+} -+sub usage { -+ print "Usage:\n"; -+ print " glib-mkenums [OPTION...] [FILES...]\n\n"; -+ print "Help Options:\n"; -+ print " -h, --help Show this help message\n\n"; -+ print "Utility Options:\n"; -+ print " --fhead <text> Output file header\n"; -+ print " --fprod <text> Per input file production\n"; -+ print " --ftail <text> Output file trailer\n"; -+ print " --eprod <text> Per enum text (produced prior to value itarations)\n"; -+ print " --vhead <text> Value header, produced before iterating over enum values\n"; -+ print " --vprod <text> Value text, produced for each enum value\n"; -+ print " --vtail <text> Value tail, produced after iterating over enum values\n"; -+ print " --comments <text> Comment structure\n"; -+ print " --template file Template file\n"; -+ print " -v, --version Print version informations\n\n"; -+ print "Production text substitutions:\n"; -+ print " \@EnumName\@ PrefixTheXEnum\n"; -+ print " \@enum_name\@ prefix_the_xenum\n"; -+ print " \@ENUMNAME\@ PREFIX_THE_XENUM\n"; -+ print " \@ENUMSHORT\@ THE_XENUM\n"; -+ print " \@ENUMPREFIX\@ PREFIX\n"; -+ print " \@VALUENAME\@ PREFIX_THE_XVALUE\n"; -+ print " \@valuenick\@ the-xvalue\n"; -+ print " \@valuenum\@ the integer value (limited support, Since: 2.26)\n"; -+ print " \@type\@ either enum or flags\n"; -+ print " \@Type\@ either Enum or Flags\n"; -+ print " \@TYPE\@ either ENUM or FLAGS\n"; -+ print " \@filename\@ name of current input file\n"; -+ print " \@basename\@ base name of the current input file (Since: 2.22)\n"; -+ exit 0; -+} -+ -+# production variables: -+my $fhead = ""; # output file header -+my $fprod = ""; # per input file production -+my $ftail = ""; # output file trailer -+my $eprod = ""; # per enum text (produced prior to value itarations) -+my $vhead = ""; # value header, produced before iterating over enum values -+my $vprod = ""; # value text, produced for each enum value -+my $vtail = ""; # value tail, produced after iterating over enum values -+my $comment_tmpl = ""; # comment template -+ -+sub read_template_file { -+ my ($file) = @_; -+ my %tmpl = ('file-header', $fhead, -+ 'file-production', $fprod, -+ 'file-tail', $ftail, -+ 'enumeration-production', $eprod, -+ 'value-header', $vhead, -+ 'value-production', $vprod, -+ 'value-tail', $vtail, -+ 'comment', $comment_tmpl); -+ my $in = 'junk'; -+ open (FILE, $file) || die "Can't open $file: $!\n"; -+ while (<FILE>) { -+ if (/^\/\*\*\*\s+(BEGIN|END)\s+([\w-]+)\s+\*\*\*\//) { -+ if (($in eq 'junk') && ($1 eq 'BEGIN') && (exists($tmpl{$2}))) { -+ $in = $2; -+ next; -+ } -+ elsif (($in eq $2) && ($1 eq 'END') && (exists($tmpl{$2}))) { -+ $in = 'junk'; -+ next; -+ } else { -+ die "Malformed template file $file\n"; -+ } -+ } -+ if (!($in eq 'junk')) { -+ $tmpl{$in} .= $_; -+ } -+ } -+ close (FILE); -+ if (!($in eq 'junk')) { -+ die "Malformed template file $file\n"; -+ } -+ $fhead = $tmpl{'file-header'}; -+ $fprod = $tmpl{'file-production'}; -+ $ftail = $tmpl{'file-tail'}; -+ $eprod = $tmpl{'enumeration-production'}; -+ $vhead = $tmpl{'value-header'}; -+ $vprod = $tmpl{'value-production'}; -+ $vtail = $tmpl{'value-tail'}; -+ $comment_tmpl = $tmpl{'comment'}; -+ -+ # default to C-style comments -+ $comment_tmpl = "/* \@comment\@ */" if $comment_tmpl eq ""; -+} -+ -+if (!defined $ARGV[0]) { -+ usage; -+} -+while ($_=$ARGV[0],/^-/) { -+ shift; -+ last if /^--$/; -+ if (/^--template$/) { read_template_file (shift); } -+ elsif (/^--fhead$/) { $fhead = $fhead . shift } -+ elsif (/^--fprod$/) { $fprod = $fprod . shift } -+ elsif (/^--ftail$/) { $ftail = $ftail . shift } -+ elsif (/^--eprod$/) { $eprod = $eprod . shift } -+ elsif (/^--vhead$/) { $vhead = $vhead . shift } -+ elsif (/^--vprod$/) { $vprod = $vprod . shift } -+ elsif (/^--vtail$/) { $vtail = $vtail . shift } -+ elsif (/^--comments$/) { $comment_tmpl = shift } -+ elsif (/^--help$/ || /^-h$/ || /^-\?$/) { usage; } -+ elsif (/^--version$/ || /^-v$/) { version; } -+ else { usage; } -+ last if not defined($ARGV[0]); -+} -+ -+# put auto-generation comment -+{ -+ my $comment = $comment_tmpl; -+ $comment =~ s/\@comment\@/Generated data (by glib-mkenums)/; -+ print "\n" . $comment . "\n\n"; -+} -+ -+if (length($fhead)) { -+ my $prod = $fhead; -+ my $base = basename ($ARGV[0]); -+ -+ $prod =~ s/\@filename\@/$ARGV[0]/g; -+ $prod =~ s/\@basename\@/$base/g; -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+} -+ -+while (<>) { -+ if (eof) { -+ close (ARGV); # reset line numbering -+ $firstenum = 1; # Flag to print filename at next enum -+ } -+ -+ # read lines until we have no open comments -+ while (m@/\*([^*]|\*(?!/))*$@) { -+ my $new; -+ defined ($new = <>) || die "Unmatched comment in $ARGV"; -+ $_ .= $new; -+ } -+ # strip comments w/o options -+ s@/\*(?!<) -+ ([^*]+|\*(?!/))* -+ \*/@@gx; -+ -+ if (m@^\s*typedef\s+enum\s* -+ ({)?\s* -+ (?:/\*< -+ (([^*]|\*(?!/))*) -+ >\s*\*/)? -+ \s*({)? -+ @x) { -+ if (defined $2) { -+ my %options = parse_trigraph ($2); -+ next if defined $options{skip}; -+ $enum_prefix = $options{prefix}; -+ $flags = $options{flags}; -+ $option_lowercase_name = $options{lowercase_name}; -+ $option_underscore_name = $options{underscore_name}; -+ } else { -+ $enum_prefix = undef; -+ $flags = undef; -+ $option_lowercase_name = undef; -+ $option_underscore_name = undef; -+ } -+ if (defined $option_lowercase_name) { -+ if (defined $option_underscore_name) { -+ print STDERR "$0: $ARGV:$.: lowercase_name overriden with underscore_name\n"; -+ $option_lowercase_name = undef; -+ } else { -+ print STDERR "$0: $ARGV:$.: lowercase_name is deprecated, use underscore_name\n"; -+ } -+ } -+ # Didn't have trailing '{' look on next lines -+ if (!defined $1 && !defined $4) { -+ while (<>) { -+ if (s/^\s*\{//) { -+ last; -+ } -+ } -+ } -+ -+ $seenbitshift = 0; -+ @entries = (); -+ -+ # Now parse the entries -+ parse_entries (\*ARGV, $ARGV); -+ -+ # figure out if this was a flags or enums enumeration -+ if (!defined $flags) { -+ $flags = $seenbitshift; -+ } -+ -+ # Autogenerate a prefix -+ if (!defined $enum_prefix) { -+ for (@entries) { -+ my $nick = $_->[2]; -+ if (!defined $nick) { -+ my $name = $_->[0]; -+ if (defined $enum_prefix) { -+ my $tmp = ~ ($name ^ $enum_prefix); -+ ($tmp) = $tmp =~ /(^\xff*)/; -+ $enum_prefix = $enum_prefix & $tmp; -+ } else { -+ $enum_prefix = $name; -+ } -+ } -+ } -+ if (!defined $enum_prefix) { -+ $enum_prefix = ""; -+ } else { -+ # Trim so that it ends in an underscore -+ $enum_prefix =~ s/_[^_]*$/_/; -+ } -+ } else { -+ # canonicalize user defined prefixes -+ $enum_prefix = uc($enum_prefix); -+ $enum_prefix =~ s/-/_/g; -+ $enum_prefix =~ s/(.*)([^_])$/$1$2_/; -+ } -+ -+ for $entry (@entries) { -+ my ($name,$num,$nick) = @{$entry}; -+ if (!defined $nick) { -+ ($nick = $name) =~ s/^$enum_prefix//; -+ $nick =~ tr/_/-/; -+ $nick = lc($nick); -+ @{$entry} = ($name, $num, $nick); -+ } -+ } -+ -+ -+ # Spit out the output -+ if (defined $option_underscore_name) { -+ $enumlong = uc $option_underscore_name; -+ $enumsym = lc $option_underscore_name; -+ $enumshort = $enumlong; -+ $enumshort =~ s/^[A-Z][A-Z0-9]*_//; -+ -+ $enumname_prefix = $enumlong; -+ $enumname_prefix =~ s/$enumshort$//; -+ } else { -+ # enumname is e.g. GMatchType -+ $enspace = $enumname; -+ $enspace =~ s/^([A-Z][a-z]*).*$/$1/; -+ -+ $enumshort = $enumname; -+ $enumshort =~ s/^[A-Z][a-z]*//; -+ $enumshort =~ s/([^A-Z])([A-Z])/$1_$2/g; -+ $enumshort =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g; -+ $enumshort = uc($enumshort); -+ -+ $enumname_prefix = $enumname; -+ $enumname_prefix =~ s/^([A-Z][a-z]*).*$/$1/; -+ $enumname_prefix = uc($enumname_prefix); -+ -+ $enumlong = uc($enspace) . "_" . $enumshort; -+ $enumsym = lc($enspace) . "_" . lc($enumshort); -+ -+ if (defined($option_lowercase_name)) { -+ $enumsym = $option_lowercase_name; -+ } -+ } -+ -+ if ($firstenum) { -+ $firstenum = 0; -+ -+ if (length($fprod)) { -+ my $prod = $fprod; -+ my $base = basename ($ARGV); -+ -+ $prod =~ s/\@filename\@/$ARGV/g; -+ $prod =~ s/\@basename\@/$base/g; -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ } -+ -+ if (length($eprod)) { -+ my $prod = $eprod; -+ -+ $prod =~ s/\@enum_name\@/$enumsym/g; -+ $prod =~ s/\@EnumName\@/$enumname/g; -+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; -+ $prod =~ s/\@ENUMNAME\@/$enumlong/g; -+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; -+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ -+ if (length($vhead)) { -+ my $prod = $vhead; -+ -+ $prod =~ s/\@enum_name\@/$enumsym/g; -+ $prod =~ s/\@EnumName\@/$enumname/g; -+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; -+ $prod =~ s/\@ENUMNAME\@/$enumlong/g; -+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; -+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ -+ if (length($vprod)) { -+ my $prod = $vprod; -+ my $next_num = 0; -+ -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ for (@entries) { -+ my ($name,$num,$nick) = @{$_}; -+ my $tmp_prod = $prod; -+ -+ if ($prod =~ /\@valuenum\@/) { -+ # only attempt to eval the value if it is requested -+ # this prevents us from throwing errors otherwise -+ if (defined $num) { -+ # use sandboxed perl evaluation as a reasonable -+ # approximation to C constant folding -+ $num = $sandbox->reval ($num); -+ -+ # make sure it parsed to an integer -+ if (!defined $num or $num !~ /^-?\d+$/) { -+ die "Unable to parse enum value '$num'"; -+ } -+ } else { -+ $num = $next_num; -+ } -+ -+ $tmp_prod =~ s/\@valuenum\@/$num/g; -+ $next_num = $num + 1; -+ } -+ -+ $tmp_prod =~ s/\@VALUENAME\@/$name/g; -+ $tmp_prod =~ s/\@valuenick\@/$nick/g; -+ if ($flags) { $tmp_prod =~ s/\@type\@/flags/g; } else { $tmp_prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $tmp_prod =~ s/\@Type\@/Flags/g; } else { $tmp_prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $tmp_prod =~ s/\@TYPE\@/FLAGS/g; } else { $tmp_prod =~ s/\@TYPE\@/ENUM/g; } -+ chomp ($tmp_prod); -+ -+ print "$tmp_prod\n"; -+ } -+ } -+ -+ if (length($vtail)) { -+ my $prod = $vtail; -+ -+ $prod =~ s/\@enum_name\@/$enumsym/g; -+ $prod =~ s/\@EnumName\@/$enumname/g; -+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; -+ $prod =~ s/\@ENUMNAME\@/$enumlong/g; -+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; -+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ } -+} -+ -+if (length($ftail)) { -+ my $prod = $ftail; -+ my $base = basename ($ARGV); -+ -+ $prod =~ s/\@filename\@/$ARGV/g; -+ $prod =~ s/\@basename\@/$base/g; -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+} -+ -+# put auto-generation comment -+{ -+ my $comment = $comment_tmpl; -+ $comment =~ s/\@comment\@/Generated data ends here/; -+ print "\n" . $comment . "\n\n"; -+} --- misc/gdk-pixbuf-2.23.0/msvc_recommended_pragmas.h 2011-03-24 04:59:07.625000000 +0100 +++ misc/build/gdk-pixbuf-2.23.0/msvc_recommended_pragmas.h 2011-03-22 01:58:24.359375000 +0100 @@ -1 +1,31 @@ diff --git a/glib/glib-2.28.1-win32-2.patch b/glib/glib-2.28.1-win32-2.patch new file mode 100644 index 000000000000..ee4b868f6b1a --- /dev/null +++ b/glib/glib-2.28.1-win32-2.patch @@ -0,0 +1,553 @@ +--- misc/glib-2.28.1/build/win32/make.msc 2011-04-01 16:52:15.676157900 +0200 ++++ misc/build/glib-2.28.1/build/win32/make.msc 2011-04-01 16:52:02.168385300 +0200 +@@ -55,7 +55,7 @@ + BABL_LIBS = $(BABL)\babl\babl-1.0.lib + + # force inclusion of the _right_ cairoversion.h even when using without installation +-CAIRO_CFLAGS = -FI $(CAIRO)\cairo-version.h -I $(CAIRO)\src -I $(CAIRO) ++CAIRO_CFLAGS = -I $(CAIRO)\src -I $(CAIRO) + CAIRO_LIBS = $(CAIRO)\src\libcairo.lib + + DIRENT_CFLAGS = -I ..\build\win32\dirent +--- misc/glib-2.28.1/gobject/glib-mkenums 2011-04-01 16:52:15.155128100 +0200 ++++ misc/build/glib-2.28.1/gobject/glib-mkenums 2011-04-01 16:51:30.994602300 +0200 +@@ -1 +1,538 @@ +-dummy ++#! perl.exe ++ ++use warnings; ++use File::Basename; ++use Safe; ++ ++# glib-mkenums.pl ++# Information about the current enumeration ++my $flags; # Is enumeration a bitmask? ++my $option_underscore_name; # Overriden underscore variant of the enum name ++ # for example to fix the cases we don't get the ++ # mixed-case -> underscorized transform right. ++my $option_lowercase_name; # DEPRECATED. A lower case name to use as part ++ # of the *_get_type() function, instead of the ++ # one that we guess. For instance, when an enum ++ # uses abnormal capitalization and we can not ++ # guess where to put the underscores. ++my $seenbitshift; # Have we seen bitshift operators? ++my $enum_prefix; # Prefix for this enumeration ++my $enumname; # Name for this enumeration ++my $enumshort; # $enumname without prefix ++my $enumname_prefix; # prefix of $enumname ++my $enumindex = 0; # Global enum counter ++my $firstenum = 1; # Is this the first enumeration per file? ++my @entries; # [ $name, $val ] for each entry ++my $sandbox = Safe->new; # sandbox for safe evaluation of expressions ++ ++sub parse_trigraph { ++ my $opts = shift; ++ my @opts; ++ ++ for $opt (split /\s*,\s*/, $opts) { ++ $opt =~ s/^\s*//; ++ $opt =~ s/\s*$//; ++ my ($key,$val) = $opt =~ /(\w+)(?:=(.+))?/; ++ defined $val or $val = 1; ++ push @opts, $key, $val; ++ } ++ @opts; ++} ++sub parse_entries { ++ my $file = shift; ++ my $file_name = shift; ++ my $looking_for_name = 0; ++ ++ while (<$file>) { ++ # read lines until we have no open comments ++ while (m@/\*([^*]|\*(?!/))*$@) { ++ my $new; ++ defined ($new = <$file>) || die "Unmatched comment in $ARGV"; ++ $_ .= $new; ++ } ++ # strip comments w/o options ++ s@/\*(?!<) ++ ([^*]+|\*(?!/))* ++ \*/@@gx; ++ ++ # strip newlines ++ s@\n@ @; ++ ++ # skip empty lines ++ next if m@^\s*$@; ++ ++ if ($looking_for_name) { ++ if (/^\s*(\w+)/) { ++ $enumname = $1; ++ return 1; ++ } ++ } ++ ++ # Handle include files ++ if (/^\#include\s*<([^>]*)>/ ) { ++ my $file= "../$1"; ++ open NEWFILE, $file or die "Cannot open include file $file: $!\n"; ++ ++ if (parse_entries (\*NEWFILE, $NEWFILE)) { ++ return 1; ++ } else { ++ next; ++ } ++ } ++ ++ if (/^\s*\}\s*(\w+)/) { ++ $enumname = $1; ++ $enumindex++; ++ return 1; ++ } ++ ++ if (/^\s*\}/) { ++ $enumindex++; ++ $looking_for_name = 1; ++ next; ++ } ++ ++ if (m@^\s* ++ (\w+)\s* # name ++ (?:=( # value ++ \s*\w+\s*\(.*\)\s* # macro with multiple args ++ | # OR ++ (?:[^,/]|/(?!\*))* # anything but a comma or comment ++ ))?,?\s* ++ (?:/\*< # options ++ (([^*]|\*(?!/))*) ++ >\s*\*/)?,? ++ \s*$ ++ @x) { ++ my ($name, $value, $options) = ($1,$2,$3); ++ ++ if (!defined $flags && defined $value && $value =~ /<</) { ++ $seenbitshift = 1; ++ } ++ ++ if (defined $options) { ++ my %options = parse_trigraph($options); ++ if (!defined $options{skip}) { ++ push @entries, [ $name, $value, $options{nick} ]; ++ } ++ } else { ++ push @entries, [ $name, $value ]; ++ } ++ } elsif (m@^\s*\#@) { ++ # ignore preprocessor directives ++ } else { ++ print STDERR "$0: $file_name:$.: Failed to parse `$_'\n"; ++ } ++ } ++ ++ return 0; ++} ++ ++sub version { ++ print "glib-mkenums version glib-@GLIB_VERSION@\n"; ++ print "glib-mkenums comes with ABSOLUTELY NO WARRANTY.\n"; ++ print "You may redistribute copies of glib-mkenums under the terms of\n"; ++ print "the GNU General Public License which can be found in the\n"; ++ print "GLib source package. Sources, examples and contact\n"; ++ print "information are available at http://www.gtk.org\n"; ++ exit 0; ++} ++sub usage { ++ print "Usage:\n"; ++ print " glib-mkenums [OPTION...] [FILES...]\n\n"; ++ print "Help Options:\n"; ++ print " -h, --help Show this help message\n\n"; ++ print "Utility Options:\n"; ++ print " --fhead <text> Output file header\n"; ++ print " --fprod <text> Per input file production\n"; ++ print " --ftail <text> Output file trailer\n"; ++ print " --eprod <text> Per enum text (produced prior to value itarations)\n"; ++ print " --vhead <text> Value header, produced before iterating over enum values\n"; ++ print " --vprod <text> Value text, produced for each enum value\n"; ++ print " --vtail <text> Value tail, produced after iterating over enum values\n"; ++ print " --comments <text> Comment structure\n"; ++ print " --template file Template file\n"; ++ print " -v, --version Print version informations\n\n"; ++ print "Production text substitutions:\n"; ++ print " \@EnumName\@ PrefixTheXEnum\n"; ++ print " \@enum_name\@ prefix_the_xenum\n"; ++ print " \@ENUMNAME\@ PREFIX_THE_XENUM\n"; ++ print " \@ENUMSHORT\@ THE_XENUM\n"; ++ print " \@ENUMPREFIX\@ PREFIX\n"; ++ print " \@VALUENAME\@ PREFIX_THE_XVALUE\n"; ++ print " \@valuenick\@ the-xvalue\n"; ++ print " \@valuenum\@ the integer value (limited support, Since: 2.26)\n"; ++ print " \@type\@ either enum or flags\n"; ++ print " \@Type\@ either Enum or Flags\n"; ++ print " \@TYPE\@ either ENUM or FLAGS\n"; ++ print " \@filename\@ name of current input file\n"; ++ print " \@basename\@ base name of the current input file (Since: 2.22)\n"; ++ exit 0; ++} ++ ++# production variables: ++my $fhead = ""; # output file header ++my $fprod = ""; # per input file production ++my $ftail = ""; # output file trailer ++my $eprod = ""; # per enum text (produced prior to value itarations) ++my $vhead = ""; # value header, produced before iterating over enum values ++my $vprod = ""; # value text, produced for each enum value ++my $vtail = ""; # value tail, produced after iterating over enum values ++my $comment_tmpl = ""; # comment template ++ ++sub read_template_file { ++ my ($file) = @_; ++ my %tmpl = ('file-header', $fhead, ++ 'file-production', $fprod, ++ 'file-tail', $ftail, ++ 'enumeration-production', $eprod, ++ 'value-header', $vhead, ++ 'value-production', $vprod, ++ 'value-tail', $vtail, ++ 'comment', $comment_tmpl); ++ my $in = 'junk'; ++ open (FILE, $file) || die "Can't open $file: $!\n"; ++ while (<FILE>) { ++ if (/^\/\*\*\*\s+(BEGIN|END)\s+([\w-]+)\s+\*\*\*\//) { ++ if (($in eq 'junk') && ($1 eq 'BEGIN') && (exists($tmpl{$2}))) { ++ $in = $2; ++ next; ++ } ++ elsif (($in eq $2) && ($1 eq 'END') && (exists($tmpl{$2}))) { ++ $in = 'junk'; ++ next; ++ } else { ++ die "Malformed template file $file\n"; ++ } ++ } ++ if (!($in eq 'junk')) { ++ $tmpl{$in} .= $_; ++ } ++ } ++ close (FILE); ++ if (!($in eq 'junk')) { ++ die "Malformed template file $file\n"; ++ } ++ $fhead = $tmpl{'file-header'}; ++ $fprod = $tmpl{'file-production'}; ++ $ftail = $tmpl{'file-tail'}; ++ $eprod = $tmpl{'enumeration-production'}; ++ $vhead = $tmpl{'value-header'}; ++ $vprod = $tmpl{'value-production'}; ++ $vtail = $tmpl{'value-tail'}; ++ $comment_tmpl = $tmpl{'comment'}; ++ ++ # default to C-style comments ++ $comment_tmpl = "/* \@comment\@ */" if $comment_tmpl eq ""; ++} ++ ++if (!defined $ARGV[0]) { ++ usage; ++} ++while ($_=$ARGV[0],/^-/) { ++ shift; ++ last if /^--$/; ++ if (/^--template$/) { read_template_file (shift); } ++ elsif (/^--fhead$/) { $fhead = $fhead . shift } ++ elsif (/^--fprod$/) { $fprod = $fprod . shift } ++ elsif (/^--ftail$/) { $ftail = $ftail . shift } ++ elsif (/^--eprod$/) { $eprod = $eprod . shift } ++ elsif (/^--vhead$/) { $vhead = $vhead . shift } ++ elsif (/^--vprod$/) { $vprod = $vprod . shift } ++ elsif (/^--vtail$/) { $vtail = $vtail . shift } ++ elsif (/^--comments$/) { $comment_tmpl = shift } ++ elsif (/^--help$/ || /^-h$/ || /^-\?$/) { usage; } ++ elsif (/^--version$/ || /^-v$/) { version; } ++ else { usage; } ++ last if not defined($ARGV[0]); ++} ++ ++# put auto-generation comment ++{ ++ my $comment = $comment_tmpl; ++ $comment =~ s/\@comment\@/Generated data (by glib-mkenums)/; ++ print "\n" . $comment . "\n\n"; ++} ++ ++if (length($fhead)) { ++ my $prod = $fhead; ++ my $base = basename ($ARGV[0]); ++ ++ $prod =~ s/\@filename\@/$ARGV[0]/g; ++ $prod =~ s/\@basename\@/$base/g; ++ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; ++ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; ++ chomp ($prod); ++ ++ print "$prod\n"; ++} ++ ++while (<>) { ++ if (eof) { ++ close (ARGV); # reset line numbering ++ $firstenum = 1; # Flag to print filename at next enum ++ } ++ ++ # read lines until we have no open comments ++ while (m@/\*([^*]|\*(?!/))*$@) { ++ my $new; ++ defined ($new = <>) || die "Unmatched comment in $ARGV"; ++ $_ .= $new; ++ } ++ # strip comments w/o options ++ s@/\*(?!<) ++ ([^*]+|\*(?!/))* ++ \*/@@gx; ++ ++ if (m@^\s*typedef\s+enum\s* ++ ({)?\s* ++ (?:/\*< ++ (([^*]|\*(?!/))*) ++ >\s*\*/)? ++ \s*({)? ++ @x) { ++ if (defined $2) { ++ my %options = parse_trigraph ($2); ++ next if defined $options{skip}; ++ $enum_prefix = $options{prefix}; ++ $flags = $options{flags}; ++ $option_lowercase_name = $options{lowercase_name}; ++ $option_underscore_name = $options{underscore_name}; ++ } else { ++ $enum_prefix = undef; ++ $flags = undef; ++ $option_lowercase_name = undef; ++ $option_underscore_name = undef; ++ } ++ if (defined $option_lowercase_name) { ++ if (defined $option_underscore_name) { ++ print STDERR "$0: $ARGV:$.: lowercase_name overriden with underscore_name\n"; ++ $option_lowercase_name = undef; ++ } else { ++ print STDERR "$0: $ARGV:$.: lowercase_name is deprecated, use underscore_name\n"; ++ } ++ } ++ # Didn't have trailing '{' look on next lines ++ if (!defined $1 && !defined $4) { ++ while (<>) { ++ if (s/^\s*\{//) { ++ last; ++ } ++ } ++ } ++ ++ $seenbitshift = 0; ++ @entries = (); ++ ++ # Now parse the entries ++ parse_entries (\*ARGV, $ARGV); ++ ++ # figure out if this was a flags or enums enumeration ++ if (!defined $flags) { ++ $flags = $seenbitshift; ++ } ++ ++ # Autogenerate a prefix ++ if (!defined $enum_prefix) { ++ for (@entries) { ++ my $nick = $_->[2]; ++ if (!defined $nick) { ++ my $name = $_->[0]; ++ if (defined $enum_prefix) { ++ my $tmp = ~ ($name ^ $enum_prefix); ++ ($tmp) = $tmp =~ /(^\xff*)/; ++ $enum_prefix = $enum_prefix & $tmp; ++ } else { ++ $enum_prefix = $name; ++ } ++ } ++ } ++ if (!defined $enum_prefix) { ++ $enum_prefix = ""; ++ } else { ++ # Trim so that it ends in an underscore ++ $enum_prefix =~ s/_[^_]*$/_/; ++ } ++ } else { ++ # canonicalize user defined prefixes ++ $enum_prefix = uc($enum_prefix); ++ $enum_prefix =~ s/-/_/g; ++ $enum_prefix =~ s/(.*)([^_])$/$1$2_/; ++ } ++ ++ for $entry (@entries) { ++ my ($name,$num,$nick) = @{$entry}; ++ if (!defined $nick) { ++ ($nick = $name) =~ s/^$enum_prefix//; ++ $nick =~ tr/_/-/; ++ $nick = lc($nick); ++ @{$entry} = ($name, $num, $nick); ++ } ++ } ++ ++ ++ # Spit out the output ++ if (defined $option_underscore_name) { ++ $enumlong = uc $option_underscore_name; ++ $enumsym = lc $option_underscore_name; ++ $enumshort = $enumlong; ++ $enumshort =~ s/^[A-Z][A-Z0-9]*_//; ++ ++ $enumname_prefix = $enumlong; ++ $enumname_prefix =~ s/$enumshort$//; ++ } else { ++ # enumname is e.g. GMatchType ++ $enspace = $enumname; ++ $enspace =~ s/^([A-Z][a-z]*).*$/$1/; ++ ++ $enumshort = $enumname; ++ $enumshort =~ s/^[A-Z][a-z]*//; ++ $enumshort =~ s/([^A-Z])([A-Z])/$1_$2/g; ++ $enumshort =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g; ++ $enumshort = uc($enumshort); ++ ++ $enumname_prefix = $enumname; ++ $enumname_prefix =~ s/^([A-Z][a-z]*).*$/$1/; ++ $enumname_prefix = uc($enumname_prefix); ++ ++ $enumlong = uc($enspace) . "_" . $enumshort; ++ $enumsym = lc($enspace) . "_" . lc($enumshort); ++ ++ if (defined($option_lowercase_name)) { ++ $enumsym = $option_lowercase_name; ++ } ++ } ++ ++ if ($firstenum) { ++ $firstenum = 0; ++ ++ if (length($fprod)) { ++ my $prod = $fprod; ++ my $base = basename ($ARGV); ++ ++ $prod =~ s/\@filename\@/$ARGV/g; ++ $prod =~ s/\@basename\@/$base/g; ++ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; ++ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; ++ chomp ($prod); ++ ++ print "$prod\n"; ++ } ++ } ++ ++ if (length($eprod)) { ++ my $prod = $eprod; ++ ++ $prod =~ s/\@enum_name\@/$enumsym/g; ++ $prod =~ s/\@EnumName\@/$enumname/g; ++ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; ++ $prod =~ s/\@ENUMNAME\@/$enumlong/g; ++ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; ++ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } ++ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } ++ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } ++ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; ++ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; ++ chomp ($prod); ++ ++ print "$prod\n"; ++ } ++ ++ if (length($vhead)) { ++ my $prod = $vhead; ++ ++ $prod =~ s/\@enum_name\@/$enumsym/g; ++ $prod =~ s/\@EnumName\@/$enumname/g; ++ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; ++ $prod =~ s/\@ENUMNAME\@/$enumlong/g; ++ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; ++ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } ++ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } ++ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } ++ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; ++ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; ++ chomp ($prod); ++ ++ print "$prod\n"; ++ } ++ ++ if (length($vprod)) { ++ my $prod = $vprod; ++ my $next_num = 0; ++ ++ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; ++ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; ++ for (@entries) { ++ my ($name,$num,$nick) = @{$_}; ++ my $tmp_prod = $prod; ++ ++ if ($prod =~ /\@valuenum\@/) { ++ # only attempt to eval the value if it is requested ++ # this prevents us from throwing errors otherwise ++ if (defined $num) { ++ # use sandboxed perl evaluation as a reasonable ++ # approximation to C constant folding ++ $num = $sandbox->reval ($num); ++ ++ # make sure it parsed to an integer ++ if (!defined $num or $num !~ /^-?\d+$/) { ++ die "Unable to parse enum value '$num'"; ++ } ++ } else { ++ $num = $next_num; ++ } ++ ++ $tmp_prod =~ s/\@valuenum\@/$num/g; ++ $next_num = $num + 1; ++ } ++ ++ $tmp_prod =~ s/\@VALUENAME\@/$name/g; ++ $tmp_prod =~ s/\@valuenick\@/$nick/g; ++ if ($flags) { $tmp_prod =~ s/\@type\@/flags/g; } else { $tmp_prod =~ s/\@type\@/enum/g; } ++ if ($flags) { $tmp_prod =~ s/\@Type\@/Flags/g; } else { $tmp_prod =~ s/\@Type\@/Enum/g; } ++ if ($flags) { $tmp_prod =~ s/\@TYPE\@/FLAGS/g; } else { $tmp_prod =~ s/\@TYPE\@/ENUM/g; } ++ chomp ($tmp_prod); ++ ++ print "$tmp_prod\n"; ++ } ++ } ++ ++ if (length($vtail)) { ++ my $prod = $vtail; ++ ++ $prod =~ s/\@enum_name\@/$enumsym/g; ++ $prod =~ s/\@EnumName\@/$enumname/g; ++ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; ++ $prod =~ s/\@ENUMNAME\@/$enumlong/g; ++ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; ++ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } ++ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } ++ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } ++ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; ++ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; ++ chomp ($prod); ++ ++ print "$prod\n"; ++ } ++ } ++} ++ ++if (length($ftail)) { ++ my $prod = $ftail; ++ my $base = basename ($ARGV); ++ ++ $prod =~ s/\@filename\@/$ARGV/g; ++ $prod =~ s/\@basename\@/$base/g; ++ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; ++ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; ++ chomp ($prod); ++ ++ print "$prod\n"; ++} ++ ++# put auto-generation comment ++{ ++ my $comment = $comment_tmpl; ++ $comment =~ s/\@comment\@/Generated data ends here/; ++ print "\n" . $comment . "\n\n"; ++} diff --git a/glib/makefile.mk b/glib/makefile.mk index d1ce6a88568b..e724baee219f 100755 --- a/glib/makefile.mk +++ b/glib/makefile.mk @@ -289,21 +289,24 @@ OUT2INC+=gobject/gvaluearray.h .ELIF "$(OS)"=="WNT" CONVERTFILES=gobject/gmarshal.c -PATCH_FILES=glib-2.28.1-win32.patch +PATCH_FILES=glib-2.28.1-win32.patch glib-2.28.1-win32-2.patch CONFIGURE_ACTION= ADDITIONAL_FILES= config.h \ gio/gvdb/makefile.msc \ gio/win32/makefile.msc \ glib/glibconfig.h \ - gmodule/gmoduleconf.h + gmodule/gmoduleconf.h \ + gobject/glib-mkenums BUILD_ACTION=nmake -f makefile.msc -OUT2BIN+=gio/libgio-2.0-0.dll -OUT2BIN+=glib/libglib-2.0-0.dll -OUT2BIN+=gmodule/libgmodule-2.0-0.dll -OUT2BIN+=gobject/libgobject-2.0-0.dll -OUT2BIN+=gthread/libgthread-2.0-0.dll +OUT2BIN+=gio$/libgio-2.0-0.dll +OUT2BIN+=glib$/libglib-2.0-0.dll +OUT2BIN+=gmodule$/libgmodule-2.0-0.dll +OUT2BIN+=gobject$/libgobject-2.0-0.dll +OUT2BIN+=gthread$/libgthread-2.0-0.dll +OUT2BIN+=gobject$/glib-mkenums +OUT2BIN+=gobject$/glib-genmarshal.exe OUT2LIB+=build/win32/dirent/dirent.lib OUT2LIB+=gio/gio-2.0.lib @@ -318,6 +321,8 @@ OUT2LIB+=gobject/glib-genmarshal.lib OUT2LIB+=gobject/gobject-2.0.lib OUT2LIB+=gthread/gthread-2.0.lib +OUT2INC+=build$/win32$/make.msc +OUT2INC+=build$/win32$/module.defs OUT2INC+=glib/glib.h OUT2INC+=glib/glib-object.h diff --git a/glib/prj/d.lst b/glib/prj/d.lst index eb6c2620a08a..851265ca79a2 100644 --- a/glib/prj/d.lst +++ b/glib/prj/d.lst @@ -12,6 +12,7 @@ symlink: %_DEST%\lib%_EXT%\libgobject-2.0.0.dylib %_DEST%\lib%_EXT%\libgobject-2 ..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT% ..\%__SRC%\bin\glib-mkenums %_DEST%\bin%_EXT%\glib-mkenums ..\%__SRC%\bin\glib-genmarshal %_DEST%\bin%_EXT%\glib-genmarshal +..\%__SRC%\bin\glib-genmarshal.exe %_DEST%\bin%_EXT%\glib-genmarshal.exe ..\%__SRC%\lib\gio-2.0.lib %_DEST%\lib%_EXT%\gio-2.0.lib ..\%__SRC%\lib\gmodule-2.0.lib %_DEST%\lib%_EXT%\gmodule-2.0.lib ..\%__SRC%\lib\gthread-2.0.lib %_DEST%\lib%_EXT%\gthread-2.0.lib @@ -36,6 +37,8 @@ mkdir: %_DEST%\inc%_EXT%\external\glib-2.0 ..\%__SRC%\inc\glib.h %_DEST%\inc%_EXT%\external\glib-2.0\glib.h ..\%__SRC%\inc\glibconfig.h %_DEST%\inc%_EXT%\external\glib-2.0\glibconfig.h ..\%__SRC%\inc\gmodule.h %_DEST%\inc%_EXT%\external\glib-2.0\gmodule.h +..\%__SRC%\inc\make.msc %_DEST%\inc%_EXT%\external\glib-2.0\make.msc +..\%__SRC%\inc\module.defs %_DEST%\inc%_EXT%\external\glib-2.0\module.defs mkdir: %_DEST%\inc%_EXT%\external\glib-2.0\gio ..\%__SRC%\inc\gaction.h %_DEST%\inc%_EXT%\external\glib-2.0\gio\gaction.h diff --git a/pango/makefile.mk b/pango/makefile.mk index c7f9d036a545..fddbbecf83a1 100644 --- a/pango/makefile.mk +++ b/pango/makefile.mk @@ -108,7 +108,7 @@ OUT2INC+=pango/pango-utils.h .ELIF "$(OS)"=="WNT" PATCH_FILES=pango-1.28.3-win32.patch -ADDITIONAL_FILES=config.h module.defs make.msc glib-mkenums.pl msvc_recommended_pragmas.h +ADDITIONAL_FILES=config.h msvc_recommended_pragmas.h CONFIGURE_DIR= CONFIGURE_ACTION= BUILD_DIR=./pango diff --git a/pango/pango-1.28.3-win32.patch b/pango/pango-1.28.3-win32.patch index 35ad6666b318..0aa1155c3a2f 100644 --- a/pango/pango-1.28.3-win32.patch +++ b/pango/pango-1.28.3-win32.patch @@ -51,7 +51,7 @@ +CAIRO_LIB = $(OUTDIR)\lib\cairo.lib +USP10_LIB = USP10.lib + -+!INCLUDE $(PRJ_TOP)\make.msc ++!INCLUDE $(OUTDIR)\inc\external\glib-2.0\make.msc !IFNDEF PERL PERL = perl @@ -172,7 +172,7 @@ pango-enum-types.h: $(pango_headers) makefile.msc - $(PERL) $(GLIB)\gobject\glib-mkenums \ -+ $(PERL) $(PRJ_TOP)\glib-mkenums.pl \ ++ $(PERL) $(OUTDIR)\bin\glib-mkenums \ --fhead "#ifndef __PANGO_ENUM_TYPES_H__\n#define __PANGO_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \ --fprod "/* enumerations from \"@filename@\" */\n" \ --vhead "GType @enum_name@_get_type (void);\n#define PANGO_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ @@ -181,7 +181,7 @@ pango-enum-types.c: $(pango_headers) pango-enum-types.h makefile.msc - $(PERL) $(GLIB)\gobject\glib-mkenums \ -+ $(PERL) $(PRJ_TOP)\glib-mkenums.pl \ ++ $(PERL) $(OUTDIR)\bin\glib-mkenums \ --fhead "#include <pango.h>" \ --fprod "\n/* enumerations from \"@filename@\" */" \ --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \ @@ -595,917 +595,6 @@ +/*almostempty*/ +#define PANGO_BINARY_AGE 0 +#define DHAVE_USP10_H 1 ---- misc/pango-1.28.3/make.msc 2011-03-26 08:32:25.068811600 +0100 -+++ misc/build/pango-1.28.3/make.msc 2011-03-26 09:00:42.356161600 +0100 -@@ -1 +1,237 @@ --dummy -+# Note that this file is hardly maintained, hardly usable without -+# manual editing, and not really part of a recommended way to build -+# GLib and related software with Microsoft's compilers. Only a few -+# persons use a build setup that involves this file. -+ -+# Common makefile definitions for building GLib, GTk+, and various -+# software that use these libraries with msvc on Win32 -+ -+# Debug builds shoud link with msvcrtd release build with msvcrt. -+!IFNDEF DEBUG -+# Full optimization: -+OPTIMIZE = -Ox -+# release with debug -+OPTIMIZE = -Zi -DG_ENABLE_DEBUG=1 -+CRUNTIME = -MD -+LINKDEBUG = /OPT:REF -+!ELSE -+# Debugging: -+OPTIMIZE = -+CRUNTIME = -MDd -+DEBUGINFO = -Zi -DG_ENABLE_DEBUG=1 -+LINKDEBUG = /debug /nodefaultlib:msvcrt.lib -+!ENDIF -+ -+LDFLAGS = /link /machine:ix86 $(LINKDEBUG) -+ -+!IFNDEF TOP -+TOP = .. -+!ENDIF -+ -+!IFNDEF PERL -+PERL = perl -+!ENDIF -+ -+XSLTPROC = d:\gnome-0\xsltproc -+ -+# paths and version numbers -+!INCLUDE module.defs -+ -+################ -+# CFLAGS and LIBS for the packages in module.defs. -+# In alphabetical order. -+ -+# Note that these CFLAGS and LIBS refer to stuff in "source" -+# directories. This is for historical reasons, and only useable if you -+# have the GLib, Pango, etc sources. If you use the prebuilt developer -+# packages, you should fix these to instead refer to the place where -+# you unzipped the developer packages. Easiest of all, run pkg-config -+# --cflags gtk+-2.0 (for instance), and paste its output as the -+# definition of GTK2_CFLAGS. Etc. -+ -+ATK_CFLAGS = -I $(ATK) -+ATK_LIBS = $(ATK)\atk\atk-$(ATK_VER).lib -+BABL_CFLAGS = -I $(BABL) -+BABL_LIBS = $(BABL)\babl\babl-1.0.lib -+ -+# force inclusion of the _right_ cairoversion.h even when using without installation -+CAIRO_CFLAGS = -I $(CAIRO)\src -I $(CAIRO) -+CAIRO_LIBS = $(CAIRO)\src\libcairo.lib -+ -+DIRENT_CFLAGS = -I ..\build\win32\dirent -+DIRENT_LIBS = ..\build\win32\dirent\dirent.lib -+ -+!IFNDEF EXIF -+EXIF_CFLAGS = -I $(DEVTOP)\include -+EXIF_LIBS = $(DEVTOP)\lib\exif.lib -+EXIF = 1 -+!ENDIF -+ -+# Don't know if Freetype2, FriBiDi and some others actually can be -+# built with MSVC, but one can produce an import library even if the -+# DLL was built with gcc. -+!IFDEF FREETYPE2 -+FREETYPE2_CFLAGS = -I $(FREETYPE2)\include -+FREETYPE2_LIBS = $(FREETYPE2)\obj\freetype-$(FREETYPE2_VER).lib -+!ELSE -+FREETYPE2_CFLAGS = -I $(DEVTOP)\include -I $(DEVTOP)\include\freetype2 -+FREETYPE2_LIBS = $(DEVTOP)\lib\freetype6.lib -+!ENDIF -+ -+!IFNDEF FONTCONFIG -+FONTCONFIG_CFLAGS = -I $(DEVTOP)\include -+FONTCONFIG_LIBS = $(DEVTOP)\lib\fontconfig.lib -+!ENDIF -+ -+GDK_PIXBUF_CFLAGS = -I $(GDK_PIXBUF) -+GDK_PIXBUF_LIBS = $(GTK2)\gdk-pixbuf\gdk_pixbuf-$(GDK_PIXBUF_VER).lib -+ -+GIMP_CFLAGS = -I $(GIMP) -+GIMP_PLUGIN_LIBS = $(GIMP)\libgimp\gimp-$(GIMP_VER).lib $(GIMP)\libgimp\gimpui-$(GIMP_VER).lib -+ -+# overide definition to use it as callable path -+GLIB = $(TOP)\glib -+ -+GLIB_CFLAGS = -I $(GLIB) -I $(GLIB)\glib -I $(GLIB)\gmodule $(INTL_CFLAGS) $(SOLARINC) -+GLIB_LIBS = $(GLIB)\glib\glib-$(GLIB_VER).lib $(GLIB)\gmodule\gmodule-$(GLIB_VER).lib $(GLIB)\gobject\gobject-$(GLIB_VER).lib $(GLIB)\gio\gio-$(GLIB_VER).lib -+GTHREAD_LIBS = $(GLIB)\gthread\gthread-$(GLIB_VER).lib -+ -+!IFNDEF GDK_PIXBUF -+GDK_PIXBUF_CFLAGS = $(GTK2_CFLAGS) -+GDK_PIXBUF_LIBS = $(GTK2_LIBS) -+!ENDIF -+ -+GNOMECANVAS_CFLAGS = -I $(GNOMECANVAS) -+GNOMECANVAS_LIBS = $(GNOMECANVAS)\libgnomecanvas\libgnomecanvas-$(GNOMECANVAS_VER).lib -+ -+GNOMEPRINT_CFLAGS = -I $(GNOMEPRINT) -+GNOMEPRINT_LIBS = $(GNOMEPRINT)\libgnomeprint\gnome-print-$(GNOMEPRINT_VER).lib -+ -+GNOMEPRINTUI_CFLAGS = -I $(GNOMEPRINTUI) -+GNOMEPRINTUI_LIBS = $(GNOMEPRINTUI)\libgnomeprintui\gnome-printui-$(GNOMEPRINTUI_VER).lib -+ -+GTK_CFLAGS = -I$(GTK)\gdk -I$(GTK)\gdk -I$(GTK) -+GTK_LIBS = $(GTK)\gtk\gtk.lib $(GTK)\gdk\gdk.lib -+ -+GTK2_CFLAGS = $(GLIB_CFLAGS) $(ATK_CFLAGS) -I$(GTK2)\gdk -I$(GTK2)\gdk -I$(GTK2) -I$(PANGO) -I$(ATK) $(CAIRO_CFLAGS) -+GTK2_LIBS = $(GTK2)\gtk\gtk-win32-$(GTK2_VER).lib $(GTK2)\gdk\gdk-win32-$(GTK2_VER).lib $(GTK2)\gdk-pixbuf\gdk_pixbuf-$(GTK2_VER).lib $(PANGO_LIBS) -+ -+GTKGLAREA_CFLAGS = -I $(GTKGLAREA) -+GTKGLAREA_LIBS = $(GTKGLAREA)\gtkgl\gtkgl-$(GTKGLAREA_VER).lib -+ -+GTKSOURCEVIEW_CFLAGS = -I $(GTKSOURCEVIEW) -+GTKSOURCEVIEW_LIBS = $(GTKSOURCEVIEW)\gtksourceview\gtksourceview.lib -+ -+LIBART_CFLAGS = -I$(LIBART)\.. -FIlibart_lgpl/art_config.h -+LIBART_LIBS = $(LIBART)\art_lgpl_2.lib -+ -+!IFNDEF INTL -+INTL_CFLAGS = -I $(OUTDIR)\inc\external -+INTL_LIBS = $(OUTDIR)/lib/intl.lib -+!ELSE -+INTL_CFLAGS = -I $(OUTDIR)\inc\external -+INTL_LIBS = $(OUTDIR)/lib/intl.lib -+!ENDIF -+ -+!IFDEF LCMS -+LCMS_CFLAGS = -DLCMS_DLL -I $(LCMS)\include -+LCMS_LIBS = $(LCMS)\Projects\VC6\Release\lcms.lib -+!ENDIF -+ -+LIBICONV_CFLAGS = -I $(LIBICONV)\include -+LIBICONV_LIBS = $(LIBICONV)\lib\iconv.lib -+ -+LIBXML_CFLAGS = -I $(LIBXML) -+LIBXML_LIBS = $(LIBXML)\xml-$(LIBXML_VER).lib -+ -+LIBXML2_CFLAGS = $(LIBICONV_CFLAGS) -I $(LIBXML2)\include -+LIBXML2_LIBS = $(LIBXML2)\libxml2.lib -+ -+LIBXSLT_CFLAGS = -I $(LIBXSLT) -+LIBXSLT_LIBS = $(LIBXSLT)\libxslt\libxslt.lib -+ -+LCMS_CFLAGS = -I $(LCMS)\include -DLCMS_DLL -+LCMS_LIBS = $(LCMS)\Projects\VC6\Release\lcms.lib -+ -+!IFNDEF JPEG -+JPEG_CFLAGS = -I $(DEVTOP)\include -+JPEG_LIBS = $(DEVTOP)\lib\jpeg.lib -+!ELSE -+JPEG_CFLAGS = -I $(JPEG) -+JPEG_LIBS = $(JPEG)\libjpeg.lib -+!ENDIF -+ -+OPENGL_CFLAGS = # None needed, headers bundled with the compiler -+OPENGL_LIBS = opengl32.lib lglu32.lib -+ -+PANGO_CFLAGS = -I $(PANGO) -+PANGO_LIBS = $(PANGO)\pango\pango-$(PANGO_VER).lib -+PANGOCAIRO_LIBS = $(PANGO_LIBS) $(PANGO)\pango\pangocairo-$(PANGO_VER).lib -+PANGOWIN32_LIBS = $(PANGO_LIBS) $(PANGO)\pango\pangowin32-$(PANGO_VER).lib -+PANGOFT2_LIBS = $(PANGO_LIBS) $(PANGO)\pango\pangoft2-$(PANGO_VER).lib -+ -+!IFDEF PNG -+PNG_CFLAGS = -I $(PNG) $(ZLIB_CFLAGS) -+PNG_LIBS = $(PNG)\projects\visualc6\Win32_LIB_Release\libpng.lib $(ZLIB_LIBS) -+!ELSE -+PNG_CFLAGS = -I $(DEVTOP)\include $(ZLIB_CFLAGS) -+PNG_LIBS = $(DEVTOP)\lib\libpng.lib $(ZLIB_LIBS) -+!ENDIF -+ -+RSVG_CFLAGS = -I $(RSVG)\.. -+RSVG_LIBS = $(RSVG)\librsvg-2.lib -+ -+SVG_CFLAGS = -I $(SVG)\src -+SVG_LIBS = $(SVG)\src\libsvg-$(SVG_VER).lib -+ -+!IFDEF TIFF -+TIFF_CFLAGS = -I $(TIFF)\libtiff -+# Use single import library for both libtiff DLL versions (with or -+# without LZW code). The user selects which DLL to use. -+TIFF_LIBS = $(TIFF)\libtiff\libtiff.lib $(JPEG_LIBS) $(ZLIB_LIBS) user32.lib -+!ELSE -+TIFF_CFLAGS = -I $(DEVTOP)\include -+TIFF_LIBS = $(DEVTOP)\lib\libtiff.lib -+!ENDIF -+ -+VIPS_CFLAGS = -I $(VIPS)/include -+VIPS_LIBS = $(VIPS)/libsrc/vips.lib -+ -+!IFDEF ZLIB -+ZLIB_CFLAGS = -I $(ZLIB) -+ZLIB_LIBS = $(OUTDIR)\lib\zlib.lib -+!ELSE -+ZLIB_CFLAGS = -I $(ZLIB) -+ZLIB_LIBS = $(OUTDIR)\lib\zlib.lib -+!ENDIF -+ -+################ -+# Compiler to use. -+ -+CCOMPILER = cl -+CC = $(CCOMPILER) $(OPTIMIZE) $(CRUNTIME) -W3 -nologo -+ -+################ -+# The including makefile should define INCLUDES, DEFINES and -+# DEPCFLAGS. INCLUDES are the includes related to the module being -+# built. DEFINES similarly. DEPCFLAGS should be set to a set of -+# GLIB_CFLAGS, GTK_CFLAGS etc corresponding to what other modules we -+# depend on. -+ -+CFLAGS = $(OPTIMIZE) $(DEBUGINFO) $(INCLUDES) $(DEFINES) $(DEPCFLAGS) -+# make cl/wcl386 compatible (c99 and cdecl) -+#OPTIMIZE = -Ox -+#CFLAGS = /passwopts:-za99 /passwopts:-ecc $(DEBUGINFO) $(INCLUDES) $(DEFINES) $(DEPCFLAGS) -+.c.i : -+ $(CC) $(CFLAGS) -E $< >$@ -+ -+# The default target should be "all" -+ -+default: all -+ -+clean:: -+ -del *.obj *.res *.i *.exe *.dll *.lib *.err *.map *.exp *.lk1 *.mk1 *.ilk *.manifest -+ -del *.pdb -+ -+# Needed by hacker rule to make makefile.msc from makefile.msc.in: -+SED = e:\cygwin\bin\sed ---- misc/pango-1.28.3/module.defs 2011-03-26 15:50:26.773265200 +0100 -+++ misc/build/pango-1.28.3/module.defs 2011-03-26 15:49:47.850892000 +0100 -@@ -1 +1,124 @@ --dummy -+# Note that this file is hardly maintained, hardly usable without -+# manual editing, and not really part of a recommended way to build -+# GLib and related software with Microsoft's compilers. Only a few -+# persons use a build setup that involves this file. -+ -+# This file is included by makefiles for both GNU Make (for gcc -+# (mingw) builds, and NMAKE (for MSVC builds). -+ -+MODULE_DEFS_INCLUDED=1 -+ -+# fallback if a specifc library is not contained in TOP (i.e. not self-compiled) -+DEVTOP=$(TOP)\..\other\dev -+ -+################ -+# The version macros define what versions of libraries to use. -+ -+# The version numbers are defined unconditionally. If you want to -+# produce a newer version of one of these libraries, the new number -+# should be defined in the specific project makefile _after_ including -+# this file (or make.{mingw,msc}). These version numbers are used in -+# the names of some import libraries. -+ -+# Please note that there are two (or three) ways to build the GLib -+# (and GTK+ etc) libraries on Win32: Either using the same -+# auto*/configure mechanism to generate makefiles as on Unix, and -+# libtool to handle DLL creation. This currently only works for gcc, -+# and even then it is hellish to set up to work 100% correctly. For -+# people using that, this file is totally irrelevant. -+ -+# Or, use hand-written makefiles, either for MSVC (these are called -+# makefile.msc and maintained by Hans Breuer), or for gcc -+# (makefile.mingw, by Tor Lillqvist). Only for GLib are the -+# makefile.mingw files believed to be up-to-date, for other modules -+# they have been left to rot after Tor started using the -+# autoconfiscated way of building. -+ -+# The stuff here uses the same name for (import) libraries as on Unix, -+# as libtool uses those, and the semi-official developer packages are -+# built using libtool. -+ -+ATK_VER = 1.0 -+CAIRO_VER = 1.4 -+FREETYPE2_VER = 2.0 -+GIMP_VER = 1.2 -+GDK_PIXBUF_VER = 2.0 -+GLIB_VER = 2.0 -+GTKGLAREA_VER = 1.2.2 -+GTK2_VER = 2.0 -+LIBGLADE_VER = 0.14 -+LIBICONV_VER = 1.7 -+LIBXML_VER = 1.8.7 -+LIBXML2_VER = 2.4.2 -+PANGO_VER = 1.0 -+POPT_VER = 1.4 -+SVG_VER = 0.1 -+RSVG_VER = 2.4 -+ -+################ -+# Locations of various source directories. TOP is defined in make.{mingw,msc} -+ -+# First stuff that is in the GNOME CVS repository. -+# In alphabetical order. -+ -+ATK = $(TOP)/atk -+BABL = $(TOP)/babl -+CAIRO = d:\devel\from-svn\other\cairo-1.8.4 -+GIMP = $(TOP)/gimp -+GEGL = $(TOP)/gegl -+GLIB = $(TOP)/glib -+GNOMECANVAS = $(TOP)\libgnomecanvas -+GNOMECANVAS_VER = 2.9 -+ -+# GTK+ 1.3.0, gtk-1-3-win32-production branch. Rename directory -+# to gtk+p after initial checkout from CVS. -+GTK = $(TOP)/gtk+p -+# GTK+ 2.0 -+GTK2 = $(TOP)/gtk+ -+GTKSOURCEVIEW = $(TOP)/gtksourceview -+GNOMEPRINT = $(TOP)\libgnomeprint -+GNOMEPRINT_VER = 2.8 -+LIBGLADE = $(TOP)/libglade -+LIBXML = $(TOP)/libxml-$(LIBXML_VER) -+LIBXML2 = $(TOP)/libxml2 -+#PANGO = $(TOP)/pango-1-8 -+PANGO = $(TOP)/pango -+ -+GNOMEPRINTUI = $(TOP)\libgnomeprintui -+GNOMEPRINTUI_VER = 2.2 -+ -+# Aux programs -+GLIB_GENMARSHAL = $(GLIB)/gobject/glib-genmarshal -+ -+# Stuff from other places. -+ -+# Note this was is specific to what tml happened to have on his disk -+# at some time in history. To really be able to recompile something -+# that uses for instance libjpeg, you should download a suitable -+# binary "developer" distribution of it, unpack it into some location, -+# and edit this file correspondingly. You should not take the versions -+# mentioned here too literally, use the latest version you can find, -+# or the ones the current GTK+ 2.0 for Windows uses. -+ -+#FREETYPE2 = $(TOP)/freetype2 -+GTKEXTRA = $(TOP)/gtk+extra -+GTKGLAREA = $(TOP)/gtkglarea -+#INTL = d:/devel/from-svn/other/intl-tml -+JPEG = d:/devel/from-svn/other/jpeg-6b -+LCMS = d:/devel/other/lcms-1.15 -+LIBART = $(TOP)/libart_lgpl -+LIBICONV = $(TOP)/libiconv-$(LIBICONV_VER) -+LIBXSLT = $(TOP)/libxslt -+#PNG = d:/devel/from-svn/other/lpng1224 -+RSVG = $(TOP)\librsvg -+SVG = $(TOP)\libsvg -+#TIFF = d:/devel/from-svn/other/tiff-3.7.2 -+#ZLIB = d:/devel/from-svn/other/zlib123 -+ -+# Headers from Microsoft's PlatformSDK (that aren't present in -+# mingw) are needed by a just a few packages when compiling with gcc. -+# This is just where tml has it installed. -+PLATFORMSDK = i:/src/psdk -+ -+# -+WTKIT = d:/devel/from-svn/other\wtkit126 ---- misc/pango-1.28.3/glib-mkenums.pl 2011-03-26 07:31:15.240588400 +0100 -+++ misc/build/pango-1.28.3/glib-mkenums.pl 2011-03-26 07:34:33.961882000 +0100 -@@ -1 +1,538 @@ --dummy -+#! perl.exe -+ -+use warnings; -+use File::Basename; -+use Safe; -+ -+# glib-mkenums.pl -+# Information about the current enumeration -+my $flags; # Is enumeration a bitmask? -+my $option_underscore_name; # Overriden underscore variant of the enum name -+ # for example to fix the cases we don't get the -+ # mixed-case -> underscorized transform right. -+my $option_lowercase_name; # DEPRECATED. A lower case name to use as part -+ # of the *_get_type() function, instead of the -+ # one that we guess. For instance, when an enum -+ # uses abnormal capitalization and we can not -+ # guess where to put the underscores. -+my $seenbitshift; # Have we seen bitshift operators? -+my $enum_prefix; # Prefix for this enumeration -+my $enumname; # Name for this enumeration -+my $enumshort; # $enumname without prefix -+my $enumname_prefix; # prefix of $enumname -+my $enumindex = 0; # Global enum counter -+my $firstenum = 1; # Is this the first enumeration per file? -+my @entries; # [ $name, $val ] for each entry -+my $sandbox = Safe->new; # sandbox for safe evaluation of expressions -+ -+sub parse_trigraph { -+ my $opts = shift; -+ my @opts; -+ -+ for $opt (split /\s*,\s*/, $opts) { -+ $opt =~ s/^\s*//; -+ $opt =~ s/\s*$//; -+ my ($key,$val) = $opt =~ /(\w+)(?:=(.+))?/; -+ defined $val or $val = 1; -+ push @opts, $key, $val; -+ } -+ @opts; -+} -+sub parse_entries { -+ my $file = shift; -+ my $file_name = shift; -+ my $looking_for_name = 0; -+ -+ while (<$file>) { -+ # read lines until we have no open comments -+ while (m@/\*([^*]|\*(?!/))*$@) { -+ my $new; -+ defined ($new = <$file>) || die "Unmatched comment in $ARGV"; -+ $_ .= $new; -+ } -+ # strip comments w/o options -+ s@/\*(?!<) -+ ([^*]+|\*(?!/))* -+ \*/@@gx; -+ -+ # strip newlines -+ s@\n@ @; -+ -+ # skip empty lines -+ next if m@^\s*$@; -+ -+ if ($looking_for_name) { -+ if (/^\s*(\w+)/) { -+ $enumname = $1; -+ return 1; -+ } -+ } -+ -+ # Handle include files -+ if (/^\#include\s*<([^>]*)>/ ) { -+ my $file= "../$1"; -+ open NEWFILE, $file or die "Cannot open include file $file: $!\n"; -+ -+ if (parse_entries (\*NEWFILE, $NEWFILE)) { -+ return 1; -+ } else { -+ next; -+ } -+ } -+ -+ if (/^\s*\}\s*(\w+)/) { -+ $enumname = $1; -+ $enumindex++; -+ return 1; -+ } -+ -+ if (/^\s*\}/) { -+ $enumindex++; -+ $looking_for_name = 1; -+ next; -+ } -+ -+ if (m@^\s* -+ (\w+)\s* # name -+ (?:=( # value -+ \s*\w+\s*\(.*\)\s* # macro with multiple args -+ | # OR -+ (?:[^,/]|/(?!\*))* # anything but a comma or comment -+ ))?,?\s* -+ (?:/\*< # options -+ (([^*]|\*(?!/))*) -+ >\s*\*/)?,? -+ \s*$ -+ @x) { -+ my ($name, $value, $options) = ($1,$2,$3); -+ -+ if (!defined $flags && defined $value && $value =~ /<</) { -+ $seenbitshift = 1; -+ } -+ -+ if (defined $options) { -+ my %options = parse_trigraph($options); -+ if (!defined $options{skip}) { -+ push @entries, [ $name, $value, $options{nick} ]; -+ } -+ } else { -+ push @entries, [ $name, $value ]; -+ } -+ } elsif (m@^\s*\#@) { -+ # ignore preprocessor directives -+ } else { -+ print STDERR "$0: $file_name:$.: Failed to parse `$_'\n"; -+ } -+ } -+ -+ return 0; -+} -+ -+sub version { -+ print "glib-mkenums version glib-@GLIB_VERSION@\n"; -+ print "glib-mkenums comes with ABSOLUTELY NO WARRANTY.\n"; -+ print "You may redistribute copies of glib-mkenums under the terms of\n"; -+ print "the GNU General Public License which can be found in the\n"; -+ print "GLib source package. Sources, examples and contact\n"; -+ print "information are available at http://www.gtk.org\n"; -+ exit 0; -+} -+sub usage { -+ print "Usage:\n"; -+ print " glib-mkenums [OPTION...] [FILES...]\n\n"; -+ print "Help Options:\n"; -+ print " -h, --help Show this help message\n\n"; -+ print "Utility Options:\n"; -+ print " --fhead <text> Output file header\n"; -+ print " --fprod <text> Per input file production\n"; -+ print " --ftail <text> Output file trailer\n"; -+ print " --eprod <text> Per enum text (produced prior to value itarations)\n"; -+ print " --vhead <text> Value header, produced before iterating over enum values\n"; -+ print " --vprod <text> Value text, produced for each enum value\n"; -+ print " --vtail <text> Value tail, produced after iterating over enum values\n"; -+ print " --comments <text> Comment structure\n"; -+ print " --template file Template file\n"; -+ print " -v, --version Print version informations\n\n"; -+ print "Production text substitutions:\n"; -+ print " \@EnumName\@ PrefixTheXEnum\n"; -+ print " \@enum_name\@ prefix_the_xenum\n"; -+ print " \@ENUMNAME\@ PREFIX_THE_XENUM\n"; -+ print " \@ENUMSHORT\@ THE_XENUM\n"; -+ print " \@ENUMPREFIX\@ PREFIX\n"; -+ print " \@VALUENAME\@ PREFIX_THE_XVALUE\n"; -+ print " \@valuenick\@ the-xvalue\n"; -+ print " \@valuenum\@ the integer value (limited support, Since: 2.26)\n"; -+ print " \@type\@ either enum or flags\n"; -+ print " \@Type\@ either Enum or Flags\n"; -+ print " \@TYPE\@ either ENUM or FLAGS\n"; -+ print " \@filename\@ name of current input file\n"; -+ print " \@basename\@ base name of the current input file (Since: 2.22)\n"; -+ exit 0; -+} -+ -+# production variables: -+my $fhead = ""; # output file header -+my $fprod = ""; # per input file production -+my $ftail = ""; # output file trailer -+my $eprod = ""; # per enum text (produced prior to value itarations) -+my $vhead = ""; # value header, produced before iterating over enum values -+my $vprod = ""; # value text, produced for each enum value -+my $vtail = ""; # value tail, produced after iterating over enum values -+my $comment_tmpl = ""; # comment template -+ -+sub read_template_file { -+ my ($file) = @_; -+ my %tmpl = ('file-header', $fhead, -+ 'file-production', $fprod, -+ 'file-tail', $ftail, -+ 'enumeration-production', $eprod, -+ 'value-header', $vhead, -+ 'value-production', $vprod, -+ 'value-tail', $vtail, -+ 'comment', $comment_tmpl); -+ my $in = 'junk'; -+ open (FILE, $file) || die "Can't open $file: $!\n"; -+ while (<FILE>) { -+ if (/^\/\*\*\*\s+(BEGIN|END)\s+([\w-]+)\s+\*\*\*\//) { -+ if (($in eq 'junk') && ($1 eq 'BEGIN') && (exists($tmpl{$2}))) { -+ $in = $2; -+ next; -+ } -+ elsif (($in eq $2) && ($1 eq 'END') && (exists($tmpl{$2}))) { -+ $in = 'junk'; -+ next; -+ } else { -+ die "Malformed template file $file\n"; -+ } -+ } -+ if (!($in eq 'junk')) { -+ $tmpl{$in} .= $_; -+ } -+ } -+ close (FILE); -+ if (!($in eq 'junk')) { -+ die "Malformed template file $file\n"; -+ } -+ $fhead = $tmpl{'file-header'}; -+ $fprod = $tmpl{'file-production'}; -+ $ftail = $tmpl{'file-tail'}; -+ $eprod = $tmpl{'enumeration-production'}; -+ $vhead = $tmpl{'value-header'}; -+ $vprod = $tmpl{'value-production'}; -+ $vtail = $tmpl{'value-tail'}; -+ $comment_tmpl = $tmpl{'comment'}; -+ -+ # default to C-style comments -+ $comment_tmpl = "/* \@comment\@ */" if $comment_tmpl eq ""; -+} -+ -+if (!defined $ARGV[0]) { -+ usage; -+} -+while ($_=$ARGV[0],/^-/) { -+ shift; -+ last if /^--$/; -+ if (/^--template$/) { read_template_file (shift); } -+ elsif (/^--fhead$/) { $fhead = $fhead . shift } -+ elsif (/^--fprod$/) { $fprod = $fprod . shift } -+ elsif (/^--ftail$/) { $ftail = $ftail . shift } -+ elsif (/^--eprod$/) { $eprod = $eprod . shift } -+ elsif (/^--vhead$/) { $vhead = $vhead . shift } -+ elsif (/^--vprod$/) { $vprod = $vprod . shift } -+ elsif (/^--vtail$/) { $vtail = $vtail . shift } -+ elsif (/^--comments$/) { $comment_tmpl = shift } -+ elsif (/^--help$/ || /^-h$/ || /^-\?$/) { usage; } -+ elsif (/^--version$/ || /^-v$/) { version; } -+ else { usage; } -+ last if not defined($ARGV[0]); -+} -+ -+# put auto-generation comment -+{ -+ my $comment = $comment_tmpl; -+ $comment =~ s/\@comment\@/Generated data (by glib-mkenums)/; -+ print "\n" . $comment . "\n\n"; -+} -+ -+if (length($fhead)) { -+ my $prod = $fhead; -+ my $base = basename ($ARGV[0]); -+ -+ $prod =~ s/\@filename\@/$ARGV[0]/g; -+ $prod =~ s/\@basename\@/$base/g; -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+} -+ -+while (<>) { -+ if (eof) { -+ close (ARGV); # reset line numbering -+ $firstenum = 1; # Flag to print filename at next enum -+ } -+ -+ # read lines until we have no open comments -+ while (m@/\*([^*]|\*(?!/))*$@) { -+ my $new; -+ defined ($new = <>) || die "Unmatched comment in $ARGV"; -+ $_ .= $new; -+ } -+ # strip comments w/o options -+ s@/\*(?!<) -+ ([^*]+|\*(?!/))* -+ \*/@@gx; -+ -+ if (m@^\s*typedef\s+enum\s* -+ ({)?\s* -+ (?:/\*< -+ (([^*]|\*(?!/))*) -+ >\s*\*/)? -+ \s*({)? -+ @x) { -+ if (defined $2) { -+ my %options = parse_trigraph ($2); -+ next if defined $options{skip}; -+ $enum_prefix = $options{prefix}; -+ $flags = $options{flags}; -+ $option_lowercase_name = $options{lowercase_name}; -+ $option_underscore_name = $options{underscore_name}; -+ } else { -+ $enum_prefix = undef; -+ $flags = undef; -+ $option_lowercase_name = undef; -+ $option_underscore_name = undef; -+ } -+ if (defined $option_lowercase_name) { -+ if (defined $option_underscore_name) { -+ print STDERR "$0: $ARGV:$.: lowercase_name overriden with underscore_name\n"; -+ $option_lowercase_name = undef; -+ } else { -+ print STDERR "$0: $ARGV:$.: lowercase_name is deprecated, use underscore_name\n"; -+ } -+ } -+ # Didn't have trailing '{' look on next lines -+ if (!defined $1 && !defined $4) { -+ while (<>) { -+ if (s/^\s*\{//) { -+ last; -+ } -+ } -+ } -+ -+ $seenbitshift = 0; -+ @entries = (); -+ -+ # Now parse the entries -+ parse_entries (\*ARGV, $ARGV); -+ -+ # figure out if this was a flags or enums enumeration -+ if (!defined $flags) { -+ $flags = $seenbitshift; -+ } -+ -+ # Autogenerate a prefix -+ if (!defined $enum_prefix) { -+ for (@entries) { -+ my $nick = $_->[2]; -+ if (!defined $nick) { -+ my $name = $_->[0]; -+ if (defined $enum_prefix) { -+ my $tmp = ~ ($name ^ $enum_prefix); -+ ($tmp) = $tmp =~ /(^\xff*)/; -+ $enum_prefix = $enum_prefix & $tmp; -+ } else { -+ $enum_prefix = $name; -+ } -+ } -+ } -+ if (!defined $enum_prefix) { -+ $enum_prefix = ""; -+ } else { -+ # Trim so that it ends in an underscore -+ $enum_prefix =~ s/_[^_]*$/_/; -+ } -+ } else { -+ # canonicalize user defined prefixes -+ $enum_prefix = uc($enum_prefix); -+ $enum_prefix =~ s/-/_/g; -+ $enum_prefix =~ s/(.*)([^_])$/$1$2_/; -+ } -+ -+ for $entry (@entries) { -+ my ($name,$num,$nick) = @{$entry}; -+ if (!defined $nick) { -+ ($nick = $name) =~ s/^$enum_prefix//; -+ $nick =~ tr/_/-/; -+ $nick = lc($nick); -+ @{$entry} = ($name, $num, $nick); -+ } -+ } -+ -+ -+ # Spit out the output -+ if (defined $option_underscore_name) { -+ $enumlong = uc $option_underscore_name; -+ $enumsym = lc $option_underscore_name; -+ $enumshort = $enumlong; -+ $enumshort =~ s/^[A-Z][A-Z0-9]*_//; -+ -+ $enumname_prefix = $enumlong; -+ $enumname_prefix =~ s/$enumshort$//; -+ } else { -+ # enumname is e.g. GMatchType -+ $enspace = $enumname; -+ $enspace =~ s/^([A-Z][a-z]*).*$/$1/; -+ -+ $enumshort = $enumname; -+ $enumshort =~ s/^[A-Z][a-z]*//; -+ $enumshort =~ s/([^A-Z])([A-Z])/$1_$2/g; -+ $enumshort =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g; -+ $enumshort = uc($enumshort); -+ -+ $enumname_prefix = $enumname; -+ $enumname_prefix =~ s/^([A-Z][a-z]*).*$/$1/; -+ $enumname_prefix = uc($enumname_prefix); -+ -+ $enumlong = uc($enspace) . "_" . $enumshort; -+ $enumsym = lc($enspace) . "_" . lc($enumshort); -+ -+ if (defined($option_lowercase_name)) { -+ $enumsym = $option_lowercase_name; -+ } -+ } -+ -+ if ($firstenum) { -+ $firstenum = 0; -+ -+ if (length($fprod)) { -+ my $prod = $fprod; -+ my $base = basename ($ARGV); -+ -+ $prod =~ s/\@filename\@/$ARGV/g; -+ $prod =~ s/\@basename\@/$base/g; -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ } -+ -+ if (length($eprod)) { -+ my $prod = $eprod; -+ -+ $prod =~ s/\@enum_name\@/$enumsym/g; -+ $prod =~ s/\@EnumName\@/$enumname/g; -+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; -+ $prod =~ s/\@ENUMNAME\@/$enumlong/g; -+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; -+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ -+ if (length($vhead)) { -+ my $prod = $vhead; -+ -+ $prod =~ s/\@enum_name\@/$enumsym/g; -+ $prod =~ s/\@EnumName\@/$enumname/g; -+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; -+ $prod =~ s/\@ENUMNAME\@/$enumlong/g; -+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; -+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ -+ if (length($vprod)) { -+ my $prod = $vprod; -+ my $next_num = 0; -+ -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ for (@entries) { -+ my ($name,$num,$nick) = @{$_}; -+ my $tmp_prod = $prod; -+ -+ if ($prod =~ /\@valuenum\@/) { -+ # only attempt to eval the value if it is requested -+ # this prevents us from throwing errors otherwise -+ if (defined $num) { -+ # use sandboxed perl evaluation as a reasonable -+ # approximation to C constant folding -+ $num = $sandbox->reval ($num); -+ -+ # make sure it parsed to an integer -+ if (!defined $num or $num !~ /^-?\d+$/) { -+ die "Unable to parse enum value '$num'"; -+ } -+ } else { -+ $num = $next_num; -+ } -+ -+ $tmp_prod =~ s/\@valuenum\@/$num/g; -+ $next_num = $num + 1; -+ } -+ -+ $tmp_prod =~ s/\@VALUENAME\@/$name/g; -+ $tmp_prod =~ s/\@valuenick\@/$nick/g; -+ if ($flags) { $tmp_prod =~ s/\@type\@/flags/g; } else { $tmp_prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $tmp_prod =~ s/\@Type\@/Flags/g; } else { $tmp_prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $tmp_prod =~ s/\@TYPE\@/FLAGS/g; } else { $tmp_prod =~ s/\@TYPE\@/ENUM/g; } -+ chomp ($tmp_prod); -+ -+ print "$tmp_prod\n"; -+ } -+ } -+ -+ if (length($vtail)) { -+ my $prod = $vtail; -+ -+ $prod =~ s/\@enum_name\@/$enumsym/g; -+ $prod =~ s/\@EnumName\@/$enumname/g; -+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g; -+ $prod =~ s/\@ENUMNAME\@/$enumlong/g; -+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g; -+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; } -+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; } -+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; } -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+ } -+ } -+} -+ -+if (length($ftail)) { -+ my $prod = $ftail; -+ my $base = basename ($ARGV); -+ -+ $prod =~ s/\@filename\@/$ARGV/g; -+ $prod =~ s/\@basename\@/$base/g; -+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g; -+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g; -+ chomp ($prod); -+ -+ print "$prod\n"; -+} -+ -+# put auto-generation comment -+{ -+ my $comment = $comment_tmpl; -+ $comment =~ s/\@comment\@/Generated data ends here/; -+ print "\n" . $comment . "\n\n"; -+} --- misc/pango-1.28.3/msvc_recommended_pragmas.h 2011-03-26 07:30:07.692848800 +0100 +++ misc/build/pango-1.28.3/msvc_recommended_pragmas.h 2011-03-26 07:34:43.524504400 +0100 @@ -1 +1,31 @@ |