From eb9bbbdf7faaad957b41697fa61cd3342b37cef3 Mon Sep 17 00:00:00 2001 From: ka Date: Fri, 1 Apr 2011 17:25:01 +0200 Subject: ooo340libs: needed patch changes for external libraries/using external/jpeg*.h again --- pango/makefile.mk | 2 +- pango/pango-1.28.3-win32.patch | 917 +---------------------------------------- 2 files changed, 4 insertions(+), 915 deletions(-) (limited to 'pango') 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 \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 " \ --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 =~ /< Output file header\n"; -+ print " --fprod Per input file production\n"; -+ print " --ftail Output file trailer\n"; -+ print " --eprod Per enum text (produced prior to value itarations)\n"; -+ print " --vhead Value header, produced before iterating over enum values\n"; -+ print " --vprod Value text, produced for each enum value\n"; -+ print " --vtail Value tail, produced after iterating over enum values\n"; -+ print " --comments 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 () { -+ 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 @@ -- cgit