<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.wiki.synfig.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Creek23</id>
		<title>Synfig Studio :: Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.wiki.synfig.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Creek23"/>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/Special:Contributions/Creek23"/>
		<updated>2026-04-28T01:03:56Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=User:Creek23&amp;diff=8745</id>
		<title>User:Creek23</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=User:Creek23&amp;diff=8745"/>
				<updated>2009-06-23T07:06:40Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* Creek23 */ fixed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Creek23 ==&lt;br /&gt;
Just another [http://www.youtube.com/watch?v=HPLPQN57hk0|random animator] trying to help Synfig community with development, documentation, and such.&lt;br /&gt;
&lt;br /&gt;
Developer of a [http://www.konsolscript.org | yet-to-become-useful  scripting language]. :D&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
==== Development ====&lt;br /&gt;
* Learn to compile Synfig on Windows&lt;br /&gt;
* Try hacking the source code&lt;br /&gt;
==== Documentation ====&lt;br /&gt;
* Update [[Mingw installation|MinGW Installation]]&lt;br /&gt;
* Make tutorial.&lt;br /&gt;
==== Misc ====&lt;br /&gt;
* Make animation demo (bubbles).&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=User:Creek23&amp;diff=8371</id>
		<title>User:Creek23</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=User:Creek23&amp;diff=8371"/>
				<updated>2009-01-11T22:54:58Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: initial writeup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Creek23 ==&lt;br /&gt;
Just another [http://www.youtube.com/watch?v=HPLPQN57hk0|random animator] trying to help Synfig community with development, documentation, and such.&lt;br /&gt;
&lt;br /&gt;
Developer of a [http://konsolscript.sourceforge.net| yet-to-become-useful  scripting language]. :D&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
==== Development ====&lt;br /&gt;
* Learn to compile Synfig on Windows&lt;br /&gt;
* Try hacking the source code&lt;br /&gt;
==== Documentation ====&lt;br /&gt;
* Update [[Mingw installation|MinGW Installation]]&lt;br /&gt;
* Make tutorial.&lt;br /&gt;
==== Misc ====&lt;br /&gt;
* Make animation demo (bubbles).&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Wish_list&amp;diff=8368</id>
		<title>Dev:Wish list</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Wish_list&amp;diff=8368"/>
				<updated>2009-01-09T19:42:47Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* Misc */ added splash screen; tagged done to two wishlist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''Warning''''': We need more people working on the code if we are going to be able to achieve all the feature requests.&lt;br /&gt;
&lt;br /&gt;
Got a great idea for a new feature? Just add it here, or on the [http://sourceforge.net/tracker/?group_id=144022&amp;amp;atid=757419 feature requests tracker]. Before you do, please check the [https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/TODO etl], [https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk/TODO synfig] and [https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk/TODO synfigstudio] TODO files for similar ideas. Please add a rating of how essential this feature is to your workflow according to the following scale:&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;Well, it might be nifty. To someone.&amp;quot;&lt;br /&gt;
#&amp;quot;I probably would make use this&amp;quot;&lt;br /&gt;
#&amp;quot;It's not essential, but I'd really like to have this at my disposal.&amp;quot;&lt;br /&gt;
#&amp;quot;Synfig would be soooo much better with this change&amp;quot;&lt;br /&gt;
#&amp;quot;I can't/won't use Synfig without it!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
Please clean this section up as desired.&lt;br /&gt;
&lt;br /&gt;
* A different color dialog for picking/changing colors easier.&lt;br /&gt;
** A color wheel like inkscape has (or the same) [done]&lt;br /&gt;
** Swatch menu from gimp with .gpl files.&lt;br /&gt;
* Workflow improvements, like content help and ui-refinement.&lt;br /&gt;
** set the fine line between design and animation work.&lt;br /&gt;
** Greet the user at startup, give hints and help in the ui to better the usability and user-experience.&lt;br /&gt;
* test synfig cross-platform (Linux, Windows, Mac)&lt;br /&gt;
* Installer for windows [done]&lt;br /&gt;
* Pluggable App (run from memory stick)&lt;br /&gt;
* make a short film about synfigs capabilitys in a starwars kind of spaceship setting as promo video about 3 minutes long.&lt;br /&gt;
* Sound layer&lt;br /&gt;
* full tablet support&lt;br /&gt;
* small set of vector contend for fast animation results&lt;br /&gt;
* Help is available as pdf-file and distributed with the program&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Input:'''&lt;br /&gt;
* Import rastergraphics png, jpg, tif [done]&lt;br /&gt;
* Import vectorgraphics (svg,fig)&lt;br /&gt;
&lt;br /&gt;
'''Output:'''&lt;br /&gt;
* Render output to animated gif [done]&lt;br /&gt;
* Render output to png, bmp, OpenEXR [done] &lt;br /&gt;
* Export vectorgraphics (svg,fig)&lt;br /&gt;
&lt;br /&gt;
== Interchangeable/customizing Splash screen ==&lt;br /&gt;
[3] GIMP has this feature of letting users [http://docs.gimp.org/2.2/en/using-customize-splashscreen.html|customize GIMP's splash screen]. GIMP looks for &amp;lt;code&amp;gt;'''samples'''&amp;lt;/code&amp;gt; directory under &amp;lt;code&amp;gt;'''.gimp-2.x'''&amp;lt;/code&amp;gt; then randomly picks a picture from it to become the spash image.&lt;br /&gt;
&lt;br /&gt;
This will also help GNU/Linux distro, like Ubuntu, to adopt Synfig and put their logo on the splash screen.&lt;br /&gt;
&lt;br /&gt;
Also, official Synfig distribution can pack sample arts created by other artists to be randomly displayed -- like the synfig.org's title's background image.&lt;br /&gt;
&lt;br /&gt;
== Verbosity levels for error output ==&lt;br /&gt;
&lt;br /&gt;
Synfigstudio needs verbosity levels for the error output. Levels are info, warning and error. Make sure, to spew out only errors when something nasty happens. If someone wants to know all what happens in synfigstudio, the user should activate a higher level of verbosity with the command line switch --verbose=all,info,warning&lt;br /&gt;
&lt;br /&gt;
== Usage screen for new users ==&lt;br /&gt;
&lt;br /&gt;
Synfig and Synfigstudio need a usage screen, which helps a new user to type in the right syntax on the command line. Any switch not known to the program should point to the usage screen. On the bottom of the usage screen could be a hint: &amp;quot; For more help use synfig --help&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts for panning ==&lt;br /&gt;
&lt;br /&gt;
The navigation and canvas windows need shortcut keys that pan the canvas view horizontally and vertically. Probably just the arrow keys would work for this, as well as the home/end/pageup/pagedown keys. Ctrl and shift variants could make the panning more or less.&lt;br /&gt;
: You can pan with a middle mouse button. --[[User:Zelgadis|Zelgadis]] 00:59, 24 October 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Linking Zoom layer to Paste Canvas ==&lt;br /&gt;
&lt;br /&gt;
[3] It is impossible to link Center of Zoom layer to Origin of Paste Canvas without exporting a value. It often needed for pans &amp;amp; zooms. Suggestion: rename &amp;quot;Center&amp;quot; parameter of Zoom Layer to the &amp;quot;Origin&amp;quot;. Will improve the workflow. --[[User:Zelgadis|Zelgadis]]&lt;br /&gt;
&lt;br /&gt;
== Convert Strings ==&lt;br /&gt;
[4] It could be very good to have feature to represent Convert sequences as strings and vice versa - make convert sequences from strings. Example: To produce this convert sequence: &lt;br /&gt;
&lt;br /&gt;
[[Image:WishList-ConvertStrings.png]]&lt;br /&gt;
&lt;br /&gt;
I just right-click on &amp;quot;Origin&amp;quot; parameter and choosing &amp;quot;String Convert&amp;quot; menu item. In the appeared dialog I just entering: &amp;quot;=Composite(Scale(x, Switch(scalar, 1.0, 0)), y)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Also if I clicking on the parameter already containing convert sequence and choosing &amp;quot;String Convert&amp;quot;, it shows string representation of current convert sequence with an ability to edit.&lt;br /&gt;
&lt;br /&gt;
This feature will make possible to easy copy convert sequences from one parameter to another.  --[[User:Zelgadis|Zelgadis]] 03:46, 2 November 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Non scalable timeline ==&lt;br /&gt;
[3] It should be useful for me to have non scalable timeline. It's hard to set timing when the distance between frames is always different in different documents and in different situations. Suggestion: make a non-scalable mode for timeline, where 1 second interval is always the same. Will improve the workflow. --[[User:Zelgadis|Zelgadis]]&lt;br /&gt;
&lt;br /&gt;
==Smart linking of tangents==&lt;br /&gt;
[4] As described in [[Sewing BLines]], when linking red tangent to yellow they are placed opposite against each other. This is normal from the program's point of view, but not normal for new users. Even more, to avoid this effect user needs to made some complex steps (see [[Sewing BLines#Solution]]). It takes a lot of time if we vahe lot of verticles to sew their tangents.&lt;br /&gt;
&lt;br /&gt;
Suggestion:&lt;br /&gt;
* When linking tangents with the same color, program should act as usual.&lt;br /&gt;
* When linking tangents with different color program should automaticaly add Convert-&amp;gt;Scale (-1) to avoid their opposite placement.&lt;br /&gt;
To allow linking two tangents in opposite position, I suggest to add a new menu option for tangents &amp;quot;Link Opposite&amp;quot;. When linking two tangents with this option:&lt;br /&gt;
* When linking tangents with the different color, program should act as it acts now - no additional converts added.&lt;br /&gt;
* When linking tangents with the same color program should automaticaly add Convert-&amp;gt;Scale (-1) to plcae them opposite against each other.&lt;br /&gt;
&lt;br /&gt;
--[[User:Zelgadis|Zelgadis]]&lt;br /&gt;
&lt;br /&gt;
==Movement blur effect==&lt;br /&gt;
To make the motion most realistic for movies, it should be possible to activate in the render dialog the option to smear the border of all objects, which move faster than a given value. For example, if a ball gets shot over the canvas/rendering-screen with speed over 50 px/frame it should have a blurry streak attached. This effect could be applied only at rendering time as an after-effect. --[[User:SvH|SvH]] 09:50, 28 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:There is a [[Motion Blur Layer]] that you can apply to the entire document or to the layers you want. It allows to turn the blur effect on and off during animation. I think it is more flexible that your proposal. [[User:Genete|Genete]] 10:13, 28 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Morph sets==&lt;br /&gt;
This feature is similar to some other suggestions below, just with another way to approach. In animations are many movements, which can be put in some kind of library, to make use of at a later time. For example, movements to animate the key moments of a mouth, sampling syllables. For vector graphics, it should be possible to define some key points, which move just a small amount of space, to form another syllable. These syllables in this example, should be stored in a drop down list, to be able to select them for the key time on the timeline.&lt;br /&gt;
A morph-set for walking-left-to-right is different from a morph-set for a mounth, which has as options a,e,i,o,u,bah-disgust,happy-smile. The morph-set has to be stored as vector coordinates in a relative way(offset), e.g. X1=+212,+34;X2=-56,-23;X3=+3,-88;&lt;br /&gt;
&lt;br /&gt;
To make use of the morph-set for the mouth, you have to define first, which vector points in your drawn mouth, correspond to the key-points of your morph-set. X1, X2, X3, Xn&lt;br /&gt;
&lt;br /&gt;
--[[User:SvH|SvH]] 06:53, 27 May 2008 (EDT)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Render time approximation==&lt;br /&gt;
Synfigstudio should get a button in the render dialog, which calculates the total render time for the actual settings (frames per second, length of the film, resolution, output format) It should testrender 1 picture, when the amount of total frames is below 1000. Over 1000 frames, it should testrender 10 pictures for more precise calculation.&lt;br /&gt;
&lt;br /&gt;
--[[User:SvH|SvH]] 12:49, 22 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Smartrendering==&lt;br /&gt;
I have made 25,000 small png-pictures with my 800Mhz computer in about 45 minutes. Synfigstudio did calculate each single frame of it. Nothing changed in this picture, so it does only need to get written to disk for the amount of pictures, until the next change (animation) has an effect on the output picture. This should save time for bigger projects with thousands of pictures. With smartrendering it is also possible to predict the total amound of space in Megabytes (Mibibytes) of the final render of the movie. It should calculate how much it needs and see, if enough space is free on the harddisk before the rendering get started.&lt;br /&gt;
&lt;br /&gt;
--[[User:SvH|SvH]] 12:49, 22 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== get_color method in text and radial blur ==&lt;br /&gt;
&lt;br /&gt;
[5] Without get_color method distorion produces artifacts &lt;br /&gt;
[http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1831355&amp;amp;group_id=144022&amp;amp;atid=757416 bug  1831355]. So I would like to get this problem fixed before doing something else. --[[User:AkhIL|AkhIL]] 22:41, 1 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Full functional of group dialog ==&lt;br /&gt;
&lt;br /&gt;
[5] Group dialog is broken now [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1796833&amp;amp;group_id=144022&amp;amp;atid=757416 bug 1796833]. So we should get old features work right before making new one. --[[User:AkhIL|AkhIL]] 22:41, 1 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== import/export .swf files ==&lt;br /&gt;
&lt;br /&gt;
very important productivity feature&lt;br /&gt;
&lt;br /&gt;
== import/export .svg frames sequence, and/or .svg animations ==&lt;br /&gt;
&lt;br /&gt;
very important productivity feature&lt;br /&gt;
&lt;br /&gt;
== a realtime .sif synchronized text window ==&lt;br /&gt;
&lt;br /&gt;
just like the xml editor of Inkscape, or the html editor in Dreamweaver (this is hugelly useful for productivity)&lt;br /&gt;
&lt;br /&gt;
I thinks scripting API can be implement in this way. For example you make XML DOM like implementation for python which alows to change DOM tree from python code and see chenges in canvas. By this way you can implement import/export scripts. Automation scripts. And a lot of different things. Even synchronization of animation between blender and synfig. --[[User:AkhIL|AkhIL]] 23:10, 26 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== choosing colour from gimp/inkscape palettes ==&lt;br /&gt;
&lt;br /&gt;
very useful when you need some colour comformity of what you're doing &lt;br /&gt;
&lt;br /&gt;
== Good high-level documentation of the source code ==&lt;br /&gt;
&lt;br /&gt;
(2) It'd be nice if a newbie could quickly navigate around the source code. The best thing to do would be to add top-level comments in each file, explaining what that file does, a README.TXT in each directory, explaining what's in that directory. This would be pretty fast and easy to do, and make it much easier for new programmers to join. &lt;br /&gt;
&lt;br /&gt;
Time permitting, it would also be good to document on a high level what the data structures are, but that's harder, since those tend to evolve, and it is often difficult to keep in sync. It would also be useful to document what individual functions do (just a one-liner high-level description), but that also takes more time.&lt;br /&gt;
: There is a page link in the wiki that connect to the [http://www.synfig.com/doc Synfig API Documentation]. I think this link should be highlighted to be more accessible for newbies contributors and mature developers (the link was found [[Releases/DeveloperPreview#Support | here]]). --[[User:Genete|Genete]] 10:02, 11 December 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== Mathematical functions to animate ==&lt;br /&gt;
(2/4) If you want to make a waving flag, it would be handful a sine function, tuned with random correctors, for example. &lt;br /&gt;
: -This should generate waypoints each 1, 2, 4 frames or any other step at artist's wish.&lt;br /&gt;
: -When applying a function you can add it to current values, add it to 1st frame values or simply override old values. Perhaps other options (such multiplication) would be fine, too. Something like texture editor in [http://www.artofillusion.org Art of Illusion], perhaps.&lt;br /&gt;
Perhaps it would be useful reusing the [http://www.gnu.org/software/octave/ Octave] source code to parse mathematical expressions.&lt;br /&gt;
I have rated this wish with a '2' because undoubtly many users will not be familiar to mathematical concepts, but for those who will be, I'd rate it with a 4. It would be possible to make a ball describing a parabolic moving in no time.&lt;br /&gt;
[[User:ajotatxe|ajotatxe]] 20 November 2007&lt;br /&gt;
: dooglus can probably chime in better than I here (see his example of balls on mathematical paths at http://uk.youtube.com/watch?v=YTpSfUthuVE ), but I believe that this is already possible.  Synfig does support a variety of mathematical transforms for parameters, although the way you do this is by no means intuitive.  (You might also want to check out the preambletaffy.sifz example for an easier approach to a waving flag. I know you were just using that as an example, but for the record...) [[User:Pxegeek|Pxegeek]] 00:58, 21 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: I'd also rate it with a (4) (and updated the rating accordingly), not for this special case, but to make many workarounds much easier.  Simulating [Parabolic Shot|free fall], for example, would be a lot easier with real formulas.  I don't know, though how easy it will be to implement, maybe waiting for a scripting interface to be implemented is better than hacking this feature in an ad-hoc manner.  --[[User:Rubikcube|Rubikcube]] 16:38, 29 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Warning about editing bizarre things in animate editing mode ==&lt;br /&gt;
(3.5) It seems to have little sense animate certain things like Blend Method or Type of Feather. It would be very nice that the program asked comfirmation if you change these attributes in animate editing mode. If you do want to, you would have three options: &amp;quot;Yes, never ask&amp;quot;, &amp;quot;Yes, never ask for this attribute&amp;quot;, &amp;quot;No&amp;quot;. I guess that internally, this attributes has integer type (or something like that) and the attributes that you normally want to animate, float type, so I think that this feature is relatively easy to implement. My English is not very good, so please feel free to fix this post.&lt;br /&gt;
[[User:ajotatxe|ajotatxe]] 20 November 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bones with FK &amp;amp; IK + grouping of objects into folders ==&lt;br /&gt;
&lt;br /&gt;
(5) Bones cane move specific vector assigned to them or the bones can have envelopes that move the vectors within their field of influence, much Like Anime Studio/Moho does. It's quite a time saving process of animating. Objects created can be saved into separate groups or folders using the same system as Anime Studio/Moho -Shadowphoenix 27/8/2007&lt;br /&gt;
&lt;br /&gt;
== Animated sketch ==&lt;br /&gt;
&lt;br /&gt;
(5) it would be great, if the tool Sketch was animatable (for example, in a form of a special sketch-layer). --Zelgadis 2007-06-14&lt;br /&gt;
&lt;br /&gt;
: For now as a workaround we could use animation program called Pencil. See [[Related Projects]] page. --[[User:Zelgadis|Zelgadis]]&lt;br /&gt;
&lt;br /&gt;
: So, currently it could be achieved by using other software, but integration with synfig is poor, cause it requires importing a movie through a sequence of images. This is not intuitive and not obvious for new users. It will be good if synfig will have it implemented like [url=http://www.blender.org/development/release-logs/blender-248/grease-pencil/]blender's Grease Pencil[/url]. This feature will improve workflow, make synfig usable for frame-by frame animation (it is intuitive way of learning animation and powerful tool for producing preproduction work like animatic). --[[User:Zelgadis|Zelgadis]]&lt;br /&gt;
&lt;br /&gt;
: It would be nice to also implement the onion peel feature, where you can see the frame before or after, and/or selectable keyframes if this is included. An example can be seen in the program Pencil--[[User:richardwad1|richardwad1]]&lt;br /&gt;
&lt;br /&gt;
== Duck for Amount value in Zoom layer ==&lt;br /&gt;
&lt;br /&gt;
(2) It would be nice if Amount value in Zoom layer was controlled by additional duck. --[[User:Zelgadis|Zelgadis]] 02:49, 29 December 2007 (EST)&lt;br /&gt;
: I found that I can better use Warp layer instead of Zoom to change size. But it'd be nice to have Amount duck for Zoom layer anyway...&lt;br /&gt;
:: The Amount parameter works exponentially; each time you add 1 to the Amount, the image is zoomed by a further factor of e (= 2.71828 or so).  Would a duck be any use if it just controlled the value of Amount in a linear way?&lt;br /&gt;
:: Workarounds include: export Amount, select it in the children dialog.  Whatever's selected in the children dialog shows a duck.  You can adjust it using that duck.&lt;br /&gt;
:: Also, if you use a Stretch layer, convert the Amount to Composite, export the X-Axis and connect it to the Y-Axis, then you have a duck-controllable fixed-aspect zoom. -- [[User:Dooglus|dooglus]] 15:32, 15 January 2008 (EST)&lt;br /&gt;
::: Yeah I found this workaround, but it's to much actions - i prefer better use Warp or Stretch layers. Why not the link Amount duck and Amount value with logarithmic function? ;) --[[User:Zelgadis|Zelgadis]] 10:33, 17 January 2008 (EST)&lt;br /&gt;
::::[[Convert#Logarithm|Logarithm]] convert type for real parameters exists since svn 2034. [[User:Genete|Genete]] 10:17, 30 August 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Automatic colour palette optimisation ==&lt;br /&gt;
&lt;br /&gt;
(0) it would be nice to use libcontrast [http://david.navi.cx/blog/?p=132] [http://david.navi.cx/blog/?p=94] [http://david.navi.cx/blog/?p=99] [http://svn.gnome.org/svn/xchat-gnome/trunk/src/libcontrast/] to automatically adjust selected or all the palette items for best visual contrast. It would also be interesting to have a layer that uses this code to filter the image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbitrary Color Channels ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;mdash; The ability for the user to create any number of custom channels for various purposes.&lt;br /&gt;
&lt;br /&gt;
== Autorecover History ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;mdash; It would be great if autorecover could also recover the associated history of a file in the event of a crash.&lt;br /&gt;
&lt;br /&gt;
== Layer Convert ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;(4)&amp;lt;/strike&amp;gt; (2) &amp;amp;mdash; The original intent of this feature request has been solved and documented - [[How_do_I#Fill_an_outline.3F|How do I....Fill an Outline?]] - but it would still be nice to have a way to convert one sort of path layer to another. ''(Downgraded to level 2) [[User:SnapSilverlight|Snap]] 12:32, 17 Jan 2006 (PST)''&lt;br /&gt;
&lt;br /&gt;
== Vector fill bucket ==&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; Like the traditional bitmap fill, but this fills the area clicked out to the nearest boundary paths with a region of that area, set to the foreground color (it actually would create a new [[Region Layer|region layer]]). &amp;lt;p&amp;gt;Alternatively, a single-duck layer object, that performs a simple bitmap fill from its (animatable) location, with its stored color value. (This second approach is similar to the behavior of one of Softimage's TOONZ[http://www.google.com/search?q=softimage+TOONZ]'s tools)&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;If this is implemented, it will probably be necessary to change the existing &amp;quot;fill&amp;quot; tool's name and icon to a &amp;quot;color injector&amp;quot; (hypodermic needle / turkey injector icon) tool, as that's closer to describing what it does.&lt;br /&gt;
&lt;br /&gt;
*Inkscape has a very innvative version of this tool. Maybe you can just grab the code from there and integrate it in synfig? --[[User:SvH|SvH]] 01:37, 14 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== [[redraw tool]] ==&lt;br /&gt;
&lt;br /&gt;
(4-5) &amp;amp;mdash; Intutive reshaping of path-based layers. See link.&lt;br /&gt;
&lt;br /&gt;
== [http://developer.gnome.org/projects/gup/hig/ Gnome HIG Compliance] ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;mdash; This should solve all complaints about the layout, without requiring Synfig to be &amp;quot;just like program (x)&amp;quot;. See [[UI Reloaded]] for progress on this.&lt;br /&gt;
&lt;br /&gt;
== Feedback for [[Smooth Move Tool]] ==&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; This tool does what a lot of folks are looking for, warping selected ducks in a &amp;quot;soft&amp;quot; fashion. But it's not very obvious what sort of effect it will have, from the tool's interface. It needs some sort of momentary center-of-action and radius indicator at the very least. Perhaps an &amp;quot;influence gradient&amp;quot; overlaid on the canvas once Synfig's core is sped up?&lt;br /&gt;
&lt;br /&gt;
== Networkability ==&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Like Inkscape's &amp;quot;inkboard&amp;quot; feature (using Jabber), or Blender's Verse server [http://www.blender.org/modules/verse/index.php], or OpenCanvas's Networking option. This should probably farm off all the networking stuff to the telepathy framework so that synfig doesn't have to deal with all the account/etc issues.&lt;br /&gt;
&lt;br /&gt;
== Intuitive tangent modification ==&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; (BBQ Pulled Duck) Inkscape has this for still handles - basically, grab a section of the spline between handles, and pull it around, the program automatically alters the tangent handles to match. What would be really neat is if you could do the same for temporal handles - be able to grab the spline between keyframes, and yank it around, and have Synfig automatically adjust the key interpolation to match. Not sure exactly what the workflow in the UI would be for this, however.&lt;br /&gt;
&lt;br /&gt;
-Agreed; blender does this with its IPO curves, and it's a really efficient way to work.&lt;br /&gt;
&lt;br /&gt;
== Plugin API ==&lt;br /&gt;
&lt;br /&gt;
(1) &amp;amp;mdash; Would be nice to enable additional functionality to be added to the program without it necessarily needing to be in the Synfig source tree. ''According to the Synfig 0.61.01 roadmap on [http://deepdarc.com/ deepdarc.com], there is a plugin API already implemented. So instead, this may be a [[Wiki Wish List|Wiki Wish]] for documentation, depending on how much has already been completed. [[User:SnapSilverlight|Snap]] 19:57, 13 Jan 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Python support ==&lt;br /&gt;
&lt;br /&gt;
(1) of some sort will no doubt be demanded by the userbase eventually, for studio-specific automation of tasks, noncompiled plugins, etc. I ([[User:Snap|SnapSilverlight]]) don't have any particular use for it at the moment, tho'.&lt;br /&gt;
&lt;br /&gt;
I suppose to join this request with [[Wish_list#a_realtime_.sif_synchronized_text_window]]. We can implement python access to XML DOM and write XML Editor in python. --[[User:AkhIL|AkhIL]] 06:54, 30 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== mod_synfig ==&lt;br /&gt;
&lt;br /&gt;
(1) &amp;amp;mdash; For Apache. Render .sif to some format like png/mng on access.&lt;br /&gt;
&lt;br /&gt;
== synfig nsplugin ==&lt;br /&gt;
&lt;br /&gt;
(1) &amp;amp;mdash; Let Mozilla and Mozilla-based view synfig files in-browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Align function ==&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; Align objects at a common border (as in Inkscape)&lt;br /&gt;
&lt;br /&gt;
== Improved SVG import ==&lt;br /&gt;
&lt;br /&gt;
(4) &amp;amp;mdash; Currently, all importing an SVG does is render it in ImageMagick. What I want is the ability to import the SVG document so that all the shapes, etc. of the SVG document show up as their equivilant synfig layers - i.e. if I had put them there myself. I'm trying to write a patch for this but the codebase is mostly undocumented. [[User:KMeist|KMeist]] 16:38, 25 Feb 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
[[svg2synfig]] could be incorporated using an open source XSLT processor. --[[User:Dmd|Dmd]] 13:34, 26 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Gradient Paint Tool ==&lt;br /&gt;
&lt;br /&gt;
How about a tool that can 'paint' a gradient object.  For example the options would be width and gradient type, one would make a stroke with the tool and the gradient would be automatically applied inside of the outline (set by width).  This would save the trouble of having to the all the encapsulation stuff. (Actually any tool that makes creating gradient one step would be good).--[[User:Triclops|Triclops]] 09:52, 9 Aug 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bone Animation Tools ==&lt;br /&gt;
&lt;br /&gt;
Bone system with inverse kinematics, very important for quick animation. You put bones on a drawed man and you can animate him like a puppet. I'm using that in Moho (lost marble product).--[[User:Ziolive|ziolive]] 23 Aug 2006&lt;br /&gt;
*I would find this very useful too. I think it is called '''rigging'''(4/5) --[[User:SvH|SvH]] 01:33, 14 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== AVI Backgrounds ==&lt;br /&gt;
Is there any way I can add an avi as a background so I could add facial expressions to a stop-motion animated figure. [zotz here, I was thinking DV background or extra timeline. I would like to mix animations with live footage. rating (3/4)]&lt;br /&gt;
: Already implemented for ffmpeg pipeline of ppm in svn r2161 [[User:Genete|Genete]] 05:36, 9 November 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Character tool on Tool Options Dialog ==&lt;br /&gt;
&lt;br /&gt;
I want to use the as a character generator for a TV show. By using chroma key hide the background.  Even better interface to a video overlay card with Alpha blending.&lt;br /&gt;
&lt;br /&gt;
== Collect for Publication ==&lt;br /&gt;
&lt;br /&gt;
(3/4) - (zotz) Menu item, functionality that would collect alll files referenced in a sif and place them all in a tgz for sending elsewhere or publishing animations in source form.&lt;br /&gt;
&lt;br /&gt;
== Object Library ==&lt;br /&gt;
&lt;br /&gt;
(3/4) - (zotz) Haven't thought this all through yet, but synfig could come with a library of categotrised &amp;quot;objects&amp;quot; with a copyleft license (GPL?  CC BY-SA?) An animation clip art type deal.&lt;br /&gt;
:I'd suggest this should be public domain and distributed by openclipart.org -- --[[User:PaulWise|pabs]]&lt;br /&gt;
&lt;br /&gt;
== Flash Export ==&lt;br /&gt;
&lt;br /&gt;
(3/4) Well, might just be me but if there was a posiblity to  export in .swf or .fla, I think the project might become a lot more popular.[[User:Conceit|Conceit]]&lt;br /&gt;
&lt;br /&gt;
(4/5) I wholeheartedly agree. I would definitely use synfig more if this feature were added and it would most definitely increase popularity. [[User:cdj05a|cdj05a]]&lt;br /&gt;
&lt;br /&gt;
(4[me]/5[others]) Definitely would love flash export. There is no well maintained Flash animation studio that is Open Source. To have Synfig become that along with all that it already is would be absolutely wonderful. You'd also possibly add to your user base all the flash animators out there that don't want to pay Adobe. Some people would only want it for the flash animation hence the 5 for others. [[User:jblandrum|jblandrum]]&lt;br /&gt;
&lt;br /&gt;
== Single window ==&lt;br /&gt;
&lt;br /&gt;
Depending on individual desktop setups, single window is sometimes preferable to many  windows. Can we have a single-window option?&lt;br /&gt;
&lt;br /&gt;
Also, even with many windows, Windows-users especially might find it better if all the windows only appeared as a single one on the taskbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export Wizard ==&lt;br /&gt;
&lt;br /&gt;
(2/4) Conversion and export to other file formats (mpg, avi, flash formats, others, and the synfig format) with a step by step wizard for choosing format and place of saving. Similar to Gimp's saving of .png files but for movie/video type files. --&lt;br /&gt;
[[User:Hiddenghost|hiddenghost]]&lt;br /&gt;
&lt;br /&gt;
== Using Synfig as a portable app ==&lt;br /&gt;
&lt;br /&gt;
(3) This isn't really a feature request (though it could be) but I was wondering if synfig could be used as a portable application (as in www.portableapps.com). Does the windows install require registry access? i really want to use Synfig at work, but I'm reluctant to install it just in case it leave footprints in the regisitry or something, and it would be sweet to use it on my travels as well. Only thing is, I can't test it out at home because I am using Linux.&lt;br /&gt;
See also: http://portableapps.com/node/5761&lt;br /&gt;
[[User:Zenoscope|zenoscope]]&lt;br /&gt;
&lt;br /&gt;
This isn't currently possible without modifying the source code. That has been on my TODO list for ages [[User:PaulWise|pabs]] 01:17, 26 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Allow organize child valuenodes in an hierarchy ==&lt;br /&gt;
(3-2) And allow maintain the organization once the file is saved. At the moment they are reordered in alphabetical order which is useless and annoying.&lt;br /&gt;
&lt;br /&gt;
== Triangle sliders to be always visible ==&lt;br /&gt;
(3) I would like that the triangle sliders from [[Colors Dialog]] and [[Gradient Editor Dialog]] were visible whatever color or channel you're editing. Some times when the color or channel is to bright or light the slider is difficult to distinguish. --[[User:Genete|Genete]] 14:30, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== XICC support ==&lt;br /&gt;
&lt;br /&gt;
It would be cool if synfigstudio had support for [http://burtonini.com/blog/computers/xicc XICC].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Area to Edit ==&lt;br /&gt;
&lt;br /&gt;
An option like blender - select area to update would be nice, so the only part of the image that updates when you add or change something is in the selected area&lt;br /&gt;
&lt;br /&gt;
ie. when working on a complex composition, studio doesn't know, when I tweak a tiny part of the composition, that only that part needs redrawing, so it redraws the whole thing.  It would be good if there was some way of telling it which part to focus on. -- [[User:Dooglus|dooglus]] 04:02, 3 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Histograms ==&lt;br /&gt;
&lt;br /&gt;
 01:23  * AkhIL wish to have histograms and luma/color scope like [http://mac.softpedia.com/progScreenshots/Avid-Xpress-DV-Screenshot-14207.html] in synfig&lt;br /&gt;
&lt;br /&gt;
I've looked at those pictures but don't know what they're showing.  Can you describe what those scopes are doing, and what the histograms display?  ie. what are the X and Y axes of the histograms? -- [[User:Dooglus|dooglus]] 04:07, 3 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
First look this description in blender wiki [http://wiki.blender.org/index.php/Manual/VSE_Modes]&lt;br /&gt;
&lt;br /&gt;
Ok There is four things.&lt;br /&gt;
* Upper left is Lumascope (Luma Waveform in blender). X-Axis represents image's X-Axys. Y-Axis  is average luminescence of column of pixels.&lt;br /&gt;
* Upper right is Chromascope (Chroma Vectorscope in blender). Just look description on blender wiki.&lt;br /&gt;
* Lower left is like Lumascope but for each channel &lt;br /&gt;
* Lower right is histograms. X is luminescence and Y is count of pixels with such luminiscence.&lt;br /&gt;
&lt;br /&gt;
== Sound Layer ==&lt;br /&gt;
&lt;br /&gt;
(4) It would be a very good improvement if the sound system were implemented into synfig in [[Sound Layer | this]] way. --[[User:Genete|Genete]] 07:46, 8 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Rearrange the view of waypoints for Canvas param ==&lt;br /&gt;
As reported in [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1888858&amp;amp;group_id=144022&amp;amp;atid=757416 Bug #1888858] waypoints are not displayed for canvas switch events.&lt;br /&gt;
I suggest to rearrange waypoints display according to [[Media:Canvas_prop.png|this scheme]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Width weigths ==&lt;br /&gt;
Is it possible to add &amp;quot;weigths&amp;quot; for widths? ^_^ I.e. width changes not all the way along the segment. Maybe something like a duck on bline which indicates the region where the width of current vertex isn't changed.&lt;br /&gt;
[[Media:width-proposal.png|Illustration here.]]&lt;br /&gt;
&lt;br /&gt;
More ideas around this concept in [http://dooglus.rincevent.net/synfig/logs/2008/%23synfig-2008-04-16.log this conversation]. Although the log of that day is very interesting the lines related to this idea are from 22:38 to 23:43. [[User:Genete|Genete]] 17:51, 16 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Improved Colour Dialog ==&lt;br /&gt;
How easy is it to stick in a colour square/wheel? Messing with sliders is somewhat obstructive.&lt;br /&gt;
&lt;br /&gt;
== Insert Waypoints ==&lt;br /&gt;
A button to create a waypoint for every selected duck, in its current position. Moving each duck up a bit and down again quickly gets tedious.&lt;br /&gt;
:If the duck in question has already a waypoint then you don't need to move it to create a new waypoint. Just select the corresponding parameter in your child list panel and select 'Add Waypoint' from the right click context menu over the parameter. No need to have the duck selected. If you want to freeze the entire bline just do that over the Bline Point List. [[User:Genete|Genete]] 07:48, 29 April 2008 (EDT)&lt;br /&gt;
::Yes, but it would be nice to have opportunity to add waypoint to parameer which not have any ducks yet (i.e. non-animated parameter). --[[User:Zelgadis|Zelgadis]] 08:33, 29 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatically split tangeants ==&lt;br /&gt;
&lt;br /&gt;
Holding shift while moving tangeant ducks should automatically split them. They can be rejoined if necessary through the context menu as they are now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A way to link params without exporting ==&lt;br /&gt;
I need a way to link params with different names without exporting. It is possible to achive by manualy editing of sif file. But inposible by gui. I will be nice to have linking by drag-n-drop. Or just by selecting reference param, pushing copy button, selecting another param and bushing link button. ---[[User:AkhIL|AkhIL]] 21:47, 30 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Allow select the origin of rotation when using the Rotate Tool ==&lt;br /&gt;
&lt;br /&gt;
It can be initially set to the geometrical center of the selected ducks or the gravity center depending of the selected checkboxes in the tool options panel. Later the user could move it before perform the rotation operation. It is a waste of time to rotate and translate the ducks every time a rotation manipulation is done. ---[[User:Genete|Genete]] 12:16, 4 June 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:I was adding this request at the same time than you Genete :-). Here is an example of how this issue is solved in Inkscape:&lt;br /&gt;
&lt;br /&gt;
:[[Image:rotate-tool-inkscape.png|center]]&lt;br /&gt;
&lt;br /&gt;
:---[[User:Yaco|Yaco]]&lt;br /&gt;
&lt;br /&gt;
== Labels for rows in the Timetrack window [1]==&lt;br /&gt;
The rows in the timetrack palette and the parameters palette are obviously related, doing a scroll in the Timetrack window with the mouse makes the parameters window scroll. &lt;br /&gt;
&lt;br /&gt;
It's be nice to have the rows labeled with the corresponding label from the parameters palette, and to have the &amp;quot;list&amp;quot; parameter at the top of the time track window, with the possibility of dragging them around to move them up or down, personally I would prefer the &amp;quot;list&amp;quot; to be up the top so I can see the keyframes I'm making. &lt;br /&gt;
&lt;br /&gt;
[[Image:Stencil 3.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
:Is this what you want? Just arrange the dock able dialogs as you need. [[User:Genete|Genete]] 10:03, 30 July 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:[[Image:Params-TimeTrack.png]]&lt;br /&gt;
&lt;br /&gt;
:---[[User:zenoscope|zenoscope]]&lt;br /&gt;
&lt;br /&gt;
== Non-symetrical but &amp;quot;smooth&amp;quot; tangents on ducks ==&lt;br /&gt;
Add another mode for duck tangent, where the tangent can have different radius, but keep the same angle. (a &amp;quot;split tangents (radius only)&amp;quot; mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dockable windows ==&lt;br /&gt;
seriously the current GUI is wasting space by showing the background desktop and it's showing 5 tabs instead of one tab (windows version)&lt;br /&gt;
&lt;br /&gt;
:--[[User:super animator|super animator]]&lt;br /&gt;
&lt;br /&gt;
== Combining the installations files ==&lt;br /&gt;
Seriously, there should be one installation file not four. This is probably one of the reasons why not very much people use this program, because they only get one installation file from other websites and they probably are having a hard time running the program and getting frustrated.&lt;br /&gt;
&lt;br /&gt;
:--[[User:super animator|super animator]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Particle Tool/Particle Object Editor ==&lt;br /&gt;
I  thought it might be interesting to add a Particle tool that is intuitive. Genete's script is amazing and I am sure I will do a lot of things with it once I have a chance to sit down and figure it out, but if there were a way to make it into tool with all the settings on sliders, it would be much easier. His script adds endless possibilities of nice effects to make animations look better. I personally rate this rather high. 3.5/5&lt;br /&gt;
&lt;br /&gt;
:--[[User:richardwad1|richardwad1]]&lt;br /&gt;
&lt;br /&gt;
== A programation language as code behind like python, ruby or any ==&lt;br /&gt;
Code behind should be important to program the animation or events associated, programers and designers could work in a colaborative workspace and make applications with richfull content on desktop applicactions or web applications like expression blend or macromedia flash CS.&lt;br /&gt;
&lt;br /&gt;
:--[[User:nickholai|nickholai]]&lt;br /&gt;
&lt;br /&gt;
== Embedding animation on web applications ==&lt;br /&gt;
Like Macromedia Flash, it seems to require a plug in for internet explorer or firefox diferent as silverlight or flash, open source and &amp;quot;software libre&amp;quot; projects are working on animation but using the flash plug in, this wish needs a free plug in.&lt;br /&gt;
&lt;br /&gt;
:--[[User:nickholai|nickholai]]&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8367</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8367"/>
				<updated>2009-01-09T16:53:26Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/gettext Gettext] */ re-worded&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you insist a MSYS-compatible gettext-devel, try: http://downloads.sourceforge.net/mingw/gettext-devel-0.16.1-MSYS-1.0.11-1.tar.bz2&lt;br /&gt;
* As of this post, &amp;lt;code&amp;gt;'''gettext-devel-0.16.1-MSYS'''&amp;lt;/code&amp;gt; is being tested for problem-free Synfig compile.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 MB)&lt;br /&gt;
&lt;br /&gt;
If you opted for '''gtk-dev-2.12.9-win32-2.exe''' or '''gtk-dev-2.12.9-win32-1.exe''' pick this instead.&lt;br /&gt;
* ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.11-1.exe (16.3 MB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;'''C:\GTK'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8366</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8366"/>
				<updated>2009-01-09T16:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/gettext Gettext] */ update/note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you insist a MSYS-compatible gettext-devel, try: http://downloads.sourceforge.net/mingw/gettext-devel-0.16.1-MSYS-1.0.11-1.tar.bz2&lt;br /&gt;
* As of this post, &amp;lt;code&amp;gt;'''gettext-devel-0.16.1-MSYS'''&amp;lt;/code&amp;gt; is being tested for compile-free problem.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 MB)&lt;br /&gt;
&lt;br /&gt;
If you opted for '''gtk-dev-2.12.9-win32-2.exe''' or '''gtk-dev-2.12.9-win32-1.exe''' pick this instead.&lt;br /&gt;
* ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.11-1.exe (16.3 MB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;'''C:\GTK'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8365</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8365"/>
				<updated>2009-01-09T16:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/gettext Gettext] */ added GetText-Devel for MSYS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:'''&lt;br /&gt;
# If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
# If you insist a MSYS-compatible gettext-devel, try: http://downloads.sourceforge.net/mingw/gettext-devel-0.16.1-MSYS-1.0.11-1.tar.bz2&lt;br /&gt;
* As of this post, &amp;lt;code&amp;gt;'''gettext-devel-0.16.1-MSYS'''&amp;lt;/code&amp;gt; is being tested for compile-free problem.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 MB)&lt;br /&gt;
&lt;br /&gt;
If you opted for '''gtk-dev-2.12.9-win32-2.exe''' or '''gtk-dev-2.12.9-win32-1.exe''' pick this instead.&lt;br /&gt;
* ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.11-1.exe (16.3 MB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;'''C:\GTK'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8364</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8364"/>
				<updated>2009-01-09T15:38:26Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/libtool/ libtool] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 MB)&lt;br /&gt;
&lt;br /&gt;
If you opted for '''gtk-dev-2.12.9-win32-2.exe''' or '''gtk-dev-2.12.9-win32-1.exe''' pick this instead.&lt;br /&gt;
* ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.11-1.exe (16.3 MB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;'''C:\GTK'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8363</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8363"/>
				<updated>2009-01-09T15:38:03Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/automake/ automake] */ hilighted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 MB)&lt;br /&gt;
&lt;br /&gt;
If you opted for '''gtk-dev-2.12.9-win32-2.exe''' or '''gtk-dev-2.12.9-win32-1.exe''' pick this instead.&lt;br /&gt;
* ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.11-1.exe (16.3 MB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;'''C:\GTK'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8362</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8362"/>
				<updated>2009-01-09T15:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/autoconf/ autoconf] */ hilighted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 MB)&lt;br /&gt;
&lt;br /&gt;
If you opted for '''gtk-dev-2.12.9-win32-2.exe''' or '''gtk-dev-2.12.9-win32-1.exe''' pick this instead.&lt;br /&gt;
* ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.11-1.exe (16.3 MB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;'''C:\GTK'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8361</id>
		<title>Dev:Building on Windows</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8361"/>
				<updated>2009-01-08T22:35:21Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* _filez directory */ mark of deletion for patching&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
&lt;br /&gt;
==Directories==&lt;br /&gt;
If you didn't already install Mingw, [[Mingw installation|this page]] will guide you through the process.&lt;br /&gt;
&lt;br /&gt;
If you didn't already start an msys session, do so now. Just double click the MSYS shortcut or run &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt;. An msys session will be opened, creating your profile directory at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. As you can see, MinGW uses your windows login as the user name in its fake UNIX environment. Be careful, I've not checked whether it works with non latin-character account names.&lt;br /&gt;
&lt;br /&gt;
Now, use explorer or your favorite file manager and go to &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. Create a directory there for all Synfig operations. For example, let it be &amp;lt;code&amp;gt;'''synfig'''&amp;lt;/code&amp;gt;. Go into this directory.&lt;br /&gt;
&lt;br /&gt;
Ok, now you are at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig'''&amp;lt;/code&amp;gt;. Create four directories here:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_filez'''&amp;lt;/code&amp;gt;, for patches (and maybe later, additional files).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_src'''&amp;lt;/code&amp;gt;, for program sources.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''build'''&amp;lt;/code&amp;gt;, for building programs.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''temp'''&amp;lt;/code&amp;gt;, for local installation programs and libraries, which are required for building synfig. (For example: ETL, synfig (core for studio), OpenEXR, etc...)&lt;br /&gt;
&lt;br /&gt;
Of course, you can choose your own name for all the directories and choose their locations. All you need then is to set a new path in the configuration file. But for now we choose the easy way.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
Save this configuration file as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\synbuild.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Synfig for Win32 build configuration script.&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 1. Files and Directories&lt;br /&gt;
&lt;br /&gt;
# Uncompressed Synfig svn snapshots and another package sources&lt;br /&gt;
SYN_SOURCE_DIR=`dirname ~/.`&amp;quot;/synfig/_src&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Directory additional files (patches f.e.)&lt;br /&gt;
SYN_FILEZ_DIR=`dirname ~/.`&amp;quot;/synfig/_filez&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Temporary installations (ETL headers, synfig binaries for icon and image making)&lt;br /&gt;
SYN_TEMP_INSTALL=`dirname ~/.`&amp;quot;/synfig/temp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Build directory&lt;br /&gt;
SYN_BUILD_DIR=`dirname ~/.`&amp;quot;/synfig/build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# OpenEXR source package&lt;br /&gt;
SYN_ILMBASE_VERSION=&amp;quot;1.0.1&amp;quot;&lt;br /&gt;
SYN_ILMBASE_SRC=&amp;quot;${SYN_SOURCE_DIR}/ilmbase-${SYN_ILMBASE_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
SYN_OPENEXR_VERSION=&amp;quot;1.6.1&amp;quot;&lt;br /&gt;
SYN_OPENEXR_SRC=&amp;quot;${SYN_SOURCE_DIR}/openexr-${SYN_OPENEXR_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 2. External tools&lt;br /&gt;
&lt;br /&gt;
# Path to ImageMagick directory.&lt;br /&gt;
SYN_IMAGEMAGICK_PATH=&amp;quot;/C/Program Files/ImageMagick&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to Subversion bin directory.&lt;br /&gt;
SYN_SUBVERSION_PATH=&amp;quot;/C/Program Files/Subversion/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to NSIS directory with makensis.exe file.&lt;br /&gt;
SYN_NSIS_PATH=&amp;quot;/C/Program Files/NSIS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 3. Build setup&lt;br /&gt;
&lt;br /&gt;
# Build host&lt;br /&gt;
MINGW_HOST=&amp;quot;mingw32&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Core&lt;br /&gt;
SYN_CORE_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Studio&lt;br /&gt;
SYN_STUDIO_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
#WITH_FMOD=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 4. Patches (you can place here any additional patches)&lt;br /&gt;
&lt;br /&gt;
# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&lt;br /&gt;
&lt;br /&gt;
# Synfig Core patches&lt;br /&gt;
SYNCORE_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNCORE:&lt;br /&gt;
:END_SYNCORE:)&lt;br /&gt;
&lt;br /&gt;
# Sunfig Studio patches&lt;br /&gt;
SYNSTUDIO_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNSTUDIO:&lt;br /&gt;
:END_SYNSTUDIO:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR ILMBase patches&lt;br /&gt;
&lt;br /&gt;
ILMBASE_PATCHES=$(cat &amp;lt;&amp;lt;:END_ILMBASE:&lt;br /&gt;
ilmbase-1.0.1-makefile.patch&lt;br /&gt;
ilmbase-1.0.1-pkgconfig.patch&lt;br /&gt;
:END_ILMBASE:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR patches&lt;br /&gt;
#openexr-1.4.0-pkgconfig.patch&lt;br /&gt;
#openexr-1.4.0-mingw32.patch&lt;br /&gt;
OPENEXR_PATCHES=$(cat &amp;lt;&amp;lt;:END_OPENEXR:&lt;br /&gt;
:END_OPENEXR:)&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 5. Autoconfiguration&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$GTK_BASEPATH&amp;quot; ]; then&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${GTK_BASEPATH}/include $CPPFLAGS&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_IMAGEMAGICK_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_IMAGEMAGICK_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_SUBVERSION_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_SUBVERSION_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_NSIS_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_NSIS_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/ETL&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/synfig-devel&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
export CPPFLAGS&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save OpenEXR build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_openexr.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making OpenEXR...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ilmbase&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/openexr&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
echo PATH is $PATH&lt;br /&gt;
echo tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for ILMBase... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ILMBASE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring ILMbase&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo &amp;quot;ILMBase Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for OpenEXR... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${OPENEXR_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Now the temp/openexr dir exists, we can add it to paths&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring OpenEXR&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem  --disable-ilmbasetest&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;separately build b44ExpLogTable as the openexr script doesn't work under msys&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}/IlmImf&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mingw32-g++ --verbose -g -O2 -I${SYN_TEMP_INSTALL}/openexr/include/OpenEXR -L${SYN_TEMP_INSTALL}/openexr/lib b44ExpLogTable.cpp  -lHalf -o b44ExpLogTable&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ..&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
# [ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: OpenEXR&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save ETL build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_etl.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making ETL...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/*  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/.svn  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ETL_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: ETL&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Core build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_core.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Core...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/* ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/.svn ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNCORE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
libtoolize --ltdl --copy -f&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_CORE_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
# libtool hack patch [begin]&lt;br /&gt;
patch -p2 &amp;lt;${SYN_FILEZ_DIR}/synfig-core-hack-libtool.patch&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# libtool hack patch [end]&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ./synfig-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
make clean&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [begin]&lt;br /&gt;
make install prefix=${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [end]&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
&lt;br /&gt;
# auto build hack patch [begin]&lt;br /&gt;
echo &amp;quot;Postprocessing&amp;quot;&lt;br /&gt;
SYN_SED_PATH=`echo ${SYN_TEMP_INSTALL}/synfig-devel | sed -e 's/\//\\\\\//g'`&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack patch [end]&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-core&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Studio build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_studio.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Studio...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/* ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/.svn ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNSTUDIO_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_STUDIO_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
mv ./synfigstudio-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-studio&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_src directory===&lt;br /&gt;
Go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_src&amp;lt;/code&amp;gt; directory. Get the latest sources of Synfig from its repository.&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; ETL'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; synfig-core'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; synfig-studio'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The commands have a space between the URL address and the third paramater, it's easy to miss it. There should be three, space separated, paramaters in total after the &amp;quot;'''svn'''&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
Download the current stable [http://www.openexr.com/ OpenEXR] version from:&lt;br /&gt;
&lt;br /&gt;
* http://download.savannah.gnu.org/releases-noredirect/openexr/ilmbase-1.0.1.tar.gz (452 KB)&lt;br /&gt;
* http://download.savannah.gnu.org/releases-noredirect/openexr/openexr-1.6.1.tar.gz (13 MB)&lt;br /&gt;
&lt;br /&gt;
Finally, you must have three directories (ETL, synfig-core and synfig-studio) and the ilmbase-1.0.1.tar.gz &amp;amp; openexr-1.6.1.tar.gz files in your &amp;lt;code&amp;gt;'''_src'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===_filez directory===&lt;br /&gt;
Save the following text as &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\synfig-core-hack-libtool.patch'''&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar synfig-core.orig/win32build/libtool synfig-core/win32build/libtool&lt;br /&gt;
--- synfig-core.orig/win32build/libtool	Wed Feb  7 21:52:34 2007&lt;br /&gt;
+++ synfig-core/win32build/libtool	Wed Feb  7 21:57:12 2007&lt;br /&gt;
@@ -2805,7 +2805,7 @@&lt;br /&gt;
 	  fi&lt;br /&gt;
 	elif test &amp;quot;$build_libtool_libs&amp;quot; = yes; then&lt;br /&gt;
 	  # Not a shared library&lt;br /&gt;
-	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all; then&lt;br /&gt;
+	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all &amp;amp;&amp;amp; test &amp;quot;$old_library&amp;quot; != &amp;quot;libltdl.a&amp;quot;; then&lt;br /&gt;
 	    # We're trying link a shared library against a static one&lt;br /&gt;
 	    # but the system doesn't support it.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save the following as &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-makefile.patch'''&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmThread/Makefile.in ilmbase-1.0.1/IlmThread/Makefile.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmThread/Makefile.in	Tue Oct  9 14:28:29 2007&lt;br /&gt;
+++ ilmbase-1.0.1/IlmThread/Makefile.in	Sat Aug 16 18:35:08 2008&lt;br /&gt;
@@ -64,7 +64,8 @@&lt;br /&gt;
 am_libIlmThread_la_OBJECTS = IlmThreadPool.lo IlmThread.lo \&lt;br /&gt;
 	IlmThreadSemaphore.lo IlmThreadMutex.lo IlmThreadPosix.lo \&lt;br /&gt;
 	IlmThreadSemaphorePosix.lo IlmThreadSemaphorePosixCompat.lo \&lt;br /&gt;
-	IlmThreadMutexPosix.lo&lt;br /&gt;
+	IlmThreadMutexPosix.lo IlmThreadWin32.lo IlmThreadSemaphoreWin32.lo \&lt;br /&gt;
+	IlmThreadMutexWin32.lo&lt;br /&gt;
 libIlmThread_la_OBJECTS = $(am_libIlmThread_la_OBJECTS)&lt;br /&gt;
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/config&lt;br /&gt;
 depcomp = $(SHELL) $(top_srcdir)/depcomp&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally save the following as &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-pkgconfig.patch'''&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmBase.pc.in ilmbase-1.0.1/IlmBase.pc.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmBase.pc.in	Wed Dec 13 14:55:53 2006&lt;br /&gt;
+++ ilmbase-1.0.1/IlmBase.pc.in	Sat Aug 16 21:06:27 2008&lt;br /&gt;
@@ -7,5 +7,5 @@&lt;br /&gt;
 Name: IlmBase&lt;br /&gt;
 Description: Base math and exception libraries&lt;br /&gt;
 Version: @ILMBASE_VERSION@&lt;br /&gt;
-Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread @PTHREAD_LIBS@&lt;br /&gt;
-Cflags: @PTHREAD_CFLAGS@ -I${OpenEXR_includedir}&lt;br /&gt;
+Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread&lt;br /&gt;
+Cflags: -I@includedir@ -I${OpenEXR_includedir}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Last but not least, prior to SVN 2055, the Windows installer files need patching - http://patches.synfig.org/r/3/&amp;lt;/s&amp;gt; -- ''(it's been done)''.&lt;br /&gt;
&lt;br /&gt;
(Acknowledgment to the writer of http://qtpfsgui.wiki.sourceforge.net/Compiling+on+Windows for the tip on the b44ExpLogTable file in OpenEXR)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
This section describes the parameters of &amp;lt;code&amp;gt;synbuild.conf&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
===Files and Directories===&lt;br /&gt;
As you can see in this section you can define the path and name of the special directories (with sources, patches and temporary directories). If you install the build scripts as written above, there is nothing to change.&lt;br /&gt;
&lt;br /&gt;
Also this section contains the path and version of the OpenEXR source files.&lt;br /&gt;
&lt;br /&gt;
===External tools===&lt;br /&gt;
In this section you need to define the path to the executable files of the three auxiliary packages: ImageMagick, Subversion and NSIS. ImageMagick and Subversion binaries are located using the PATH environment variable, but their paths are added to the end of the path list and so we can get name collisions. For example, the ImageMagick &amp;quot;convert&amp;quot; tool has the same name as the &amp;quot;convert&amp;quot; tool from Borland Delphi Explorer, which may have been installed before ImageMagick.&lt;br /&gt;
&lt;br /&gt;
===Build setup===&lt;br /&gt;
'''MINGW_HOST''' - host parameter of &amp;quot;configure&amp;quot; script. Do not change it.&lt;br /&gt;
&lt;br /&gt;
'''SYN_CORE_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Core will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
'''SYN_STUDIO_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Studio will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
===Patches===&lt;br /&gt;
In this section you can find a number of patch definition blocks, looking like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;padding: 1em; border: 1px dashed #2f6fab; color: Black; background-color: #f9f9f9; line-height: 1.1em;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if you place any filenames of patches between '':END_ETL:'' blocks, it will be applied before the configuration of ETL. Patch files need to be stored in the &amp;lt;code&amp;gt;_filez&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
This section is useful if you want to test your own patches before sending them to the Synfig developers.&lt;br /&gt;
&lt;br /&gt;
===Autoconfiguration===&lt;br /&gt;
This section contatins code which sets up the required environment variables and (by default) there is no need to change anything.&lt;br /&gt;
&lt;br /&gt;
==Build Order==&lt;br /&gt;
Note: If you want build synfig without slowing down other tasks running on the same machine while the build takes place, open a single msys session, then open &amp;quot;Task Manager&amp;quot;, search for the ''sh.exe'' process and set its priority to &amp;quot;Below normal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: Running an on-access antivirus scanner can dramatically decrease compilation speed.&lt;br /&gt;
&lt;br /&gt;
===OpenEXR===&lt;br /&gt;
This package needs to be built only once. A rebuild is only required if you get a new version or want to apply a new patch to it or you update the compiler and it is incompatible with the previous binaries.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_openexr.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: OpenEXR&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===ETL===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_etl.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: ETL&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===Synfig Core===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_core.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-core&amp;quot; message. It can take a long time. The Synfig Core installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
===Synfig Studio===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_studio.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-studio&amp;quot; message. It can take a long time. The Synfig Studio installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
==Additional tools==&lt;br /&gt;
These tools are not required to build Synfig, but they can help in the debugging process.&lt;br /&gt;
&lt;br /&gt;
P.S. Post this later. ;-)&lt;br /&gt;
&lt;br /&gt;
(Atrus - keen to hear what you recommend for debug.  Also any debug processes you go through to fix the bugs.  There's several bugs (mainly preview rendering) that I see under the current builds of Windows that are not under Linux or the old 0.61.05 for Windows - Pxegeek 2/7/07)&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8360</id>
		<title>Dev:Building on Windows</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8360"/>
				<updated>2009-01-08T22:25:57Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* _src directory */ changed OpenEXR and ILMBase link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
&lt;br /&gt;
==Directories==&lt;br /&gt;
If you didn't already install Mingw, [[Mingw installation|this page]] will guide you through the process.&lt;br /&gt;
&lt;br /&gt;
If you didn't already start an msys session, do so now. Just double click the MSYS shortcut or run &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt;. An msys session will be opened, creating your profile directory at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. As you can see, MinGW uses your windows login as the user name in its fake UNIX environment. Be careful, I've not checked whether it works with non latin-character account names.&lt;br /&gt;
&lt;br /&gt;
Now, use explorer or your favorite file manager and go to &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. Create a directory there for all Synfig operations. For example, let it be &amp;lt;code&amp;gt;'''synfig'''&amp;lt;/code&amp;gt;. Go into this directory.&lt;br /&gt;
&lt;br /&gt;
Ok, now you are at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig'''&amp;lt;/code&amp;gt;. Create four directories here:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_filez'''&amp;lt;/code&amp;gt;, for patches (and maybe later, additional files).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_src'''&amp;lt;/code&amp;gt;, for program sources.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''build'''&amp;lt;/code&amp;gt;, for building programs.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''temp'''&amp;lt;/code&amp;gt;, for local installation programs and libraries, which are required for building synfig. (For example: ETL, synfig (core for studio), OpenEXR, etc...)&lt;br /&gt;
&lt;br /&gt;
Of course, you can choose your own name for all the directories and choose their locations. All you need then is to set a new path in the configuration file. But for now we choose the easy way.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
Save this configuration file as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\synbuild.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Synfig for Win32 build configuration script.&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 1. Files and Directories&lt;br /&gt;
&lt;br /&gt;
# Uncompressed Synfig svn snapshots and another package sources&lt;br /&gt;
SYN_SOURCE_DIR=`dirname ~/.`&amp;quot;/synfig/_src&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Directory additional files (patches f.e.)&lt;br /&gt;
SYN_FILEZ_DIR=`dirname ~/.`&amp;quot;/synfig/_filez&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Temporary installations (ETL headers, synfig binaries for icon and image making)&lt;br /&gt;
SYN_TEMP_INSTALL=`dirname ~/.`&amp;quot;/synfig/temp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Build directory&lt;br /&gt;
SYN_BUILD_DIR=`dirname ~/.`&amp;quot;/synfig/build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# OpenEXR source package&lt;br /&gt;
SYN_ILMBASE_VERSION=&amp;quot;1.0.1&amp;quot;&lt;br /&gt;
SYN_ILMBASE_SRC=&amp;quot;${SYN_SOURCE_DIR}/ilmbase-${SYN_ILMBASE_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
SYN_OPENEXR_VERSION=&amp;quot;1.6.1&amp;quot;&lt;br /&gt;
SYN_OPENEXR_SRC=&amp;quot;${SYN_SOURCE_DIR}/openexr-${SYN_OPENEXR_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 2. External tools&lt;br /&gt;
&lt;br /&gt;
# Path to ImageMagick directory.&lt;br /&gt;
SYN_IMAGEMAGICK_PATH=&amp;quot;/C/Program Files/ImageMagick&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to Subversion bin directory.&lt;br /&gt;
SYN_SUBVERSION_PATH=&amp;quot;/C/Program Files/Subversion/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to NSIS directory with makensis.exe file.&lt;br /&gt;
SYN_NSIS_PATH=&amp;quot;/C/Program Files/NSIS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 3. Build setup&lt;br /&gt;
&lt;br /&gt;
# Build host&lt;br /&gt;
MINGW_HOST=&amp;quot;mingw32&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Core&lt;br /&gt;
SYN_CORE_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Studio&lt;br /&gt;
SYN_STUDIO_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
#WITH_FMOD=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 4. Patches (you can place here any additional patches)&lt;br /&gt;
&lt;br /&gt;
# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&lt;br /&gt;
&lt;br /&gt;
# Synfig Core patches&lt;br /&gt;
SYNCORE_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNCORE:&lt;br /&gt;
:END_SYNCORE:)&lt;br /&gt;
&lt;br /&gt;
# Sunfig Studio patches&lt;br /&gt;
SYNSTUDIO_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNSTUDIO:&lt;br /&gt;
:END_SYNSTUDIO:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR ILMBase patches&lt;br /&gt;
&lt;br /&gt;
ILMBASE_PATCHES=$(cat &amp;lt;&amp;lt;:END_ILMBASE:&lt;br /&gt;
ilmbase-1.0.1-makefile.patch&lt;br /&gt;
ilmbase-1.0.1-pkgconfig.patch&lt;br /&gt;
:END_ILMBASE:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR patches&lt;br /&gt;
#openexr-1.4.0-pkgconfig.patch&lt;br /&gt;
#openexr-1.4.0-mingw32.patch&lt;br /&gt;
OPENEXR_PATCHES=$(cat &amp;lt;&amp;lt;:END_OPENEXR:&lt;br /&gt;
:END_OPENEXR:)&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 5. Autoconfiguration&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$GTK_BASEPATH&amp;quot; ]; then&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${GTK_BASEPATH}/include $CPPFLAGS&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_IMAGEMAGICK_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_IMAGEMAGICK_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_SUBVERSION_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_SUBVERSION_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_NSIS_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_NSIS_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/ETL&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/synfig-devel&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
export CPPFLAGS&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save OpenEXR build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_openexr.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making OpenEXR...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ilmbase&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/openexr&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
echo PATH is $PATH&lt;br /&gt;
echo tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for ILMBase... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ILMBASE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring ILMbase&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo &amp;quot;ILMBase Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for OpenEXR... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${OPENEXR_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Now the temp/openexr dir exists, we can add it to paths&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring OpenEXR&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem  --disable-ilmbasetest&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;separately build b44ExpLogTable as the openexr script doesn't work under msys&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}/IlmImf&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mingw32-g++ --verbose -g -O2 -I${SYN_TEMP_INSTALL}/openexr/include/OpenEXR -L${SYN_TEMP_INSTALL}/openexr/lib b44ExpLogTable.cpp  -lHalf -o b44ExpLogTable&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ..&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
# [ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: OpenEXR&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save ETL build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_etl.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making ETL...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/*  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/.svn  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ETL_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: ETL&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Core build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_core.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Core...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/* ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/.svn ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNCORE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
libtoolize --ltdl --copy -f&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_CORE_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
# libtool hack patch [begin]&lt;br /&gt;
patch -p2 &amp;lt;${SYN_FILEZ_DIR}/synfig-core-hack-libtool.patch&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# libtool hack patch [end]&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ./synfig-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
make clean&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [begin]&lt;br /&gt;
make install prefix=${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [end]&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
&lt;br /&gt;
# auto build hack patch [begin]&lt;br /&gt;
echo &amp;quot;Postprocessing&amp;quot;&lt;br /&gt;
SYN_SED_PATH=`echo ${SYN_TEMP_INSTALL}/synfig-devel | sed -e 's/\//\\\\\//g'`&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack patch [end]&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-core&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Studio build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_studio.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Studio...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/* ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/.svn ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNSTUDIO_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_STUDIO_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
mv ./synfigstudio-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-studio&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_src directory===&lt;br /&gt;
Go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_src&amp;lt;/code&amp;gt; directory. Get the latest sources of Synfig from its repository.&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; ETL'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; synfig-core'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; synfig-studio'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The commands have a space between the URL address and the third paramater, it's easy to miss it. There should be three, space separated, paramaters in total after the &amp;quot;'''svn'''&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
Download the current stable [http://www.openexr.com/ OpenEXR] version from:&lt;br /&gt;
&lt;br /&gt;
* http://download.savannah.gnu.org/releases-noredirect/openexr/ilmbase-1.0.1.tar.gz (452 KB)&lt;br /&gt;
* http://download.savannah.gnu.org/releases-noredirect/openexr/openexr-1.6.1.tar.gz (13 MB)&lt;br /&gt;
&lt;br /&gt;
Finally, you must have three directories (ETL, synfig-core and synfig-studio) and the ilmbase-1.0.1.tar.gz &amp;amp; openexr-1.6.1.tar.gz files in your &amp;lt;code&amp;gt;'''_src'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===_filez directory===&lt;br /&gt;
Save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\synfig-core-hack-libtool.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar synfig-core.orig/win32build/libtool synfig-core/win32build/libtool&lt;br /&gt;
--- synfig-core.orig/win32build/libtool	Wed Feb  7 21:52:34 2007&lt;br /&gt;
+++ synfig-core/win32build/libtool	Wed Feb  7 21:57:12 2007&lt;br /&gt;
@@ -2805,7 +2805,7 @@&lt;br /&gt;
 	  fi&lt;br /&gt;
 	elif test &amp;quot;$build_libtool_libs&amp;quot; = yes; then&lt;br /&gt;
 	  # Not a shared library&lt;br /&gt;
-	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all; then&lt;br /&gt;
+	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all &amp;amp;&amp;amp; test &amp;quot;$old_library&amp;quot; != &amp;quot;libltdl.a&amp;quot;; then&lt;br /&gt;
 	    # We're trying link a shared library against a static one&lt;br /&gt;
 	    # but the system doesn't support it.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save the following as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-makefile.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmThread/Makefile.in ilmbase-1.0.1/IlmThread/Makefile.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmThread/Makefile.in	Tue Oct  9 14:28:29 2007&lt;br /&gt;
+++ ilmbase-1.0.1/IlmThread/Makefile.in	Sat Aug 16 18:35:08 2008&lt;br /&gt;
@@ -64,7 +64,8 @@&lt;br /&gt;
 am_libIlmThread_la_OBJECTS = IlmThreadPool.lo IlmThread.lo \&lt;br /&gt;
 	IlmThreadSemaphore.lo IlmThreadMutex.lo IlmThreadPosix.lo \&lt;br /&gt;
 	IlmThreadSemaphorePosix.lo IlmThreadSemaphorePosixCompat.lo \&lt;br /&gt;
-	IlmThreadMutexPosix.lo&lt;br /&gt;
+	IlmThreadMutexPosix.lo IlmThreadWin32.lo IlmThreadSemaphoreWin32.lo \&lt;br /&gt;
+	IlmThreadMutexWin32.lo&lt;br /&gt;
 libIlmThread_la_OBJECTS = $(am_libIlmThread_la_OBJECTS)&lt;br /&gt;
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/config&lt;br /&gt;
 depcomp = $(SHELL) $(top_srcdir)/depcomp&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally save the following as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-pkgconfig.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmBase.pc.in ilmbase-1.0.1/IlmBase.pc.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmBase.pc.in	Wed Dec 13 14:55:53 2006&lt;br /&gt;
+++ ilmbase-1.0.1/IlmBase.pc.in	Sat Aug 16 21:06:27 2008&lt;br /&gt;
@@ -7,5 +7,5 @@&lt;br /&gt;
 Name: IlmBase&lt;br /&gt;
 Description: Base math and exception libraries&lt;br /&gt;
 Version: @ILMBASE_VERSION@&lt;br /&gt;
-Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread @PTHREAD_LIBS@&lt;br /&gt;
-Cflags: @PTHREAD_CFLAGS@ -I${OpenEXR_includedir}&lt;br /&gt;
+Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread&lt;br /&gt;
+Cflags: -I@includedir@ -I${OpenEXR_includedir}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last but not least, prior to SVN 2055, the Windows installer files need patching - http://patches.synfig.org/r/3/&lt;br /&gt;
&lt;br /&gt;
(Acknowledgment to the writer of http://qtpfsgui.wiki.sourceforge.net/Compiling+on+Windows for the tip on the b44ExpLogTable file in OpenEXR)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
This section describes the parameters of &amp;lt;code&amp;gt;synbuild.conf&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
===Files and Directories===&lt;br /&gt;
As you can see in this section you can define the path and name of the special directories (with sources, patches and temporary directories). If you install the build scripts as written above, there is nothing to change.&lt;br /&gt;
&lt;br /&gt;
Also this section contains the path and version of the OpenEXR source files.&lt;br /&gt;
&lt;br /&gt;
===External tools===&lt;br /&gt;
In this section you need to define the path to the executable files of the three auxiliary packages: ImageMagick, Subversion and NSIS. ImageMagick and Subversion binaries are located using the PATH environment variable, but their paths are added to the end of the path list and so we can get name collisions. For example, the ImageMagick &amp;quot;convert&amp;quot; tool has the same name as the &amp;quot;convert&amp;quot; tool from Borland Delphi Explorer, which may have been installed before ImageMagick.&lt;br /&gt;
&lt;br /&gt;
===Build setup===&lt;br /&gt;
'''MINGW_HOST''' - host parameter of &amp;quot;configure&amp;quot; script. Do not change it.&lt;br /&gt;
&lt;br /&gt;
'''SYN_CORE_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Core will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
'''SYN_STUDIO_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Studio will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
===Patches===&lt;br /&gt;
In this section you can find a number of patch definition blocks, looking like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;padding: 1em; border: 1px dashed #2f6fab; color: Black; background-color: #f9f9f9; line-height: 1.1em;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if you place any filenames of patches between '':END_ETL:'' blocks, it will be applied before the configuration of ETL. Patch files need to be stored in the &amp;lt;code&amp;gt;_filez&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
This section is useful if you want to test your own patches before sending them to the Synfig developers.&lt;br /&gt;
&lt;br /&gt;
===Autoconfiguration===&lt;br /&gt;
This section contatins code which sets up the required environment variables and (by default) there is no need to change anything.&lt;br /&gt;
&lt;br /&gt;
==Build Order==&lt;br /&gt;
Note: If you want build synfig without slowing down other tasks running on the same machine while the build takes place, open a single msys session, then open &amp;quot;Task Manager&amp;quot;, search for the ''sh.exe'' process and set its priority to &amp;quot;Below normal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: Running an on-access antivirus scanner can dramatically decrease compilation speed.&lt;br /&gt;
&lt;br /&gt;
===OpenEXR===&lt;br /&gt;
This package needs to be built only once. A rebuild is only required if you get a new version or want to apply a new patch to it or you update the compiler and it is incompatible with the previous binaries.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_openexr.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: OpenEXR&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===ETL===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_etl.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: ETL&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===Synfig Core===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_core.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-core&amp;quot; message. It can take a long time. The Synfig Core installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
===Synfig Studio===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_studio.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-studio&amp;quot; message. It can take a long time. The Synfig Studio installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
==Additional tools==&lt;br /&gt;
These tools are not required to build Synfig, but they can help in the debugging process.&lt;br /&gt;
&lt;br /&gt;
P.S. Post this later. ;-)&lt;br /&gt;
&lt;br /&gt;
(Atrus - keen to hear what you recommend for debug.  Also any debug processes you go through to fix the bugs.  There's several bugs (mainly preview rendering) that I see under the current builds of Windows that are not under Linux or the old 0.61.05 for Windows - Pxegeek 2/7/07)&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8359</id>
		<title>Dev:Building on Windows</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8359"/>
				<updated>2009-01-08T22:06:28Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* _src directory */ format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
&lt;br /&gt;
==Directories==&lt;br /&gt;
If you didn't already install Mingw, [[Mingw installation|this page]] will guide you through the process.&lt;br /&gt;
&lt;br /&gt;
If you didn't already start an msys session, do so now. Just double click the MSYS shortcut or run &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt;. An msys session will be opened, creating your profile directory at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. As you can see, MinGW uses your windows login as the user name in its fake UNIX environment. Be careful, I've not checked whether it works with non latin-character account names.&lt;br /&gt;
&lt;br /&gt;
Now, use explorer or your favorite file manager and go to &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. Create a directory there for all Synfig operations. For example, let it be &amp;lt;code&amp;gt;'''synfig'''&amp;lt;/code&amp;gt;. Go into this directory.&lt;br /&gt;
&lt;br /&gt;
Ok, now you are at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig'''&amp;lt;/code&amp;gt;. Create four directories here:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_filez'''&amp;lt;/code&amp;gt;, for patches (and maybe later, additional files).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_src'''&amp;lt;/code&amp;gt;, for program sources.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''build'''&amp;lt;/code&amp;gt;, for building programs.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''temp'''&amp;lt;/code&amp;gt;, for local installation programs and libraries, which are required for building synfig. (For example: ETL, synfig (core for studio), OpenEXR, etc...)&lt;br /&gt;
&lt;br /&gt;
Of course, you can choose your own name for all the directories and choose their locations. All you need then is to set a new path in the configuration file. But for now we choose the easy way.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
Save this configuration file as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\synbuild.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Synfig for Win32 build configuration script.&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 1. Files and Directories&lt;br /&gt;
&lt;br /&gt;
# Uncompressed Synfig svn snapshots and another package sources&lt;br /&gt;
SYN_SOURCE_DIR=`dirname ~/.`&amp;quot;/synfig/_src&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Directory additional files (patches f.e.)&lt;br /&gt;
SYN_FILEZ_DIR=`dirname ~/.`&amp;quot;/synfig/_filez&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Temporary installations (ETL headers, synfig binaries for icon and image making)&lt;br /&gt;
SYN_TEMP_INSTALL=`dirname ~/.`&amp;quot;/synfig/temp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Build directory&lt;br /&gt;
SYN_BUILD_DIR=`dirname ~/.`&amp;quot;/synfig/build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# OpenEXR source package&lt;br /&gt;
SYN_ILMBASE_VERSION=&amp;quot;1.0.1&amp;quot;&lt;br /&gt;
SYN_ILMBASE_SRC=&amp;quot;${SYN_SOURCE_DIR}/ilmbase-${SYN_ILMBASE_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
SYN_OPENEXR_VERSION=&amp;quot;1.6.1&amp;quot;&lt;br /&gt;
SYN_OPENEXR_SRC=&amp;quot;${SYN_SOURCE_DIR}/openexr-${SYN_OPENEXR_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 2. External tools&lt;br /&gt;
&lt;br /&gt;
# Path to ImageMagick directory.&lt;br /&gt;
SYN_IMAGEMAGICK_PATH=&amp;quot;/C/Program Files/ImageMagick&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to Subversion bin directory.&lt;br /&gt;
SYN_SUBVERSION_PATH=&amp;quot;/C/Program Files/Subversion/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to NSIS directory with makensis.exe file.&lt;br /&gt;
SYN_NSIS_PATH=&amp;quot;/C/Program Files/NSIS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 3. Build setup&lt;br /&gt;
&lt;br /&gt;
# Build host&lt;br /&gt;
MINGW_HOST=&amp;quot;mingw32&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Core&lt;br /&gt;
SYN_CORE_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Studio&lt;br /&gt;
SYN_STUDIO_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
#WITH_FMOD=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 4. Patches (you can place here any additional patches)&lt;br /&gt;
&lt;br /&gt;
# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&lt;br /&gt;
&lt;br /&gt;
# Synfig Core patches&lt;br /&gt;
SYNCORE_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNCORE:&lt;br /&gt;
:END_SYNCORE:)&lt;br /&gt;
&lt;br /&gt;
# Sunfig Studio patches&lt;br /&gt;
SYNSTUDIO_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNSTUDIO:&lt;br /&gt;
:END_SYNSTUDIO:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR ILMBase patches&lt;br /&gt;
&lt;br /&gt;
ILMBASE_PATCHES=$(cat &amp;lt;&amp;lt;:END_ILMBASE:&lt;br /&gt;
ilmbase-1.0.1-makefile.patch&lt;br /&gt;
ilmbase-1.0.1-pkgconfig.patch&lt;br /&gt;
:END_ILMBASE:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR patches&lt;br /&gt;
#openexr-1.4.0-pkgconfig.patch&lt;br /&gt;
#openexr-1.4.0-mingw32.patch&lt;br /&gt;
OPENEXR_PATCHES=$(cat &amp;lt;&amp;lt;:END_OPENEXR:&lt;br /&gt;
:END_OPENEXR:)&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 5. Autoconfiguration&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$GTK_BASEPATH&amp;quot; ]; then&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${GTK_BASEPATH}/include $CPPFLAGS&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_IMAGEMAGICK_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_IMAGEMAGICK_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_SUBVERSION_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_SUBVERSION_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_NSIS_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_NSIS_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/ETL&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/synfig-devel&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
export CPPFLAGS&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save OpenEXR build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_openexr.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making OpenEXR...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ilmbase&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/openexr&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
echo PATH is $PATH&lt;br /&gt;
echo tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for ILMBase... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ILMBASE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring ILMbase&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo &amp;quot;ILMBase Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for OpenEXR... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${OPENEXR_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Now the temp/openexr dir exists, we can add it to paths&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring OpenEXR&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem  --disable-ilmbasetest&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;separately build b44ExpLogTable as the openexr script doesn't work under msys&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}/IlmImf&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mingw32-g++ --verbose -g -O2 -I${SYN_TEMP_INSTALL}/openexr/include/OpenEXR -L${SYN_TEMP_INSTALL}/openexr/lib b44ExpLogTable.cpp  -lHalf -o b44ExpLogTable&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ..&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
# [ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: OpenEXR&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save ETL build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_etl.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making ETL...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/*  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/.svn  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ETL_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: ETL&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Core build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_core.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Core...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/* ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/.svn ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNCORE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
libtoolize --ltdl --copy -f&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_CORE_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
# libtool hack patch [begin]&lt;br /&gt;
patch -p2 &amp;lt;${SYN_FILEZ_DIR}/synfig-core-hack-libtool.patch&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# libtool hack patch [end]&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ./synfig-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
make clean&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [begin]&lt;br /&gt;
make install prefix=${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [end]&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
&lt;br /&gt;
# auto build hack patch [begin]&lt;br /&gt;
echo &amp;quot;Postprocessing&amp;quot;&lt;br /&gt;
SYN_SED_PATH=`echo ${SYN_TEMP_INSTALL}/synfig-devel | sed -e 's/\//\\\\\//g'`&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack patch [end]&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-core&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Studio build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_studio.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Studio...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/* ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/.svn ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNSTUDIO_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_STUDIO_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
mv ./synfigstudio-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-studio&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_src directory===&lt;br /&gt;
Go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_src&amp;lt;/code&amp;gt; directory. Get the latest sources of Synfig from its repository.&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; ETL'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; synfig-core'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;'''$ svn co &amp;lt;nowiki&amp;gt;https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk/&amp;amp;nbsp;&amp;lt;/nowiki&amp;gt; synfig-studio'''&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The commands have a space between the URL address and the third paramater, it's easy to miss it. There should be three, space separated, paramaters in total after the &amp;quot;'''svn'''&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
Download the current stable [http://www.openexr.com/ OpenEXR] version from:&lt;br /&gt;
&lt;br /&gt;
* http://download.savannah.nongnu.org/releases/openexr/ilmbase-1.0.1.tar.gz (452KB)&lt;br /&gt;
* http://download.savannah.nongnu.org/releases/openexr/openexr-1.6.1.tar.gz (13 MB)&lt;br /&gt;
&lt;br /&gt;
Finally you must have three directories (ETL, synfig-core and synfig-studio) and the ilmbase-1.0.1.tar.gz &amp;amp; openexr-1.6.1.tar.gz files in your &amp;lt;code&amp;gt;'''_src'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===_filez directory===&lt;br /&gt;
Save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\synfig-core-hack-libtool.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar synfig-core.orig/win32build/libtool synfig-core/win32build/libtool&lt;br /&gt;
--- synfig-core.orig/win32build/libtool	Wed Feb  7 21:52:34 2007&lt;br /&gt;
+++ synfig-core/win32build/libtool	Wed Feb  7 21:57:12 2007&lt;br /&gt;
@@ -2805,7 +2805,7 @@&lt;br /&gt;
 	  fi&lt;br /&gt;
 	elif test &amp;quot;$build_libtool_libs&amp;quot; = yes; then&lt;br /&gt;
 	  # Not a shared library&lt;br /&gt;
-	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all; then&lt;br /&gt;
+	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all &amp;amp;&amp;amp; test &amp;quot;$old_library&amp;quot; != &amp;quot;libltdl.a&amp;quot;; then&lt;br /&gt;
 	    # We're trying link a shared library against a static one&lt;br /&gt;
 	    # but the system doesn't support it.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save the following as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-makefile.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmThread/Makefile.in ilmbase-1.0.1/IlmThread/Makefile.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmThread/Makefile.in	Tue Oct  9 14:28:29 2007&lt;br /&gt;
+++ ilmbase-1.0.1/IlmThread/Makefile.in	Sat Aug 16 18:35:08 2008&lt;br /&gt;
@@ -64,7 +64,8 @@&lt;br /&gt;
 am_libIlmThread_la_OBJECTS = IlmThreadPool.lo IlmThread.lo \&lt;br /&gt;
 	IlmThreadSemaphore.lo IlmThreadMutex.lo IlmThreadPosix.lo \&lt;br /&gt;
 	IlmThreadSemaphorePosix.lo IlmThreadSemaphorePosixCompat.lo \&lt;br /&gt;
-	IlmThreadMutexPosix.lo&lt;br /&gt;
+	IlmThreadMutexPosix.lo IlmThreadWin32.lo IlmThreadSemaphoreWin32.lo \&lt;br /&gt;
+	IlmThreadMutexWin32.lo&lt;br /&gt;
 libIlmThread_la_OBJECTS = $(am_libIlmThread_la_OBJECTS)&lt;br /&gt;
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/config&lt;br /&gt;
 depcomp = $(SHELL) $(top_srcdir)/depcomp&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally save the following as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-pkgconfig.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmBase.pc.in ilmbase-1.0.1/IlmBase.pc.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmBase.pc.in	Wed Dec 13 14:55:53 2006&lt;br /&gt;
+++ ilmbase-1.0.1/IlmBase.pc.in	Sat Aug 16 21:06:27 2008&lt;br /&gt;
@@ -7,5 +7,5 @@&lt;br /&gt;
 Name: IlmBase&lt;br /&gt;
 Description: Base math and exception libraries&lt;br /&gt;
 Version: @ILMBASE_VERSION@&lt;br /&gt;
-Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread @PTHREAD_LIBS@&lt;br /&gt;
-Cflags: @PTHREAD_CFLAGS@ -I${OpenEXR_includedir}&lt;br /&gt;
+Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread&lt;br /&gt;
+Cflags: -I@includedir@ -I${OpenEXR_includedir}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last but not least, prior to SVN 2055, the Windows installer files need patching - http://patches.synfig.org/r/3/&lt;br /&gt;
&lt;br /&gt;
(Acknowledgment to the writer of http://qtpfsgui.wiki.sourceforge.net/Compiling+on+Windows for the tip on the b44ExpLogTable file in OpenEXR)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
This section describes the parameters of &amp;lt;code&amp;gt;synbuild.conf&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
===Files and Directories===&lt;br /&gt;
As you can see in this section you can define the path and name of the special directories (with sources, patches and temporary directories). If you install the build scripts as written above, there is nothing to change.&lt;br /&gt;
&lt;br /&gt;
Also this section contains the path and version of the OpenEXR source files.&lt;br /&gt;
&lt;br /&gt;
===External tools===&lt;br /&gt;
In this section you need to define the path to the executable files of the three auxiliary packages: ImageMagick, Subversion and NSIS. ImageMagick and Subversion binaries are located using the PATH environment variable, but their paths are added to the end of the path list and so we can get name collisions. For example, the ImageMagick &amp;quot;convert&amp;quot; tool has the same name as the &amp;quot;convert&amp;quot; tool from Borland Delphi Explorer, which may have been installed before ImageMagick.&lt;br /&gt;
&lt;br /&gt;
===Build setup===&lt;br /&gt;
'''MINGW_HOST''' - host parameter of &amp;quot;configure&amp;quot; script. Do not change it.&lt;br /&gt;
&lt;br /&gt;
'''SYN_CORE_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Core will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
'''SYN_STUDIO_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Studio will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
===Patches===&lt;br /&gt;
In this section you can find a number of patch definition blocks, looking like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;padding: 1em; border: 1px dashed #2f6fab; color: Black; background-color: #f9f9f9; line-height: 1.1em;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if you place any filenames of patches between '':END_ETL:'' blocks, it will be applied before the configuration of ETL. Patch files need to be stored in the &amp;lt;code&amp;gt;_filez&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
This section is useful if you want to test your own patches before sending them to the Synfig developers.&lt;br /&gt;
&lt;br /&gt;
===Autoconfiguration===&lt;br /&gt;
This section contatins code which sets up the required environment variables and (by default) there is no need to change anything.&lt;br /&gt;
&lt;br /&gt;
==Build Order==&lt;br /&gt;
Note: If you want build synfig without slowing down other tasks running on the same machine while the build takes place, open a single msys session, then open &amp;quot;Task Manager&amp;quot;, search for the ''sh.exe'' process and set its priority to &amp;quot;Below normal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: Running an on-access antivirus scanner can dramatically decrease compilation speed.&lt;br /&gt;
&lt;br /&gt;
===OpenEXR===&lt;br /&gt;
This package needs to be built only once. A rebuild is only required if you get a new version or want to apply a new patch to it or you update the compiler and it is incompatible with the previous binaries.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_openexr.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: OpenEXR&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===ETL===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_etl.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: ETL&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===Synfig Core===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_core.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-core&amp;quot; message. It can take a long time. The Synfig Core installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
===Synfig Studio===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_studio.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-studio&amp;quot; message. It can take a long time. The Synfig Studio installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
==Additional tools==&lt;br /&gt;
These tools are not required to build Synfig, but they can help in the debugging process.&lt;br /&gt;
&lt;br /&gt;
P.S. Post this later. ;-)&lt;br /&gt;
&lt;br /&gt;
(Atrus - keen to hear what you recommend for debug.  Also any debug processes you go through to fix the bugs.  There's several bugs (mainly preview rendering) that I see under the current builds of Windows that are not under Linux or the old 0.61.05 for Windows - Pxegeek 2/7/07)&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8358</id>
		<title>Dev:Building on Windows</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Building_on_Windows&amp;diff=8358"/>
				<updated>2009-01-08T21:40:34Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* Directories */ hilight&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
&lt;br /&gt;
==Directories==&lt;br /&gt;
If you didn't already install Mingw, [[Mingw installation|this page]] will guide you through the process.&lt;br /&gt;
&lt;br /&gt;
If you didn't already start an msys session, do so now. Just double click the MSYS shortcut or run &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt;. An msys session will be opened, creating your profile directory at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. As you can see, MinGW uses your windows login as the user name in its fake UNIX environment. Be careful, I've not checked whether it works with non latin-character account names.&lt;br /&gt;
&lt;br /&gt;
Now, use explorer or your favorite file manager and go to &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;'''&amp;lt;/code&amp;gt;. Create a directory there for all Synfig operations. For example, let it be &amp;lt;code&amp;gt;'''synfig'''&amp;lt;/code&amp;gt;. Go into this directory.&lt;br /&gt;
&lt;br /&gt;
Ok, now you are at &amp;lt;code&amp;gt;'''C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig'''&amp;lt;/code&amp;gt;. Create four directories here:&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_filez'''&amp;lt;/code&amp;gt;, for patches (and maybe later, additional files).&lt;br /&gt;
* &amp;lt;code&amp;gt;'''_src'''&amp;lt;/code&amp;gt;, for program sources.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''build'''&amp;lt;/code&amp;gt;, for building programs.&lt;br /&gt;
* &amp;lt;code&amp;gt;'''temp'''&amp;lt;/code&amp;gt;, for local installation programs and libraries, which are required for building synfig. (For example: ETL, synfig (core for studio), OpenEXR, etc...)&lt;br /&gt;
&lt;br /&gt;
Of course, you can choose your own name for all the directories and choose their locations. All you need then is to set a new path in the configuration file. But for now we choose the easy way.&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
Save this configuration file as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\synbuild.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# Synfig for Win32 build configuration script.&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 1. Files and Directories&lt;br /&gt;
&lt;br /&gt;
# Uncompressed Synfig svn snapshots and another package sources&lt;br /&gt;
SYN_SOURCE_DIR=`dirname ~/.`&amp;quot;/synfig/_src&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Directory additional files (patches f.e.)&lt;br /&gt;
SYN_FILEZ_DIR=`dirname ~/.`&amp;quot;/synfig/_filez&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Temporary installations (ETL headers, synfig binaries for icon and image making)&lt;br /&gt;
SYN_TEMP_INSTALL=`dirname ~/.`&amp;quot;/synfig/temp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Build directory&lt;br /&gt;
SYN_BUILD_DIR=`dirname ~/.`&amp;quot;/synfig/build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# OpenEXR source package&lt;br /&gt;
SYN_ILMBASE_VERSION=&amp;quot;1.0.1&amp;quot;&lt;br /&gt;
SYN_ILMBASE_SRC=&amp;quot;${SYN_SOURCE_DIR}/ilmbase-${SYN_ILMBASE_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
SYN_OPENEXR_VERSION=&amp;quot;1.6.1&amp;quot;&lt;br /&gt;
SYN_OPENEXR_SRC=&amp;quot;${SYN_SOURCE_DIR}/openexr-${SYN_OPENEXR_VERSION}.tar.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 2. External tools&lt;br /&gt;
&lt;br /&gt;
# Path to ImageMagick directory.&lt;br /&gt;
SYN_IMAGEMAGICK_PATH=&amp;quot;/C/Program Files/ImageMagick&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to Subversion bin directory.&lt;br /&gt;
SYN_SUBVERSION_PATH=&amp;quot;/C/Program Files/Subversion/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to NSIS directory with makensis.exe file.&lt;br /&gt;
SYN_NSIS_PATH=&amp;quot;/C/Program Files/NSIS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 3. Build setup&lt;br /&gt;
&lt;br /&gt;
# Build host&lt;br /&gt;
MINGW_HOST=&amp;quot;mingw32&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Core&lt;br /&gt;
SYN_CORE_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Make debug build of Synfig Studio&lt;br /&gt;
SYN_STUDIO_DEBUG_BUILD=&amp;quot;no&amp;quot;&lt;br /&gt;
#WITH_FMOD=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 4. Patches (you can place here any additional patches)&lt;br /&gt;
&lt;br /&gt;
# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&lt;br /&gt;
&lt;br /&gt;
# Synfig Core patches&lt;br /&gt;
SYNCORE_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNCORE:&lt;br /&gt;
:END_SYNCORE:)&lt;br /&gt;
&lt;br /&gt;
# Sunfig Studio patches&lt;br /&gt;
SYNSTUDIO_PATCHES=$(cat &amp;lt;&amp;lt;:END_SYNSTUDIO:&lt;br /&gt;
:END_SYNSTUDIO:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR ILMBase patches&lt;br /&gt;
&lt;br /&gt;
ILMBASE_PATCHES=$(cat &amp;lt;&amp;lt;:END_ILMBASE:&lt;br /&gt;
ilmbase-1.0.1-makefile.patch&lt;br /&gt;
ilmbase-1.0.1-pkgconfig.patch&lt;br /&gt;
:END_ILMBASE:)&lt;br /&gt;
&lt;br /&gt;
# OpenEXR patches&lt;br /&gt;
#openexr-1.4.0-pkgconfig.patch&lt;br /&gt;
#openexr-1.4.0-mingw32.patch&lt;br /&gt;
OPENEXR_PATCHES=$(cat &amp;lt;&amp;lt;:END_OPENEXR:&lt;br /&gt;
:END_OPENEXR:)&lt;br /&gt;
&lt;br /&gt;
#############################################################################&lt;br /&gt;
# 5. Autoconfiguration&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$GTK_BASEPATH&amp;quot; ]; then&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${GTK_BASEPATH}/include $CPPFLAGS&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_IMAGEMAGICK_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_IMAGEMAGICK_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_SUBVERSION_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_SUBVERSION_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$SYN_NSIS_PATH&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_NSIS_PATH}:${PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/ETL&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/ETL/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/synfig-devel&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
export CPPFLAGS&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save OpenEXR build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_openexr.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making OpenEXR...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ilmbase&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/openexr&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
echo PATH is $PATH&lt;br /&gt;
echo tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_ILMBASE_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
tar -xzf ${SYN_OPENEXR_SRC} -C ${SYN_BUILD_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for ILMBase... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ilmbase-${SYN_ILMBASE_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ILMBASE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring ILMbase&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
echo &amp;quot;ILMBase Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches for OpenEXR... &amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${OPENEXR_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Now the temp/openexr dir exists, we can add it to paths&lt;br /&gt;
if [ -d &amp;quot;${SYN_TEMP_INSTALL}/openexr&amp;quot; ]; then&lt;br /&gt;
  PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/bin:${PATH}&amp;quot;&lt;br /&gt;
  PKG_CONFIG_PATH=&amp;quot;${SYN_TEMP_INSTALL}/openexr/lib/pkgconfig:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export PATH&lt;br /&gt;
export PKG_CONFIG_PATH&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring OpenEXR&amp;quot;&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/openexr \&lt;br /&gt;
  --disable-static --disable-threading --disable-posix-sem  --disable-ilmbasetest&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;separately build b44ExpLogTable as the openexr script doesn't work under msys&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}/IlmImf&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mingw32-g++ --verbose -g -O2 -I${SYN_TEMP_INSTALL}/openexr/include/OpenEXR -L${SYN_TEMP_INSTALL}/openexr/lib b44ExpLogTable.cpp  -lHalf -o b44ExpLogTable&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ..&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# rm -rf ${SYN_BUILD_DIR}/openexr-${SYN_OPENEXR_VERSION}&lt;br /&gt;
# [ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: OpenEXR&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save ETL build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_etl.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making ETL...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/*  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/ETL/.svn  ${SYN_BUILD_DIR}/ETL/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${ETL_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
./configure --host=${MINGW_HOST} --prefix=${SYN_TEMP_INSTALL}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make install&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/ETL&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: ETL&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Core build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_core.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Core...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/* ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-core/.svn ${SYN_BUILD_DIR}/synfig-core/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNCORE_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
libtoolize --ltdl --copy -f&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_CORE_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
# libtool hack patch [begin]&lt;br /&gt;
patch -p2 &amp;lt;${SYN_FILEZ_DIR}/synfig-core-hack-libtool.patch&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# libtool hack patch [end]&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ./synfig-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
make clean&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [begin]&lt;br /&gt;
make install prefix=${SYN_TEMP_INSTALL}/synfig-devel&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack installation [end]&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
&lt;br /&gt;
# auto build hack patch [begin]&lt;br /&gt;
echo &amp;quot;Postprocessing&amp;quot;&lt;br /&gt;
SYN_SED_PATH=`echo ${SYN_TEMP_INSTALL}/synfig-devel | sed -e 's/\//\\\\\//g'`&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/bin/synfig-config.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mv ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
sed -e &amp;quot;s/C:\/PROGRA~1\\/Synfig/${SYN_SED_PATH}/g&amp;quot; \&lt;br /&gt;
  ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp &amp;gt;${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -f ${SYN_TEMP_INSTALL}/synfig-devel/lib/pkgconfig/synfig.pc.tmp&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
# auto build hack patch [end]&lt;br /&gt;
&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-core&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-core&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save Synfig Studio build script as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\make_studio.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making Synfig-Studio...&amp;quot;&lt;br /&gt;
# Including configuration&lt;br /&gt;
if [ -r &amp;quot;./synbuild.conf&amp;quot; ]; then&lt;br /&gt;
  . ./synbuild.conf&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;No config file for synfig build (./synbuild.conf) found.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
CURRENT_DIR=`pwd`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Cleanup directories&amp;quot;&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Preparing sources&amp;quot;&lt;br /&gt;
mkdir ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/* ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cp -R ${SYN_SOURCE_DIR}/synfig-studio/.svn ${SYN_BUILD_DIR}/synfig-studio/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
cd  ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
for SFILE in ${SYNSTUDIO_PATCHES[@]}&lt;br /&gt;
do&lt;br /&gt;
  patch -p1 &amp;lt;${SYN_FILEZ_DIR}/${SFILE}&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Configuring&amp;quot;&lt;br /&gt;
autoreconf -if&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
mkdir win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd win32build&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
if [ &amp;quot;$SYN_STUDIO_DEBUG_BUILD&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --disable-optimization --enable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
else&lt;br /&gt;
  ../configure --host=${MINGW_HOST} --prefix=C:/PROGRA~1/Synfig --enable-optimization=1 --disable-debug&lt;br /&gt;
  [ $? -eq 0 ] || exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Making&amp;quot;&lt;br /&gt;
make package&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
mv ./synfigstudio-*.exe ${CURRENT_DIR}/&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
cd ${CURRENT_DIR}&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
rm -rf ${SYN_BUILD_DIR}/synfig-studio&lt;br /&gt;
[ $? -eq 0 ] || exit 1&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Done: synfig-studio&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_src directory===&lt;br /&gt;
Go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_src&amp;lt;/code&amp;gt; directory. Get the latest sources of Synfig from its repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ svn co https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/ ETL&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;$ svn co https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk/ synfig-core&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;$ svn co https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk/ synfig-studio&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The commands have a space between the URL address and the third paramater, it's easy to miss it. There should be three, space separated, paramaters in total after the &amp;quot;svn&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
Download the current stable [http://www.openexr.com/ OpenEXR] version from:&lt;br /&gt;
&lt;br /&gt;
* http://download.savannah.nongnu.org/releases/openexr/ilmbase-1.0.1.tar.gz (452KB)&lt;br /&gt;
* http://download.savannah.nongnu.org/releases/openexr/openexr-1.6.1.tar.gz (13 MB)&lt;br /&gt;
&lt;br /&gt;
Finally you must have three directories (ETL, synfig-core and synfig-studio) and the ilmbase-1.0.1.tar.gz &amp;amp; openexr-1.6.1.tar.gz files in your &amp;lt;code&amp;gt;_src&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===_filez directory===&lt;br /&gt;
Save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\synfig-core-hack-libtool.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar synfig-core.orig/win32build/libtool synfig-core/win32build/libtool&lt;br /&gt;
--- synfig-core.orig/win32build/libtool	Wed Feb  7 21:52:34 2007&lt;br /&gt;
+++ synfig-core/win32build/libtool	Wed Feb  7 21:57:12 2007&lt;br /&gt;
@@ -2805,7 +2805,7 @@&lt;br /&gt;
 	  fi&lt;br /&gt;
 	elif test &amp;quot;$build_libtool_libs&amp;quot; = yes; then&lt;br /&gt;
 	  # Not a shared library&lt;br /&gt;
-	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all; then&lt;br /&gt;
+	  if test &amp;quot;$deplibs_check_method&amp;quot; != pass_all &amp;amp;&amp;amp; test &amp;quot;$old_library&amp;quot; != &amp;quot;libltdl.a&amp;quot;; then&lt;br /&gt;
 	    # We're trying link a shared library against a static one&lt;br /&gt;
 	    # but the system doesn't support it.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save the following as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-makefile.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmThread/Makefile.in ilmbase-1.0.1/IlmThread/Makefile.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmThread/Makefile.in	Tue Oct  9 14:28:29 2007&lt;br /&gt;
+++ ilmbase-1.0.1/IlmThread/Makefile.in	Sat Aug 16 18:35:08 2008&lt;br /&gt;
@@ -64,7 +64,8 @@&lt;br /&gt;
 am_libIlmThread_la_OBJECTS = IlmThreadPool.lo IlmThread.lo \&lt;br /&gt;
 	IlmThreadSemaphore.lo IlmThreadMutex.lo IlmThreadPosix.lo \&lt;br /&gt;
 	IlmThreadSemaphorePosix.lo IlmThreadSemaphorePosixCompat.lo \&lt;br /&gt;
-	IlmThreadMutexPosix.lo&lt;br /&gt;
+	IlmThreadMutexPosix.lo IlmThreadWin32.lo IlmThreadSemaphoreWin32.lo \&lt;br /&gt;
+	IlmThreadMutexWin32.lo&lt;br /&gt;
 libIlmThread_la_OBJECTS = $(am_libIlmThread_la_OBJECTS)&lt;br /&gt;
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/config&lt;br /&gt;
 depcomp = $(SHELL) $(top_srcdir)/depcomp&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally save the following as &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig\_filez\ilmbase-1.0.1-pkgconfig.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -Nuar ilmbase-1.0.1.orig/IlmBase.pc.in ilmbase-1.0.1/IlmBase.pc.in&lt;br /&gt;
--- ilmbase-1.0.1.orig/IlmBase.pc.in	Wed Dec 13 14:55:53 2006&lt;br /&gt;
+++ ilmbase-1.0.1/IlmBase.pc.in	Sat Aug 16 21:06:27 2008&lt;br /&gt;
@@ -7,5 +7,5 @@&lt;br /&gt;
 Name: IlmBase&lt;br /&gt;
 Description: Base math and exception libraries&lt;br /&gt;
 Version: @ILMBASE_VERSION@&lt;br /&gt;
-Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread @PTHREAD_LIBS@&lt;br /&gt;
-Cflags: @PTHREAD_CFLAGS@ -I${OpenEXR_includedir}&lt;br /&gt;
+Libs: -L${libdir} -lImath -lHalf -lIex -lIlmThread&lt;br /&gt;
+Cflags: -I@includedir@ -I${OpenEXR_includedir}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last but not least, prior to SVN 2055, the Windows installer files need patching - http://patches.synfig.org/r/3/&lt;br /&gt;
&lt;br /&gt;
(Acknowledgment to the writer of http://qtpfsgui.wiki.sourceforge.net/Compiling+on+Windows for the tip on the b44ExpLogTable file in OpenEXR)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
This section describes the parameters of &amp;lt;code&amp;gt;synbuild.conf&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
===Files and Directories===&lt;br /&gt;
As you can see in this section you can define the path and name of the special directories (with sources, patches and temporary directories). If you install the build scripts as written above, there is nothing to change.&lt;br /&gt;
&lt;br /&gt;
Also this section contains the path and version of the OpenEXR source files.&lt;br /&gt;
&lt;br /&gt;
===External tools===&lt;br /&gt;
In this section you need to define the path to the executable files of the three auxiliary packages: ImageMagick, Subversion and NSIS. ImageMagick and Subversion binaries are located using the PATH environment variable, but their paths are added to the end of the path list and so we can get name collisions. For example, the ImageMagick &amp;quot;convert&amp;quot; tool has the same name as the &amp;quot;convert&amp;quot; tool from Borland Delphi Explorer, which may have been installed before ImageMagick.&lt;br /&gt;
&lt;br /&gt;
===Build setup===&lt;br /&gt;
'''MINGW_HOST''' - host parameter of &amp;quot;configure&amp;quot; script. Do not change it.&lt;br /&gt;
&lt;br /&gt;
'''SYN_CORE_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Core will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
'''SYN_STUDIO_DEBUG_BUILD''' - if &amp;quot;yes&amp;quot;, Synfig Studio will be made with debug info.&lt;br /&gt;
&lt;br /&gt;
===Patches===&lt;br /&gt;
In this section you can find a number of patch definition blocks, looking like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;padding: 1em; border: 1px dashed #2f6fab; color: Black; background-color: #f9f9f9; line-height: 1.1em;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ETL patches&lt;br /&gt;
ETL_PATCHES=$(cat &amp;lt;&amp;lt;:END_ETL:&lt;br /&gt;
:END_ETL:)&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if you place any filenames of patches between '':END_ETL:'' blocks, it will be applied before the configuration of ETL. Patch files need to be stored in the &amp;lt;code&amp;gt;_filez&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
This section is useful if you want to test your own patches before sending them to the Synfig developers.&lt;br /&gt;
&lt;br /&gt;
===Autoconfiguration===&lt;br /&gt;
This section contatins code which sets up the required environment variables and (by default) there is no need to change anything.&lt;br /&gt;
&lt;br /&gt;
==Build Order==&lt;br /&gt;
Note: If you want build synfig without slowing down other tasks running on the same machine while the build takes place, open a single msys session, then open &amp;quot;Task Manager&amp;quot;, search for the ''sh.exe'' process and set its priority to &amp;quot;Below normal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: Running an on-access antivirus scanner can dramatically decrease compilation speed.&lt;br /&gt;
&lt;br /&gt;
===OpenEXR===&lt;br /&gt;
This package needs to be built only once. A rebuild is only required if you get a new version or want to apply a new patch to it or you update the compiler and it is incompatible with the previous binaries.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_openexr.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: OpenEXR&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===ETL===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_etl.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: ETL&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
===Synfig Core===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_core.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-core&amp;quot; message. It can take a long time. The Synfig Core installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
===Synfig Studio===&lt;br /&gt;
Rebuild it when you get a new version of Synfig.&lt;br /&gt;
&lt;br /&gt;
In your msys console go to the &amp;lt;code&amp;gt;C:\msys\1.0\home\&amp;lt;windows login&amp;gt;\synfig&amp;lt;/code&amp;gt; directory by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ cd ~/synfig&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;nowiki&amp;gt;$ ./make_studio.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the &amp;quot;Done: synfig-studio&amp;quot; message. It can take a long time. The Synfig Studio installer will be moved into the current directory.&lt;br /&gt;
&lt;br /&gt;
==Additional tools==&lt;br /&gt;
These tools are not required to build Synfig, but they can help in the debugging process.&lt;br /&gt;
&lt;br /&gt;
P.S. Post this later. ;-)&lt;br /&gt;
&lt;br /&gt;
(Atrus - keen to hear what you recommend for debug.  Also any debug processes you go through to fix the bugs.  There's several bugs (mainly preview rendering) that I see under the current builds of Windows that are not under Linux or the old 0.61.05 for Windows - Pxegeek 2/7/07)&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8357</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8357"/>
				<updated>2009-01-08T21:34:10Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gtkmm.org/ GTKmm] */ added other link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 MB)&lt;br /&gt;
&lt;br /&gt;
If you opted for '''gtk-dev-2.12.9-win32-2.exe''' or '''gtk-dev-2.12.9-win32-1.exe''' pick this instead.&lt;br /&gt;
* ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.11-1.exe (16.3 MB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;'''C:\GTK'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8356</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8356"/>
				<updated>2009-01-08T20:47:15Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gtk.org/ GTK+] */ KB -&amp;gt; MB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 MB)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (16.7 MB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8355</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8355"/>
				<updated>2009-01-08T20:35:12Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gtk.org/ GTK+] */ added filesize&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe (17,172 KB)&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe (13,313 KB)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8354</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8354"/>
				<updated>2009-01-08T20:33:26Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.imagemagick.org ImageMagick] */ changed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.4.8-3-Q16-windows-dll.exe (11 MB)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The ''updated'' file has not been tested yet -- try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8353</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8353"/>
				<updated>2009-01-08T20:28:03Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.winterdrache.de/freeware/png2ico/index.html png2ico] */ format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works.&lt;br /&gt;
&lt;br /&gt;
# Download it from: http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
# And decompress png2ico.exe file to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8352</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8352"/>
				<updated>2009-01-08T20:25:30Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.mktemp.org/ mktemp] */ hilight&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;'''C:\msys\1.0\bin'''&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8351</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8351"/>
				<updated>2009-01-08T20:22:39Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://darwinsys.com/file/ file] */ format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries.&lt;br /&gt;
&lt;br /&gt;
# So we need to download it: http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
# Decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;'''C:\msys\1.0'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8350</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8350"/>
				<updated>2009-01-08T20:21:29Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.mktemp.org/ mktemp] */ format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW.&lt;br /&gt;
&lt;br /&gt;
# Download the MinGW implementation of this tool from: http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
# Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8349</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8349"/>
				<updated>2009-01-08T20:15:31Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/gettext Gettext] */ aded link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package: http://ftp.yz.yamagata-u.ac.jp/pub/cygwin/release/gettext/gettext-devel/&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8348</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8348"/>
				<updated>2009-01-08T20:08:24Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/gettext Gettext] */ fixed link and new-format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.&lt;br /&gt;
&lt;br /&gt;
# You'll need [http://www.cygwin.com/ Cygwin] project's [http://cygwin.com/packages/gettext-devel/ gettext-devel] package.&lt;br /&gt;
# Unpack the archive so that everything is under &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Any binaries that are not from the MinGW project (''or not built specially for MSYS'') cannot be placed in the &amp;lt;code&amp;gt;'''/msys/1.0/bin'''&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;'''/bin'''&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;'''/usr/bin'''&amp;lt;/code&amp;gt; inside MSYS) directory. You then need to:&lt;br /&gt;
# hack the &amp;lt;code&amp;gt;'''/usr/local/bin/autopoint'''&amp;lt;/code&amp;gt; script so that prefix is defined as &amp;lt;code&amp;gt;'''/usr/local'''&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;'''/usr'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
# '''Warning!''' Ugly hack follows&lt;br /&gt;
:: Autopoint expects to find an &amp;lt;code&amp;gt;'''archive.tar.gz'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;'''usr/share'''&amp;lt;/code&amp;gt;, so copy gettext (found on &amp;lt;code&amp;gt;'''usr/share/'''&amp;lt;/code&amp;gt; on the archive) file structure to &amp;lt;code&amp;gt;'''/usr/share'''&amp;lt;/code&amp;gt; also.&lt;br /&gt;
&lt;br /&gt;
'''Update:''' If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8347</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8347"/>
				<updated>2009-01-08T19:35:33Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/libtool/ libtool] */ format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching.&lt;br /&gt;
&lt;br /&gt;
# Download libtool 1.5 from: http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8346</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8346"/>
				<updated>2009-01-08T18:01:19Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* MSYS */ format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''This is a post install process that will try to normalize between'''&amp;lt;br /&amp;gt;'''your MinGW install if any as well as your previous MSYS installs'''&amp;lt;br /&amp;gt;'''if any. I don't have any traps as aborts will not hurt anything.'''&amp;lt;br /&amp;gt;'''Do you wish to continue with the post install? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Do you have MinGW installed? [yn ]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''y'''&amp;lt;/code&amp;gt;&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Please answer following the in the form of c:/foo/bar.'''&amp;lt;br /&amp;gt;'''Where is your MinGW installation?'''&amp;lt;br /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;'''c:/mingw'''&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;'''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching. Download libtool 1.5 from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8345</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8345"/>
				<updated>2009-01-08T17:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gtk.org/ GTK+] */ added possible GTK-Dev links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
''This is a post install process that will try to normalize between''&amp;lt;br /&amp;gt;&lt;br /&gt;
''your MinGW install if any as well as your previous MSYS installs''&amp;lt;br /&amp;gt;&lt;br /&gt;
''if any. I don't have any traps as aborts will not hurt anything.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Do you wish to continue with the post install? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Do you have MinGW installed? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Please answer following the in the form of c:/foo/bar.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Where is your MinGW installation?''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;c:/mingw&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.''&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching. Download libtool 1.5 from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
Though it's not yet tested, you can try either:&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe&lt;br /&gt;
* http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-1.exe&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8344</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8344"/>
				<updated>2009-01-08T17:23:42Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://sourceforge.net/projects/nsis/ NSIS] */ updated link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
''This is a post install process that will try to normalize between''&amp;lt;br /&amp;gt;&lt;br /&gt;
''your MinGW install if any as well as your previous MSYS installs''&amp;lt;br /&amp;gt;&lt;br /&gt;
''if any. I don't have any traps as aborts will not hurt anything.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Do you wish to continue with the post install? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Do you have MinGW installed? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Please answer following the in the form of c:/foo/bar.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Where is your MinGW installation?''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;c:/mingw&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.''&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching. Download libtool 1.5 from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.42-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8343</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8343"/>
				<updated>2009-01-08T17:09:57Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/automake/ automake] */ enlisted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
''This is a post install process that will try to normalize between''&amp;lt;br /&amp;gt;&lt;br /&gt;
''your MinGW install if any as well as your previous MSYS installs''&amp;lt;br /&amp;gt;&lt;br /&gt;
''if any. I don't have any traps as aborts will not hurt anything.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Do you wish to continue with the post install? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Do you have MinGW installed? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Please answer following the in the form of c:/foo/bar.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Where is your MinGW installation?''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;c:/mingw&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.''&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
# Download new automake from: http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching. Download libtool 1.5 from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.28-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8342</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8342"/>
				<updated>2009-01-08T17:07:33Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* bash */ enlisted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
''This is a post install process that will try to normalize between''&amp;lt;br /&amp;gt;&lt;br /&gt;
''your MinGW install if any as well as your previous MSYS installs''&amp;lt;br /&amp;gt;&lt;br /&gt;
''if any. I don't have any traps as aborts will not hurt anything.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Do you wish to continue with the post install? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Do you have MinGW installed? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Please answer following the in the form of c:/foo/bar.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Where is your MinGW installation?''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;c:/mingw&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.''&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to:&lt;br /&gt;
&lt;br /&gt;
# Download 3.1 snapshot: * http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
# Make sure that all msys sessions are closed,&lt;br /&gt;
# then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
Download new automake from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching. Download libtool 1.5 from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.28-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8341</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8341"/>
				<updated>2009-01-08T17:02:02Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* [http://www.gnu.org/software/autoconf/ autoconf] */ changed format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
''This is a post install process that will try to normalize between''&amp;lt;br /&amp;gt;&lt;br /&gt;
''your MinGW install if any as well as your previous MSYS installs''&amp;lt;br /&amp;gt;&lt;br /&gt;
''if any. I don't have any traps as aborts will not hurt anything.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Do you wish to continue with the post install? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Do you have MinGW installed? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Please answer following the in the form of c:/foo/bar.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Where is your MinGW installation?''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;c:/mingw&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.''&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to download 3.1 snapshot:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
&lt;br /&gt;
Make sure that all msys sessions are closed, then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
# Download new autoconf from: http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
# Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
Download new automake from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching. Download libtool 1.5 from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.28-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8340</id>
		<title>Dev:Mingw installation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Mingw_installation&amp;diff=8340"/>
				<updated>2009-01-08T16:56:07Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* bash */ re-worded&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
&lt;br /&gt;
==MinGW==&lt;br /&gt;
First - download [http://www.mingw.org/ MinGW] installer. You may get version 5.1.3 or higher (recommended).&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MinGW-5.1.3.exe (135.5 Kb)&lt;br /&gt;
&lt;br /&gt;
Run MinGW-5.1.3.exe. Select &amp;quot;Download and install&amp;quot;. Choose &amp;quot;Candidate&amp;quot; package, because &amp;quot;Current&amp;quot; is too old. When the installer asks which packages to install, select:&lt;br /&gt;
&lt;br /&gt;
* MinGW base tools&lt;br /&gt;
* g++ Compiler&lt;br /&gt;
* g77 Compiler&lt;br /&gt;
* MinGW Make&lt;br /&gt;
&lt;br /&gt;
Note: you really do need to install Fortran; even though Synfig does not require it, it is required by the autoconf configuration scripts. These are the minimal required package versions which are needed to successfully build win32 synfig:&lt;br /&gt;
&lt;br /&gt;
* mingw-runtime-3.12.tar.gz (429.7 Kb)&lt;br /&gt;
* w32api-3.9.tar.gz (1.6 Mb)&lt;br /&gt;
* binutils-2.17.50-20060824-1.tar.gz (8.9 Mb)&lt;br /&gt;
* gcc-core-3.4.5-20060117-1.tar.gz (3.3 Mb)&lt;br /&gt;
* gcc-g++-3.4.5-20060117-1.tar.gz (4.5 Mb)&lt;br /&gt;
* gcc-g77-3.4.5-20060117-1.tar.gz (2.0 Mb)&lt;br /&gt;
* mingw32-make-3.81-2.tar.gz (95 Kb)&lt;br /&gt;
&lt;br /&gt;
Confirm default installation path &amp;lt;code&amp;gt;C:\MinGW&amp;lt;/code&amp;gt;. If you install MinGW into another directory, synfig compilation may fail.&lt;br /&gt;
&lt;br /&gt;
===MSYS===&lt;br /&gt;
Now download and install MSYS - a shell and tools kit.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe (2.7 Mb)&lt;br /&gt;
&lt;br /&gt;
Run MSYS-1.0.10.exe, confirm default installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Wait until installation completes. Then the installer opens a console and asks some questions.&lt;br /&gt;
&lt;br /&gt;
''This is a post install process that will try to normalize between''&amp;lt;br /&amp;gt;&lt;br /&gt;
''your MinGW install if any as well as your previous MSYS installs''&amp;lt;br /&amp;gt;&lt;br /&gt;
''if any. I don't have any traps as aborts will not hurt anything.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Do you wish to continue with the post install? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Do you have MinGW installed? [yn ]''&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;y&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
''Please answer following the in the form of c:/foo/bar.''&amp;lt;br /&amp;gt;&lt;br /&gt;
''Where is your MinGW installation?''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer &amp;quot;&amp;lt;code&amp;gt;c:/mingw&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The installer script prints some text and finally writes:&lt;br /&gt;
&lt;br /&gt;
''Oh joy, you do not have c:/mingw/bin/make.exe. Keep it that way.''&lt;br /&gt;
&lt;br /&gt;
It's OK. The first phase of installation is completed. Press any key.&lt;br /&gt;
&lt;br /&gt;
===MSYS Developer Toolkit===&lt;br /&gt;
Download MSYS Developer Toolkit, which contain such required tools as [http://www.gnu.org/software/autoconf/ autoconf], [http://www.gnu.org/software/automake/ automake], [http://www.gnu.org/software/libtool/ libtool], [http://www.cpan.org/ perl], pkg-tools, etc. Unfortunately, many tools included in MSYS DTK is too old and we need update it manually later.&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe (9.8 Mb)&lt;br /&gt;
&lt;br /&gt;
Run msysDTK-1.0.1.exe. Confirm your MSYS installation path &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;. Nothing more. Installation will continue without any additional questions.&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
The current bash version is not enough for Synfig building and neither is the new 2.05b version. It contains an error and you need to download 3.1 snapshot:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 (538.2 Kb)&lt;br /&gt;
&lt;br /&gt;
Make sure that all msys sessions are closed, then just decompress bash-3.1 directory from archive into &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to edit &amp;lt;code&amp;gt;'''C:\msys\1.0\msys.bat'''&amp;lt;/code&amp;gt; file. If so, do the following:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Look into the string which contain !! Find !! Replace&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32BGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''Black'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''MINGW32FGCOLOR='''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''{Any Color}'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''White'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;code&amp;gt;'''start rxvt -backspacekey'''&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;'''-fn Courier-12'''&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;'''-fn Courier-16'''&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/autoconf/ autoconf]===&lt;br /&gt;
As written before, some tool are too old for Synfig build. For example, since revision 547 synfig required autoconf and automake, included in MSYS DTK are not acceptible. And we need replace them by new version.&lt;br /&gt;
&lt;br /&gt;
Download new autoconf from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-autoconf-2.59.tar.bz2 (394.7 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/automake/ automake]===&lt;br /&gt;
Download new automake from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-automake-1.8.2.tar.bz2 (304 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[http://www.gnu.org/software/libtool/ libtool]===&lt;br /&gt;
In Synfig Core bootstrap file we can find that libtool prior to version 1.4.2 has an error in libltdl but msys has only 1.4e. I think - will be better to update it instead of patching. Download libtool 1.5 from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/msys-libtool-1.5.tar.bz2 (411.3 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress content of archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gettext Gettext] ===&lt;br /&gt;
Starting from SVN 1143, Synfig offers support for internationalization (languages translations). For this, Gettext is needed.  You'll need the [http://mirror.calvin.edu/cygwin/release/gettext/gettext-devel/ gettext-devel] package from the [http://www.cygwin.com/ Cygwin] project. Unpack the archive so that everything is under /usr/local instead of /usr. Note that any binaries that are not from the MinGW project or built specially for MSYS cannot be placed in the /msys/1.0/bin (/bin and /usr/bin inside MSYS) directory. You then need to hack the /usr/local/bin/autopoint script so that prefix is defined as /usr/local instead of /usr.  Warning - ugly hack follows - Autopoint expects to find an archive.tar.gz in usr/share, so copy gettext (found on usr/share/ on the archive) file structure to /usr/share also.&lt;br /&gt;
&lt;br /&gt;
Update: If you reload the GTK+ devel environment, make sure that you rename the autopoint script and gettext so that they don't conflict with the ones in msys. GTK\bin tends to show up first in the path, and those versions get picked by default.&lt;br /&gt;
&lt;br /&gt;
===[http://www.mktemp.org/ mktemp]===&lt;br /&gt;
Synfig requires mktemp for building, but for some unknown reason this tool is not installed by default in MinGW. Download the MinGW implementation of this tool from:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/mktemp-1.5-MSYS.tar.bz2 (4 Kb)&lt;br /&gt;
&lt;br /&gt;
Decompress mktemp.exe from this archive to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===[http://darwinsys.com/file/ file]===&lt;br /&gt;
libtool requires the &amp;quot;file&amp;quot; tool to check filetypes of libraries. So we need to download it:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/mingw/file-4.16-MSYS-1.0.11-snapshot.tar.bz2 (236.2 Kb)&lt;br /&gt;
&lt;br /&gt;
and decompress content of directory file-4.16 from the archive to &amp;lt;code&amp;gt;C:\msys\1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===cygpath emulation===&lt;br /&gt;
As far as I read, Cygwin only supports paths like /C/somedir/somefile. MinGW can use native windows paths also. Cygwin has a special tool for this (and some another features). MinGW has not. But several Synfig configure scripts require this tool so it will be better to make it. Just save the following text as &amp;lt;code&amp;gt;C:\msys\1.0\bin\cygpath&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# A simple cygpath replacement&lt;br /&gt;
&lt;br /&gt;
until [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
do&lt;br /&gt;
    if [ &amp;quot;${1:0:1}&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
        echo $1 | sed -e 's/\\/\//g' -e 's/^\([a-zA-Z]\):/\/\1/g'&lt;br /&gt;
    fi&lt;br /&gt;
    shift&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://www.winterdrache.de/freeware/png2ico/index.html png2ico]===&lt;br /&gt;
Early version of Synfig used [http://www.kernel.org/pub/software/graphics/pngtoico/ pngtoico] tool to produce icons from png files. Unfortunately this tool is broken now. You can see this for youeself by installing the official build of Synfig Studio 0.61.05. The latest versions of Synfig using another tool: png2ico. This tool is not perfect, but it works. Download it from:&lt;br /&gt;
&lt;br /&gt;
* http://www.winterdrache.de/freeware/png2ico/data/png2ico-win-2002-12-08.zip (89.9 Kb)&lt;br /&gt;
&lt;br /&gt;
And decompress png2ico.exe file to &amp;lt;code&amp;gt;C:\msys\1.0\bin&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==Non MinGW packages==&lt;br /&gt;
===[http://subversion.tigris.org Subversion]===&lt;br /&gt;
Synfig source is stored in a subversion repository. You will need the svn client to get it. Also the svn client is required by the Synfig build scripts, to receive the revision number of the source.&lt;br /&gt;
You can download the Windows subversion package from this page:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;
&lt;br /&gt;
When I wrote this the latest version was 1.4.3:&lt;br /&gt;
&lt;br /&gt;
* http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe (3.58 Mb)&lt;br /&gt;
&lt;br /&gt;
But it is best to get the newest available version.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/nsis/ NSIS]===&lt;br /&gt;
NSIS is the Nullsoft Scriptable Install System, a free and open source installer for WinAmp, a popular windows music player.&lt;br /&gt;
When I wrote this the latest version was 2.27:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.sourceforge.net/nsis/nsis-2.28-setup.exe (1.4 Mb)&lt;br /&gt;
&lt;br /&gt;
You can use this or any newer version.&lt;br /&gt;
&lt;br /&gt;
===[http://www.imagemagick.org ImageMagick]===&lt;br /&gt;
When I wrote this the latest version was 6.3.4-10:&lt;br /&gt;
&lt;br /&gt;
* http://www.imagemagick.org/download/binaries/ImageMagick-6.3.4-10-Q16-windows-dll.exe (6.9 Mb)&lt;br /&gt;
&lt;br /&gt;
[link broken as of 9/9/08 - try here instead http://www.imagemagick.org/download/www/binary-releases.html#windows ]&lt;br /&gt;
&lt;br /&gt;
ImageMagick is required to build Studio, also Core has an ImageMagick render target.&lt;br /&gt;
&lt;br /&gt;
==Gtk+/Gtkmm==&lt;br /&gt;
===[http://www.gtk.org/ GTK+]===&lt;br /&gt;
Go to [http://gladewin32.sourceforge.net/modules/news/ this page] and download the latest GTK+ devel package for windows:&lt;br /&gt;
&lt;br /&gt;
* http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=110 (12 Mb)&lt;br /&gt;
&lt;br /&gt;
^^ These links are broken :( Pixelgeek is researching alternate solutions&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* Gtk+ Runtime (required)&lt;br /&gt;
* Register Environment Variables&lt;br /&gt;
* Devel header/libraries&lt;br /&gt;
&lt;br /&gt;
Confirm registration for environment: ''MSYS (C:\msys\1.0)''.&lt;br /&gt;
&lt;br /&gt;
Install GTK+ to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.gtkmm.org/ GTKmm]===&lt;br /&gt;
Go to [http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ this page] and download the latest GTKmm devel package for Windows:&lt;br /&gt;
&lt;br /&gt;
* http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-devel-2.10.8-1.exe (16.1 Mb)&lt;br /&gt;
&lt;br /&gt;
You need only install the following components:&lt;br /&gt;
&lt;br /&gt;
* libsigc++&lt;br /&gt;
* cairomm&lt;br /&gt;
* glibmm&lt;br /&gt;
* gtkmm&lt;br /&gt;
* libxml++&lt;br /&gt;
&lt;br /&gt;
For each selected component you may keep only&lt;br /&gt;
&lt;br /&gt;
* Runtime&lt;br /&gt;
* Development&lt;br /&gt;
&lt;br /&gt;
subcategories. Install GTKmm to &amp;lt;code&amp;gt;C:\GTK&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Collision Resolution===&lt;br /&gt;
If you have several Gtk-applications (f.e. InkScape), you can receive a strange errors, like &amp;quot;''the procedure entry point XML_SetDoctypeDeclHandler could not be located in the dynamic link library xmlparse.dll''&amp;quot;. Thats mean you have an old version of this library in windows system32 directory, installed by another program. Just search and rename/delete this old library and all will work perfectly again.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8339</id>
		<title>Doc:How Do I</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8339"/>
				<updated>2009-01-08T13:44:16Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* How to change shortcut keys? */ added Mac&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own questions here or [[Contact|contact]] us with them. Or put them on the [[Wiki Wish List]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Insert some text? ==&lt;br /&gt;
&lt;br /&gt;
With recent development versions, there is a text tool. If you are using 0.61.08 or earlier, use right click on your canvas and choose Layer &amp;gt; New &amp;gt; Other &amp;gt; Text.&lt;br /&gt;
&lt;br /&gt;
== How to change shortcut keys? ==&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  '''Ubuntu (and other GNU/Linux):''' /home/{username}/.synfig/&lt;br /&gt;
  '''Mac OS:''' /Users/{username}/Library/Synfig/&lt;br /&gt;
  '''Windows XP:''' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  '''Windows Vista:''' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
&lt;br /&gt;
'''3.''' Change the shorcuts you want, save and close.&lt;br /&gt;
&lt;br /&gt;
== How to have a Flash-like shortcut keys? ==&lt;br /&gt;
'''1.''' Follow the step on [[Tips#How_to_change_shortcut_keys.3F|how to change shortcut keys]], except for step 3.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Copy the code below and paste it on the very last part of '''accelrc''' then save and close it.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-draw&amp;quot; &amp;quot;y&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apply a gradient to an object instead of the entire canvas? ==&lt;br /&gt;
&lt;br /&gt;
# Create the region you want to fill with a gradient, and the gradient layer, if you haven't already.&lt;br /&gt;
# Make sure that the gradient layer is above the region layer in the [[Layers Panel]].&lt;br /&gt;
# Select both layers, right click, and select [[Encapsulate]].&lt;br /&gt;
# Expand the new [[Paste Canvas|Inline Canvas]] layer if it's not already, and select your gradient layer.&lt;br /&gt;
# In the [[Params Panel]] select the [[Blend Method]] parameter, and choose [[Blend Method#Onto|Onto]] from the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
The gradient will clip to the visible area of the region below it inside the [[Paste Canvas|Inline Canvas]]. (and any other layers in that section).&lt;br /&gt;
&lt;br /&gt;
== Show or hide a layer, or fade the effect of a blur? ==&lt;br /&gt;
In the [[Params Panel]], look for an option labeled [[Amount Parameter|Amount]] - this controls how much of the blended result of the layer is composited with the blend of the layers beneath it.&lt;br /&gt;
&lt;br /&gt;
In other words, for a typical layer, this will 'fade it out'. For a [[Blur Layer]] set to &amp;quot;[[Blend Method#Straight|Straight]]&amp;quot;, this will fade ''between'' the blurred version and the unblurred version of the canvas. If you want it to become less blurry, adjust the [[Blur Layer#Size|Blur Layer's 'size' parameter]].&lt;br /&gt;
&lt;br /&gt;
== Fill an outline? ==&lt;br /&gt;
(Requested by [[User:Karlb|Karlb]])&lt;br /&gt;
&lt;br /&gt;
There are several options:&lt;br /&gt;
* The easiest way is to link a new region layer to the outline's shape.&lt;br /&gt;
*# Select the outline you want to fill.&lt;br /&gt;
*# In the Params Panel, right-click the Vertices parameter, select &amp;quot;Export&amp;quot;, enter a name for the shape, and hit return.  This will export the shape of the outline, making it visible in the Children dialog.&lt;br /&gt;
*# In the Children dialog, open the ValueBase Nodes tree and select the name you just saved the shape as.&lt;br /&gt;
*# From the [[Layer Menu]] (either context-click on the [[Layers Panel]] or use the [[Canvas Menu Caret]]) create a new [[Region Layer]] by selecting &amp;quot;New Layer -&amp;gt; Geometry -&amp;gt; Region&amp;quot;. Ensure that the created layer is selected.&lt;br /&gt;
*# In the parameter dialog, right-click the Vertices parameter and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
*# Now, if you don't need exported shape, you can unexport it: right click name of the shape in the Children dialog and click &amp;quot;Unexport&amp;quot;.&lt;br /&gt;
* Similar to the above, but using a different method:&lt;br /&gt;
*# Create a new region layer as above, and leave it selected.&lt;br /&gt;
*# Don't make any changes to the outline layer, which you want to fill! (see the Tier 5 on the [[Linking]] page for details).&lt;br /&gt;
*# Select both layers in the [[Layers Panel]] This will display only the parameters shared by both layers in the [[Params Panel]].&lt;br /&gt;
*# Context-click on the [[Vertices Parameter]], and select [[Linking|Link]].&lt;br /&gt;
*# The [[Region Layer]] will snap to the shape of the [[Outline Layer]].&lt;br /&gt;
* When you create an [[Outline Layer|outline]] with the [[Bline Tool]] that you intend to be a filled area as well, make sure you select the Fill checkbox in the [[Bline Tool#Options|tool options dialog]]. Obviously, this doesn't help much if you realise later that you needed a fill here.&lt;br /&gt;
* If you are using the [[draw tool]], there is a button at the bottom of the [[draw tool#Options|tool options dialog]] labeled &amp;quot;Fill Last Stroke&amp;quot;, which creates a new [[Region Layer]] and links its shape to the previously drawn outline. Unfortunately, it doesn't work as of Synfig Studio v0.61.04.  It has been fixed in the current SVN version of the code.&lt;br /&gt;
* Create a [[Region Layer|region]] with the same number of ducks, and manually link each duck. If you want a region that depends on multiple outline layers, this is really your only choice for now.&lt;br /&gt;
* Use the draw tool, select only the outline to fill, draw a stroke roughly following the outline and make sure you're holding the Control key when you left go of the mouse button at the end of the stroke.  This doesn't work 100% right at the moment.&lt;br /&gt;
&lt;br /&gt;
== Dock windows together? ==&lt;br /&gt;
&lt;br /&gt;
*To dock (join) separate windows into one you must drag the tab ''icons'' for each of the tools into another window. &lt;br /&gt;
*You can create subdivisions inside the windows by dragging the icons into the side tabs (located around the edges, the look like rectangles). &lt;br /&gt;
*Tool tabs inside the window can be arranged by dragging them on top of one another, therefore changing the order.&lt;br /&gt;
*''How Do I min/maximize all Synfig windows on a Windows pc''? There must be an easy way/tool to do this?&lt;br /&gt;
&lt;br /&gt;
== Use an external bitmap? ==&lt;br /&gt;
&lt;br /&gt;
* In the image menu (&amp;gt;) choose file--&amp;gt;import. PNG with alpha channel works fine.&lt;br /&gt;
* To animate it without accidental stretching, right-click on the layer and choose encapsulate. You can then animate the position of the new &amp;quot;Inline Canvas&amp;quot; layer instead of the bbox.&lt;br /&gt;
&lt;br /&gt;
== Use an image as a fill colour? ==&lt;br /&gt;
&lt;br /&gt;
Make a new object (bline, region, squares, circles, polygons all work) &lt;br /&gt;
Import the image you want as the fill colour, and put it on the layer underneith your object. Set the blend method of the image (using the [[Parameters Palette]]) to &amp;quot;onto&amp;quot; or &amp;quot;straightonto&amp;quot;. &lt;br /&gt;
 Encapsulate the object and the fill colour image, otherwise everthing below the image will have the same fill colour.&lt;br /&gt;
Be sure to have a look at what the other composite options do as well.&lt;br /&gt;
&lt;br /&gt;
== Use an external Vector? ==&lt;br /&gt;
&lt;br /&gt;
Synfig doesn't yet support vector import because no-one has written an import process yet. You can use the Svg2synfig [[Converters|converter]], or import it as a bitmap and trace over it in synfig. If you want to implement vector import we would gladly accept your patch.&lt;br /&gt;
&lt;br /&gt;
== Close a bline? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the starting point and then click on loop bline.&lt;br /&gt;
&lt;br /&gt;
Note: It doesn't work unless the initial point has a tangent - ie the first segment is curved. But you can hide tangent ducks (Alt+3, or &amp;quot;Caret Menu &amp;gt; View &amp;gt; Show/Hide Ducks &amp;gt; Show tangent ducks&amp;quot;) and process as described. Don't forget to press (Alt+3) after that to show tangent ducks again.&lt;br /&gt;
&lt;br /&gt;
== How do I transform encapsulated objects? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the Encapsulated object in the Layer dialog and choose &amp;quot;select all child layers&amp;quot;. Then you select the ducks you want to transform (usually just all of them, like for rotating the object), and the rotate or scale tool and do the work.&lt;br /&gt;
&lt;br /&gt;
== Make objects go behind each other, without moving layers? ==&lt;br /&gt;
&lt;br /&gt;
You'll notice each layer you make has a number in the z depth column in the Layers Panel. Say you have 3 layers, they will be numbered 2 (lowest, e.g. a square) 1 (eg a circle) 0 (highest, the default, e.g. a line). In order to make layer 1, the circle, pass behind layer 2, the square, change its z depth to be 3 or more. The z depth of the circle needs to be greater than 2 in order to be behind the square. To make the square on top of everything, you'd change its z depth to -1 or less. &lt;br /&gt;
&lt;br /&gt;
Positive numbers on the z axis go into the screen, and negative numbers go out of the screen, towards the viewer.  &lt;br /&gt;
&lt;br /&gt;
It is possible to animate this effect, but each layer is discrete. They seem to go from 0 to 0.9999.&lt;br /&gt;
&lt;br /&gt;
In addition, objects in encapsulated layers can only go behind other objects in the same encapsulated layer. However an encapsulated layer can go behind another encapsulated layer.&lt;br /&gt;
&lt;br /&gt;
== Copy a complex convert combination between parameters of different layers? ==&lt;br /&gt;
&lt;br /&gt;
For example: you want to copy a complicated [[Convert|conversion]] type that you have in one parameter from a layer, to other parameter (maybe not a root parameter, but a sub-parameter) of other layer. If you [[Export|export]] the complicated conversion type from the original layer and then go to the other layer and select [[Connect]] (right click and the exported and the parameter both selected) then you have the parameter form the second layer to be exactly the same than the original one. But there is a drawback: if you modify one of the sub-parameters in the complicated conversion type (e.g. you change the value of one of them) then automatically the same sub-parameter of the other layer is changed.&lt;br /&gt;
&lt;br /&gt;
How can you copy the conversion but allow modify the sub-parameters independently on each layer? &lt;br /&gt;
&lt;br /&gt;
Once you have achieved the complex conversion type in the original layer, &amp;lt;u&amp;gt;don't export the root parameter!&amp;lt;/u&amp;gt; If you have done yet [[Export|unexport]] it. (Why?. You will understand it later.) Now duplicate the original layer. Then you should obtain the same layer with the same conversion type placed at the same parameter (but not exported). NOW export the parameter from the duplicated layer. Then go to the (sub) parameter of the layer where you want to copy the complex conversion type and Connect it to the just exported parameter form the duplicated layer. Now delete the duplicated layer (!). Then the exported [[ValueNode]] still undeleted and the layer where you wanted to copy the complex convert type have a (sub) parameter connected to it. You can [[Export|unexport]] the ValueNode or not. It is up to you. But notice that the conversion type is already copied into other (sub) parameter of other layer and they are independent as well as you can change one of them (by modifying the sub-parameters) and the other remains untouched.&lt;br /&gt;
&lt;br /&gt;
== Make an existing animation run at half speed? ==&lt;br /&gt;
&lt;br /&gt;
If you have an animation that runs from 0s to 10s and you want it to run at half speed from 0s to 20s, how can you do that?&lt;br /&gt;
&lt;br /&gt;
* Either: encapsulate it, and use the 'time offset' parameter in the encapsulation layer to slow it down:&lt;br /&gt;
** Right-click 'time offset' in the encapsulation layer, convert&amp;gt;linear, rate -0.5 offset 0.  That means offset the time by -0.5 seconds per second - or in other words, run at half speed&lt;br /&gt;
** Or, putting waypoints on the 'time offset' param would work too: 0 at 0s and -10 at 20s.  (The choice between using a linear convert and valuenodes is entirely up to you.  They both achieve the same result in this simple case).&lt;br /&gt;
&lt;br /&gt;
* Or: use a [[Time Loop Layer]].  The first method seems better and more intuitive in this case, but there are ways of getting the same effect from the Time Loop layer.  Perhaps the Time Loop layer is better if the animation doesn't run from 0s, but from some other time.  Anyway: put a Time Loop layer over the layers you wish to slow down, and:&lt;br /&gt;
** Either: set duration to 0, local time to 0, convert-&amp;gt;linear the link time and set rate to 0.5 - this slows the animation down *to* 50% of its original speed;  use bigger rates to slow it down less&lt;br /&gt;
** Or: set duration to 1h (*), link time to 0, convert-&amp;gt;linear the local time and set rate to 0.5 - this slows the animation down *by* 50%; use bigger rates to slow it down more&lt;br /&gt;
(*) if your animation is longer than 1h then set this parameter to EOT (End Of Time) what is the same as Infinite (INF) for a real number but for a time parameter.&lt;br /&gt;
&lt;br /&gt;
== Draw a rectangle with a given width and height? ==&lt;br /&gt;
&lt;br /&gt;
I was asked on IRC how to specify the width and height of a rectangle, rather than having to specify the position of two opposite corners.  Here's how:&lt;br /&gt;
&lt;br /&gt;
* draw a rectangle&lt;br /&gt;
* go to the [[Params Panel]]&lt;br /&gt;
* right-click the 'point 1' parameter and [[Export]]&lt;br /&gt;
* give it a name, &amp;quot;p1&amp;quot; say&lt;br /&gt;
* right-click the 'point 2' parameter and [[Convert]] to [[Convert#Add|Add]]&lt;br /&gt;
* (that's saying that rather than specifying the absolute position of the other point, you want synfig to calculate it for you)&lt;br /&gt;
* (it will make 2 new sub-parameters for 'point 2', and the value used for point 2 will be their sum so we want to tell it to use 'point 1' and your (width,height))&lt;br /&gt;
* open up the sub-parameters of 'point 2' by clicking the triangle to its left&lt;br /&gt;
* go to the [[Children Panel]], open up the values and select the one you exported earlier (p1)&lt;br /&gt;
* right-click the &amp;quot;LHS&amp;quot; parameter in the parameters dialog and [[Connect]] it&lt;br /&gt;
* then enter the width and height you want in the 'RHS' parameter&lt;br /&gt;
&lt;br /&gt;
== Make linked BLine vertices not affected by Rotate layer? ==&lt;br /&gt;
Look at the http://dooglus.rincevent.net/synfig/logs/2008/%23synfig-2008-02-07.log &lt;br /&gt;
See also: [[Convert]].&lt;br /&gt;
&lt;br /&gt;
== Create dashed outlines? ==&lt;br /&gt;
&lt;br /&gt;
If you want to make simple dashed outlines the faster way is proceed like this:&lt;br /&gt;
&lt;br /&gt;
* Create a Curve Gradient and an Outline over the same [[Bline]] using the [[Bline Tool]] options. Check both Outline and Gradient at the [[Tool Options Panel]].&lt;br /&gt;
* Raise up the gradient layer (it is created below the [[Outline Layer]]).&lt;br /&gt;
* Modify the gradient [[Blend Method]] parameter to be Straight Onto. That would render the gradient onto the outline width. Also it wouldn't render the outline, so transparent portions of the gradient are transparent.&lt;br /&gt;
* Check the 'Perpendicular' parameter of the Curve Gradient Layer.&lt;br /&gt;
* [[Convert]] the Gradient Parameter of the Curve Gradient Layer to be one of those types: Stripes or Repeat Gradient.&lt;br /&gt;
* Modify the properties of the sub parameters to achieve the desired effect.&lt;br /&gt;
&lt;br /&gt;
== Render to AVI with higher quality? ==&lt;br /&gt;
&lt;br /&gt;
=== Using raw video ===&lt;br /&gt;
The module used by Synfig to render AVI files is ffmpeg. For the moment there is not interface to control ffmpeg options so you render with a fixed bitrate and quality. If you want the maximum quality in your AVI file, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Render your animation to yuv420p format. To do that select that target at the drop down list of the render dialog and add the &amp;quot;.yuv&amp;quot; extension to your animation name (without quotes).&lt;br /&gt;
* Once rendered (it would produce a huge size yuv file) you can quickly convert it to AVI using this command:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -i animation.yuv -sameq animation.avi&lt;br /&gt;
&lt;br /&gt;
Change the animation file name to your one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rendering trough png sequence. ===&lt;br /&gt;
Render your sif to png sequence &lt;br /&gt;
 mkdir render&lt;br /&gt;
 synfig my_animation.sifz -o render/frame.png&lt;br /&gt;
Then convert it to movie with ffmpeg&lt;br /&gt;
 ffmpeg -r &amp;lt;frame rate&amp;gt; -i render/frame.%04d.png &amp;lt;more settings from ffmpeg's manual&amp;gt; my_animation.mov&lt;br /&gt;
If you need nice open source format without any tweaks you may try ffmpeg2theora:&lt;br /&gt;
 ffmpeg2theora render/frame.%04d.png --inputfps &amp;lt;frame rate&amp;gt; -o my_animation.ogg&lt;br /&gt;
png takes less disk space then yuv.&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 21:38, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Increase performance by optimizing during compilation time? ==&lt;br /&gt;
&lt;br /&gt;
I would like to know what parameters do I need to apply to configure to improve performance. [[User:Genete|Genete]] 11:04, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
To optimize program you should set two environment variables&lt;br /&gt;
 export CFLAGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
First flag will be &amp;quot;-O3&amp;quot; (ow three). &amp;quot;-02&amp;quot; is normal optimization. &amp;quot;-03&amp;quot; is hard optimisation.&lt;br /&gt;
&lt;br /&gt;
Now you should get info about your CPU&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
find your cpu model name&lt;br /&gt;
&lt;br /&gt;
now go to man gcc and searc &amp;quot;-mtune&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find your cpu and add &amp;quot;-mtune=your-cpu -march=your-cpu&amp;quot; to CFLAGS. &lt;br /&gt;
&lt;br /&gt;
Then look at flags from /proc/cpuinfo and search it in gcc manual&lt;br /&gt;
For example I have 3dnow. So I can find &amp;quot;-m3dnow&amp;quot;. For sse I can find &amp;quot;-msse&amp;quot; and &amp;quot;-mfpmath=sse&amp;quot; (can make program unstable). &lt;br /&gt;
&lt;br /&gt;
Finaly you may add &amp;quot;-ffast-math&amp;quot; to disable math checks. But it can make program unstable.&lt;br /&gt;
&lt;br /&gt;
For my AthlonXP I'm using this flags:&lt;br /&gt;
 export CFLAGS=&amp;quot;-O3 -pipe -mtune=athlon-xp -march=athlon-xp -mmmx -msse -m3dnow -mfpmath=sse -ffast-math -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 12:05, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
For my Pentium3 i use the line:&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -pipe -mtune=pentium3 -march=pentium3 -msse -mfpmath=sse -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
The additional switches -mmmx and -ffast-math does seem to '''not''' yield any gain in computing performance! So you could leave them out.&lt;br /&gt;
--[[User:SvH|SvH]] 03:46, 20 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Import a movie into Synfig? ==&lt;br /&gt;
&lt;br /&gt;
To import a movie (image only, not sound) into synfig there is only one option for the moment: Extract an image sequence from the movie and import them using [[ListImporter]]. Before you can load the image sequence you have to extract it from the movie. There are several software to do that but a straight and easy way is to use mplayer:&lt;br /&gt;
&lt;br /&gt;
 mplayer mymovie.avi -vo png:z=1 -ss seconds-start -endpos duration &lt;br /&gt;
&lt;br /&gt;
where ''seconds-start'' are the seconds where you want to extract form and ''duration'' is the number of seconds you want to extract from ''mymovie.avi''. Also the image format specified in this case is png but jpeg or tga can be used also. See [http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html mplayer manual page] for more info.&lt;br /&gt;
&lt;br /&gt;
It would extract a set of files of the selected section of the movie. Each file takes the frame number padded with leading zeros as name.&lt;br /&gt;
&lt;br /&gt;
To put all the filenames into a ''.lst'' file just type this in the folder wehre the files are:&lt;br /&gt;
&lt;br /&gt;
 ls *.png &amp;gt;&amp;gt; mymovie.lst&lt;br /&gt;
&lt;br /&gt;
and add a line specifying the frame rate at the beginning of the text file:&lt;br /&gt;
&lt;br /&gt;
 FPS 25&lt;br /&gt;
&lt;br /&gt;
if the movie was 25 fps.&lt;br /&gt;
&lt;br /&gt;
== Granted Wishes ==&lt;br /&gt;
&lt;br /&gt;
=== MNG target filetype ===&lt;br /&gt;
&lt;br /&gt;
The ability to save as/in the Free/Open MNG (.mng) format [http://libpng.org/pub/mng/]&lt;br /&gt;
&lt;br /&gt;
A partial implementation was committed in SVN r470.&lt;br /&gt;
&lt;br /&gt;
It was implemented in svn 986. See [[Render options]]. --[[User:Genete|Genete]] 13:12, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Optionally display RGB in Hex in Color dialog ===&lt;br /&gt;
&lt;br /&gt;
(3) When colors are quoted as 3 bytes of hexadecimal, you have to convert them to decimal, divide by 255, multiply by 100 to get a number to type into the dialog box.  It's painful to match color schemes for example, with the [http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines Tango Icon Theme style guidelines].  [[User:pxegeek|PXEGeek]] 3/16/07&lt;br /&gt;
&lt;br /&gt;
: Added in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=40dda9d27b5249ee32f62d84c819ff569f078929 svn r354].  You can type 3 or 6 digit hex codes and hit return to use.  3 digit code 36a gives colour 3366aa (each digit is duplicated) -- [[User:Dooglus|dooglus]] 3/18/07&lt;br /&gt;
&lt;br /&gt;
:: Many thanks - already used many times! PXEGeek.&lt;br /&gt;
&lt;br /&gt;
::: Did you notice that you can use single digit codes too?  '5' gives 555555 for instance, giving you 16 equally spaces shades of black through white. -- [[User:Dooglus|dooglus]] 17:51, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Restore Default Layout ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; It's very difficult to put all the dialogs back where they were when you started the program, if you've closed them. In addition, with many programs, if you've done something with your window manager to take a window's position off screen, this command is sometimes the only way to bring them back.&lt;br /&gt;
-&amp;gt; I'd like to second this one - especially with the bug where dialog boxes sometime shrink to nothing or offscreen, and no amount of maximizing or minimizing restores them.  The only solution is to kill the windows, and none of the combo options in the dialog menu match the default configuration.  4/4/07 PXEGeek&lt;br /&gt;
&lt;br /&gt;
: Implemented in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=036306f3c2c265a604971728d50fcce258766552 svn r757] -- [[User:Dooglus|dooglus]] 17:48, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== General outline / Polygon-based Outline / &amp;quot;Set Tangents to Zero&amp;quot; button ===&lt;br /&gt;
(3.5) I'm no artist, thus my primary form of art is stick figures, not to mention, many interesting animations are done in stick-figure style. Stick figures must be perfectly straight to get the effect across, so when I'm making an outline using B-Curves, it is too time consuming to set the tangents to 0 each time. Similarly, outlines of other shapes like squares, circles and so forth would be very useful. Whichever of the above is easiest, please implement right away. --[[User:Dragontamer|Dragontamer]] 02:35, 19 November 2007 (EST)&lt;br /&gt;
: For perfectly straight lines, click without moving the mouse.  You will get a single point with no tangents.  Outline shapes would require some development, particularly with some thought given to backward compatibility.  A workaround you might consider is to create a duplicate shape with a different color and make the top one slightly smaller, so the outline of the one below shows.  [[User:Pxegeek|Pxegeek]] 21:58, 19 November 2007 (EST)&lt;br /&gt;
:: Well, in general, whenever I click on a point to edit it (say, to make it move somewhere in animation mode), there is a decent chance that I click on a tangent instead. Then, if I want to right click the point itself, I usually right click the tangent marker instead. It isn't that big a deal, but simplicity at the cost of power generally is a good thing, especially when it will save a few mouse clicks. &lt;br /&gt;
:: As for the outlines, yeah, I've tried that and it is a decent solution for now, although it is no replacement for a real outline. I am going to also experiment with a clamp to see if I can make the center of the shape have 100% alpha... but I don't have synfig on the computer I'm on right now. Thanks for the tips Pxegeek. --[[User:Dragontamer|Dragontamer]] 01:58, 27 November 2007 (EST)&lt;br /&gt;
::: You can press Alt+3 to hide tangent ducks. --[[User:Zelgadis|Zelgadis]] 09:27, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy &amp;amp; Paste/Image Importing ===&lt;br /&gt;
&lt;br /&gt;
(4) I sometimes make graphics in other programs, or use clipart and other images. Would it be possible for Synfig to be able to import images and/or copy and paste them?--Khlieeq 2007-07-19&lt;br /&gt;
Well, it doesn't support Copy &amp;amp; paste from the clipboard, but you can import images using &amp;quot;New Layer -&amp;gt; Other -&amp;gt; Import&amp;quot;.  This will create an Import layer, for which you can then edit the properties to point to the file containing your image.  PXEGeek.  2007-07-19&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recursive Waypoint Manipulation ===&lt;br /&gt;
&lt;br /&gt;
(4) it is really tiresome to revert changes to waypoints created by manipulating tangent/position ducks or change their interpolation functions. making it possible to right-click-modify the waypoint shown for objects that have some waypoint in a referenced sub-object would be great! -- timonator 2007-06-01&lt;br /&gt;
:You can do it in two ways: changing the interpolation method of the waypoint of paste canvas or editing the keyframe properties. The first allow to modify the waypoints interpolation method for all the waypoints of all the parameters of all the layers that are inside the paste canvas layer. You can right click on the left or right part of the waypoint to edit by a context menu the left or the right interpolation method of the waipoints. The second method would add and modify all the parameters that have any waypoint in the animation. See [[Keyframe]] for more detail. --[[User:Genete|Genete]] 13:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tweening for images developed in other imaging programs ===&lt;br /&gt;
&lt;br /&gt;
It's obvious I am a beginner at image movement, but morphing is not enough: movement across the page is needed.  Thanks for listening. [[User:Comwell@bellsouth.net|Comwell]]&amp;lt;br&amp;gt;&lt;br /&gt;
Imported images can be moved across the page.  They can also be scaled, rotated and deformed.  Was there a specific example you had in mind?  [[User:Pxegeek|pxegeek]]&amp;lt;br&amp;gt;&lt;br /&gt;
:I also would like a way to tween images that have been drawn in other programs. I've had trouble drawing with Bline tool and the drawing tool in Synfig, and I'd rather just draw with a paint brush (like the one in Photoshop). Another problem I have is that Synfig tends to shut down on me every 20 minutes or so, and it's really frustrating even with the auto recover feature, because my sketches disappear. It'd be nice if I'm able to draw all of the keyframes in Photoshop or another image program and import it to Synfig so that Synfig can tween and animate them. Thank you. [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
::You CAN use images, drawn in other programs. Just select &amp;quot;File-&amp;gt;Import&amp;quot; from [[Canvas Menu Caret|canvas menu]] --[[User:Zelgadis|Zelgadis]] 01:39, 24 November 2007 (EST)&lt;br /&gt;
:::But how do you animate using images from other sources? I tried to make 2 keyframes with 2 different images, and it doesn't animate. It just stays as 1 picture for the entire render. The closest thing I saw to importing images from another source into Synfig and having it animate is the Walking Cycle Tutorial, but I would still have to trace the images to make it animate. As I said earlier, I'm not entirely fond of using the draw/Bline tool.  [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
:::: Huina, there's no way to do what you want right now.  Interpolating between two images that are not created in Synfig is well beyond its scope right now.  However, what you could do is take an image and separate elements of the picture onto different layers (e.g. have a picture of an arm and another of the rest of the body) and you can move those around, stretch and rotate them.  (If you're familiar with the work of Terry Gilliam on Monty Python you'll know what I mean) I don't know how feasible it is to implement your request (I suspect some heavy lifting).  We'll keep it on the list, but don't hold your breath.  [[User:Pxegeek|Pxegeek]] 19:57, 24 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: I think, you hardly find any other animation package  which allow you to do such things. You could use a special tools for this task, like xmorph (http://xmorph.sourceforge.net/). But to do the tween between two bitmap images you STILL need to set points. It's not tracing, but very similar. Anyway, result may be poor and I'd better suggest to use technique, described in Walking Cycle Tutorial or which the [[User:Pxegeek|Pxegeek]] meant. --[[User:Zelgadis|Zelgadis]] 02:08, 25 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: There is a technique called &amp;quot;optical flow&amp;quot;.  It takes two input frames and calculates the movement of each individual pixel between the frames, allowing interpolation to be done. Here's an example: http://www.fxguide.com/article333.html.  It doesn't require setting of control points, but it has problems it's own set of problems: http://www.fxguide.com/article333.html. --[[User:Yoyobuae|Yoyobuae]] 13:32, 3 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Auto-link option in [[Draw tool]] ===&lt;br /&gt;
&lt;br /&gt;
(4) so that you can draw a line, and have its endpoint automatically link to a duck - or if Auto-connect is off, you can get a line object linked to the end of another line object. / I missed this too, it even should be like that by default I think. [[User:Maxy|Maxy]] 13:22, 25 Apr 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
: Isn't this done already?  We don't have line objects, but blines are automatically linked to if auto-connect is on.  Am I missing something? -- [[User:Dooglus|dooglus]] 17:29, 27 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::To clarify dooglus' comments - If you have an outline created by the draw tool highlighted in the layer dialog and the &amp;lt;b&amp;gt;auto-extend&amp;lt;/b&amp;gt; checkbox is checked, then you can continue drawing with the draw tool in that same layer.  Blines created with the Bline tool cannot be extended once a different tool or layer is selected.  [[User:Pxegeek|Pxegeek]] 23:46, 12 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::: A line is a line - Synfig doesn't remember whether it was created with the Bline tool or the Draw tool - so you can extend blines created with the bline tool using the draw tool.  Just make sure the line is selected (so that its ducks are visible), not looped (so that it has end points to extend from), enable the draw tool, check 'auto extend' and start drawing at one of its end ducks. [[User:Dooglus|dooglus]] 05:47, 13 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
So this sounds like it is already done.  But on a related note, being able to open an existing bline in the bline tool to extend it would be useful. -- [[User:Dooglus|dooglus]] 04:51, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Layer hide boolean parameter ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; An animatable way to remove a layer from visibility and consideration in tools. And as an option, to hide the layer in the layer list while it is invisible. This crosses over functionality from the [[Amount Parameter]], the Show/Hide checkbox in the [[Layers Panel]], and builds upon it as well, allowing the [[Layers Panel]] to dynamically unclutter. ''(This feature request is a refactoring of the [[Amount Parameter]])''&lt;br /&gt;
: With the addition of the [[Convert#Switch|Switch]] type conversion it is not needed this feature request. You can convert the Amount parameter to a Switch value and give 0 and 1 to the Linked OFF/ON values. --[[User:Genete|Genete]] 13:20, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Riding ducks ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Not chocobos. The ability to link a duck from one shape to an arbitrary position on another path, without creating an extra shape duck on that path.&lt;br /&gt;
:Already done in SVN.[[User:Genete|Genete]] 18:59, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Image filmstrip import ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Allow import of a series of images (TGA, etc) as frames of an animation, on a layer. &amp;lt;br&amp;gt;&lt;br /&gt;
Response - 'lst' files of a list of images can be imported.  I've used this to develop a walk cycle.  See [[Walk_Cycle|Walk cycle]] for an example.  [[user:pxegeek|pxegeek]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
I have seen some interesting methods for helping character design/animation in different 2d/3d software.  Hash's animation master has 'poses' which are extremes of a model, for example smiling and frowning, once you add these extremes ot a set you can use slider to create a pose that somewhere inbetween.  The real power of this is when you have serveral different poses on the same object, a face say,  you can easily come up with new facial expressions. Maybe something similar could be done with synfig using layers and groups, the implementation could something similar to Moho's switch layers. --[[User:Triclops|Triclops]] 09:52, 9 Aug 2006 (PDT)&lt;br /&gt;
: Have you read this tutorial? [[Reuse Animations]]. It is very close to the Switch layer of Moho/Anime Studio. Also You can change the Canvas parameter to any other canvas dynamically in the time line by clicking on it and selecting other exported canvas. Other option is convert the canvas to a Switch type and alternate between two different canvas.  --[[User:Genete|Genete]] 13:26, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== More Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
[[New Animation Tools|Added here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Improved User Experience for First Contact ===&lt;br /&gt;
* Single file download and installer (at least for Windows)&lt;br /&gt;
* Ability to draw the first object directly after starting the application (start with an empty document)&lt;br /&gt;
* Ability to animate the object directly after drawing the first object (new documents have a say 3 seconds timeline)&lt;br /&gt;
In my opinion this is crucial to attract potential users. Because if I see how easy it is to create my first animation I'm going to accept all the bugs and clumsyness. A good example is the Pencil animation software. --[[User:Dmd|Dmd]] 13:50, 26 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
: I've implemented #2 and #3 above in svn r1519 &amp;amp; 1520.  If no files are specified to be opened when running studio, it'll make a new one.  It won't pop up the canvas properties dialog when making new canvases by default.  And the default end time is 5s (3s is small enough to cause the time slider to show &amp;quot;1s 12f&amp;quot;, whereas 5s looks cleaner). -- [[User:Dooglus|dooglus]] 04:00, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Automatic attach and manipulate a Vertex to a Bline ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Inverse Duck Manipulation|this]] page to understand what we want. --[[User:Genete|Genete]] 12:43, 3 March 2008 (EST).&lt;br /&gt;
:Already done in SVN. [[User:Genete|Genete]] 19:00, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle visible ducks ===&lt;br /&gt;
(3) So pressing, say, tab while editing a Bline toggles which vertices/ducks are visible - so we can easily move the actual vertices around without having the view cluttered by tangeants (and also make it easier to select 'Loop' rather than 'Split Tangeants' when creating the thing.)&lt;br /&gt;
&lt;br /&gt;
Given that extra ducks such as the width ones listed above may be added, this might become more and more necessary. If too many different sets are added for toggling to be feasible, each visibility for each set can be hotkeyed.&lt;br /&gt;
&lt;br /&gt;
: Synfig already have hotkeys to toggle visibility of the ducks. See [[Keyboard_Shortcuts#Hotkeys_Visual_Guide]]. --[[User:Zelgadis|Zelgadis]] 00:39, 22 April 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8338</id>
		<title>Keyboard Shortcuts (Flash)</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8338"/>
				<updated>2009-01-08T05:12:16Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* How to have a Flash-like shortcut keys in Synfig? */ added Draw&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== How to have a Flash-like shortcut keys in Synfig? ===&lt;br /&gt;
This is how you can make a Flash-like shortcut keys in Synfig.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' You must have Synfig installed and run at least once. :D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  ''Ubuntu GNU/Linux:'' /home/{username}/.synfig/&lt;br /&gt;
  ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
&lt;br /&gt;
'''3.''' Copy the code below and paste it on the very last part of '''accelrc'''.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-draw&amp;quot; &amp;quot;y&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''4.''' Save it, and run Synfig to test and enjoy!&lt;br /&gt;
&lt;br /&gt;
=== How to restore to default settings? ===&lt;br /&gt;
Simply, delete '''accelrc''' and run Synfig.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8337</id>
		<title>Doc:How Do I</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8337"/>
				<updated>2009-01-08T05:10:13Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* How to have a Flash-like shortcut keys? */ added Draw&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own questions here or [[Contact|contact]] us with them. Or put them on the [[Wiki Wish List]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Insert some text? ==&lt;br /&gt;
&lt;br /&gt;
With recent development versions, there is a text tool. If you are using 0.61.08 or earlier, use right click on your canvas and choose Layer &amp;gt; New &amp;gt; Other &amp;gt; Text.&lt;br /&gt;
&lt;br /&gt;
== How to change shortcut keys? ==&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
&lt;br /&gt;
'''3.''' Change the shorcuts you want, save and close.&lt;br /&gt;
&lt;br /&gt;
== How to have a Flash-like shortcut keys? ==&lt;br /&gt;
'''1.''' Follow the step on [[Tips#How_to_change_shortcut_keys.3F|how to change shortcut keys]], except for step 3.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Copy the code below and paste it on the very last part of '''accelrc''' then save and close it.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-draw&amp;quot; &amp;quot;y&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apply a gradient to an object instead of the entire canvas? ==&lt;br /&gt;
&lt;br /&gt;
# Create the region you want to fill with a gradient, and the gradient layer, if you haven't already.&lt;br /&gt;
# Make sure that the gradient layer is above the region layer in the [[Layers Panel]].&lt;br /&gt;
# Select both layers, right click, and select [[Encapsulate]].&lt;br /&gt;
# Expand the new [[Paste Canvas|Inline Canvas]] layer if it's not already, and select your gradient layer.&lt;br /&gt;
# In the [[Params Panel]] select the [[Blend Method]] parameter, and choose [[Blend Method#Onto|Onto]] from the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
The gradient will clip to the visible area of the region below it inside the [[Paste Canvas|Inline Canvas]]. (and any other layers in that section).&lt;br /&gt;
&lt;br /&gt;
== Show or hide a layer, or fade the effect of a blur? ==&lt;br /&gt;
In the [[Params Panel]], look for an option labeled [[Amount Parameter|Amount]] - this controls how much of the blended result of the layer is composited with the blend of the layers beneath it.&lt;br /&gt;
&lt;br /&gt;
In other words, for a typical layer, this will 'fade it out'. For a [[Blur Layer]] set to &amp;quot;[[Blend Method#Straight|Straight]]&amp;quot;, this will fade ''between'' the blurred version and the unblurred version of the canvas. If you want it to become less blurry, adjust the [[Blur Layer#Size|Blur Layer's 'size' parameter]].&lt;br /&gt;
&lt;br /&gt;
== Fill an outline? ==&lt;br /&gt;
(Requested by [[User:Karlb|Karlb]])&lt;br /&gt;
&lt;br /&gt;
There are several options:&lt;br /&gt;
* The easiest way is to link a new region layer to the outline's shape.&lt;br /&gt;
*# Select the outline you want to fill.&lt;br /&gt;
*# In the Params Panel, right-click the Vertices parameter, select &amp;quot;Export&amp;quot;, enter a name for the shape, and hit return.  This will export the shape of the outline, making it visible in the Children dialog.&lt;br /&gt;
*# In the Children dialog, open the ValueBase Nodes tree and select the name you just saved the shape as.&lt;br /&gt;
*# From the [[Layer Menu]] (either context-click on the [[Layers Panel]] or use the [[Canvas Menu Caret]]) create a new [[Region Layer]] by selecting &amp;quot;New Layer -&amp;gt; Geometry -&amp;gt; Region&amp;quot;. Ensure that the created layer is selected.&lt;br /&gt;
*# In the parameter dialog, right-click the Vertices parameter and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
*# Now, if you don't need exported shape, you can unexport it: right click name of the shape in the Children dialog and click &amp;quot;Unexport&amp;quot;.&lt;br /&gt;
* Similar to the above, but using a different method:&lt;br /&gt;
*# Create a new region layer as above, and leave it selected.&lt;br /&gt;
*# Don't make any changes to the outline layer, which you want to fill! (see the Tier 5 on the [[Linking]] page for details).&lt;br /&gt;
*# Select both layers in the [[Layers Panel]] This will display only the parameters shared by both layers in the [[Params Panel]].&lt;br /&gt;
*# Context-click on the [[Vertices Parameter]], and select [[Linking|Link]].&lt;br /&gt;
*# The [[Region Layer]] will snap to the shape of the [[Outline Layer]].&lt;br /&gt;
* When you create an [[Outline Layer|outline]] with the [[Bline Tool]] that you intend to be a filled area as well, make sure you select the Fill checkbox in the [[Bline Tool#Options|tool options dialog]]. Obviously, this doesn't help much if you realise later that you needed a fill here.&lt;br /&gt;
* If you are using the [[draw tool]], there is a button at the bottom of the [[draw tool#Options|tool options dialog]] labeled &amp;quot;Fill Last Stroke&amp;quot;, which creates a new [[Region Layer]] and links its shape to the previously drawn outline. Unfortunately, it doesn't work as of Synfig Studio v0.61.04.  It has been fixed in the current SVN version of the code.&lt;br /&gt;
* Create a [[Region Layer|region]] with the same number of ducks, and manually link each duck. If you want a region that depends on multiple outline layers, this is really your only choice for now.&lt;br /&gt;
* Use the draw tool, select only the outline to fill, draw a stroke roughly following the outline and make sure you're holding the Control key when you left go of the mouse button at the end of the stroke.  This doesn't work 100% right at the moment.&lt;br /&gt;
&lt;br /&gt;
== Dock windows together? ==&lt;br /&gt;
&lt;br /&gt;
*To dock (join) separate windows into one you must drag the tab ''icons'' for each of the tools into another window. &lt;br /&gt;
*You can create subdivisions inside the windows by dragging the icons into the side tabs (located around the edges, the look like rectangles). &lt;br /&gt;
*Tool tabs inside the window can be arranged by dragging them on top of one another, therefore changing the order.&lt;br /&gt;
*''How Do I min/maximize all Synfig windows on a Windows pc''? There must be an easy way/tool to do this?&lt;br /&gt;
&lt;br /&gt;
== Use an external bitmap? ==&lt;br /&gt;
&lt;br /&gt;
* In the image menu (&amp;gt;) choose file--&amp;gt;import. PNG with alpha channel works fine.&lt;br /&gt;
* To animate it without accidental stretching, right-click on the layer and choose encapsulate. You can then animate the position of the new &amp;quot;Inline Canvas&amp;quot; layer instead of the bbox.&lt;br /&gt;
&lt;br /&gt;
== Use an image as a fill colour? ==&lt;br /&gt;
&lt;br /&gt;
Make a new object (bline, region, squares, circles, polygons all work) &lt;br /&gt;
Import the image you want as the fill colour, and put it on the layer underneith your object. Set the blend method of the image (using the [[Parameters Palette]]) to &amp;quot;onto&amp;quot; or &amp;quot;straightonto&amp;quot;. &lt;br /&gt;
 Encapsulate the object and the fill colour image, otherwise everthing below the image will have the same fill colour.&lt;br /&gt;
Be sure to have a look at what the other composite options do as well.&lt;br /&gt;
&lt;br /&gt;
== Use an external Vector? ==&lt;br /&gt;
&lt;br /&gt;
Synfig doesn't yet support vector import because no-one has written an import process yet. You can use the Svg2synfig [[Converters|converter]], or import it as a bitmap and trace over it in synfig. If you want to implement vector import we would gladly accept your patch.&lt;br /&gt;
&lt;br /&gt;
== Close a bline? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the starting point and then click on loop bline.&lt;br /&gt;
&lt;br /&gt;
Note: It doesn't work unless the initial point has a tangent - ie the first segment is curved. But you can hide tangent ducks (Alt+3, or &amp;quot;Caret Menu &amp;gt; View &amp;gt; Show/Hide Ducks &amp;gt; Show tangent ducks&amp;quot;) and process as described. Don't forget to press (Alt+3) after that to show tangent ducks again.&lt;br /&gt;
&lt;br /&gt;
== How do I transform encapsulated objects? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the Encapsulated object in the Layer dialog and choose &amp;quot;select all child layers&amp;quot;. Then you select the ducks you want to transform (usually just all of them, like for rotating the object), and the rotate or scale tool and do the work.&lt;br /&gt;
&lt;br /&gt;
== Make objects go behind each other, without moving layers? ==&lt;br /&gt;
&lt;br /&gt;
You'll notice each layer you make has a number in the z depth column in the Layers Panel. Say you have 3 layers, they will be numbered 2 (lowest, e.g. a square) 1 (eg a circle) 0 (highest, the default, e.g. a line). In order to make layer 1, the circle, pass behind layer 2, the square, change its z depth to be 3 or more. The z depth of the circle needs to be greater than 2 in order to be behind the square. To make the square on top of everything, you'd change its z depth to -1 or less. &lt;br /&gt;
&lt;br /&gt;
Positive numbers on the z axis go into the screen, and negative numbers go out of the screen, towards the viewer.  &lt;br /&gt;
&lt;br /&gt;
It is possible to animate this effect, but each layer is discrete. They seem to go from 0 to 0.9999.&lt;br /&gt;
&lt;br /&gt;
In addition, objects in encapsulated layers can only go behind other objects in the same encapsulated layer. However an encapsulated layer can go behind another encapsulated layer.&lt;br /&gt;
&lt;br /&gt;
== Copy a complex convert combination between parameters of different layers? ==&lt;br /&gt;
&lt;br /&gt;
For example: you want to copy a complicated [[Convert|conversion]] type that you have in one parameter from a layer, to other parameter (maybe not a root parameter, but a sub-parameter) of other layer. If you [[Export|export]] the complicated conversion type from the original layer and then go to the other layer and select [[Connect]] (right click and the exported and the parameter both selected) then you have the parameter form the second layer to be exactly the same than the original one. But there is a drawback: if you modify one of the sub-parameters in the complicated conversion type (e.g. you change the value of one of them) then automatically the same sub-parameter of the other layer is changed.&lt;br /&gt;
&lt;br /&gt;
How can you copy the conversion but allow modify the sub-parameters independently on each layer? &lt;br /&gt;
&lt;br /&gt;
Once you have achieved the complex conversion type in the original layer, &amp;lt;u&amp;gt;don't export the root parameter!&amp;lt;/u&amp;gt; If you have done yet [[Export|unexport]] it. (Why?. You will understand it later.) Now duplicate the original layer. Then you should obtain the same layer with the same conversion type placed at the same parameter (but not exported). NOW export the parameter from the duplicated layer. Then go to the (sub) parameter of the layer where you want to copy the complex conversion type and Connect it to the just exported parameter form the duplicated layer. Now delete the duplicated layer (!). Then the exported [[ValueNode]] still undeleted and the layer where you wanted to copy the complex convert type have a (sub) parameter connected to it. You can [[Export|unexport]] the ValueNode or not. It is up to you. But notice that the conversion type is already copied into other (sub) parameter of other layer and they are independent as well as you can change one of them (by modifying the sub-parameters) and the other remains untouched.&lt;br /&gt;
&lt;br /&gt;
== Make an existing animation run at half speed? ==&lt;br /&gt;
&lt;br /&gt;
If you have an animation that runs from 0s to 10s and you want it to run at half speed from 0s to 20s, how can you do that?&lt;br /&gt;
&lt;br /&gt;
* Either: encapsulate it, and use the 'time offset' parameter in the encapsulation layer to slow it down:&lt;br /&gt;
** Right-click 'time offset' in the encapsulation layer, convert&amp;gt;linear, rate -0.5 offset 0.  That means offset the time by -0.5 seconds per second - or in other words, run at half speed&lt;br /&gt;
** Or, putting waypoints on the 'time offset' param would work too: 0 at 0s and -10 at 20s.  (The choice between using a linear convert and valuenodes is entirely up to you.  They both achieve the same result in this simple case).&lt;br /&gt;
&lt;br /&gt;
* Or: use a [[Time Loop Layer]].  The first method seems better and more intuitive in this case, but there are ways of getting the same effect from the Time Loop layer.  Perhaps the Time Loop layer is better if the animation doesn't run from 0s, but from some other time.  Anyway: put a Time Loop layer over the layers you wish to slow down, and:&lt;br /&gt;
** Either: set duration to 0, local time to 0, convert-&amp;gt;linear the link time and set rate to 0.5 - this slows the animation down *to* 50% of its original speed;  use bigger rates to slow it down less&lt;br /&gt;
** Or: set duration to 1h (*), link time to 0, convert-&amp;gt;linear the local time and set rate to 0.5 - this slows the animation down *by* 50%; use bigger rates to slow it down more&lt;br /&gt;
(*) if your animation is longer than 1h then set this parameter to EOT (End Of Time) what is the same as Infinite (INF) for a real number but for a time parameter.&lt;br /&gt;
&lt;br /&gt;
== Draw a rectangle with a given width and height? ==&lt;br /&gt;
&lt;br /&gt;
I was asked on IRC how to specify the width and height of a rectangle, rather than having to specify the position of two opposite corners.  Here's how:&lt;br /&gt;
&lt;br /&gt;
* draw a rectangle&lt;br /&gt;
* go to the [[Params Panel]]&lt;br /&gt;
* right-click the 'point 1' parameter and [[Export]]&lt;br /&gt;
* give it a name, &amp;quot;p1&amp;quot; say&lt;br /&gt;
* right-click the 'point 2' parameter and [[Convert]] to [[Convert#Add|Add]]&lt;br /&gt;
* (that's saying that rather than specifying the absolute position of the other point, you want synfig to calculate it for you)&lt;br /&gt;
* (it will make 2 new sub-parameters for 'point 2', and the value used for point 2 will be their sum so we want to tell it to use 'point 1' and your (width,height))&lt;br /&gt;
* open up the sub-parameters of 'point 2' by clicking the triangle to its left&lt;br /&gt;
* go to the [[Children Panel]], open up the values and select the one you exported earlier (p1)&lt;br /&gt;
* right-click the &amp;quot;LHS&amp;quot; parameter in the parameters dialog and [[Connect]] it&lt;br /&gt;
* then enter the width and height you want in the 'RHS' parameter&lt;br /&gt;
&lt;br /&gt;
== Make linked BLine vertices not affected by Rotate layer? ==&lt;br /&gt;
Look at the http://dooglus.rincevent.net/synfig/logs/2008/%23synfig-2008-02-07.log &lt;br /&gt;
See also: [[Convert]].&lt;br /&gt;
&lt;br /&gt;
== Create dashed outlines? ==&lt;br /&gt;
&lt;br /&gt;
If you want to make simple dashed outlines the faster way is proceed like this:&lt;br /&gt;
&lt;br /&gt;
* Create a Curve Gradient and an Outline over the same [[Bline]] using the [[Bline Tool]] options. Check both Outline and Gradient at the [[Tool Options Panel]].&lt;br /&gt;
* Raise up the gradient layer (it is created below the [[Outline Layer]]).&lt;br /&gt;
* Modify the gradient [[Blend Method]] parameter to be Straight Onto. That would render the gradient onto the outline width. Also it wouldn't render the outline, so transparent portions of the gradient are transparent.&lt;br /&gt;
* Check the 'Perpendicular' parameter of the Curve Gradient Layer.&lt;br /&gt;
* [[Convert]] the Gradient Parameter of the Curve Gradient Layer to be one of those types: Stripes or Repeat Gradient.&lt;br /&gt;
* Modify the properties of the sub parameters to achieve the desired effect.&lt;br /&gt;
&lt;br /&gt;
== Render to AVI with higher quality? ==&lt;br /&gt;
&lt;br /&gt;
=== Using raw video ===&lt;br /&gt;
The module used by Synfig to render AVI files is ffmpeg. For the moment there is not interface to control ffmpeg options so you render with a fixed bitrate and quality. If you want the maximum quality in your AVI file, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Render your animation to yuv420p format. To do that select that target at the drop down list of the render dialog and add the &amp;quot;.yuv&amp;quot; extension to your animation name (without quotes).&lt;br /&gt;
* Once rendered (it would produce a huge size yuv file) you can quickly convert it to AVI using this command:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -i animation.yuv -sameq animation.avi&lt;br /&gt;
&lt;br /&gt;
Change the animation file name to your one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rendering trough png sequence. ===&lt;br /&gt;
Render your sif to png sequence &lt;br /&gt;
 mkdir render&lt;br /&gt;
 synfig my_animation.sifz -o render/frame.png&lt;br /&gt;
Then convert it to movie with ffmpeg&lt;br /&gt;
 ffmpeg -r &amp;lt;frame rate&amp;gt; -i render/frame.%04d.png &amp;lt;more settings from ffmpeg's manual&amp;gt; my_animation.mov&lt;br /&gt;
If you need nice open source format without any tweaks you may try ffmpeg2theora:&lt;br /&gt;
 ffmpeg2theora render/frame.%04d.png --inputfps &amp;lt;frame rate&amp;gt; -o my_animation.ogg&lt;br /&gt;
png takes less disk space then yuv.&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 21:38, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Increase performance by optimizing during compilation time? ==&lt;br /&gt;
&lt;br /&gt;
I would like to know what parameters do I need to apply to configure to improve performance. [[User:Genete|Genete]] 11:04, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
To optimize program you should set two environment variables&lt;br /&gt;
 export CFLAGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
First flag will be &amp;quot;-O3&amp;quot; (ow three). &amp;quot;-02&amp;quot; is normal optimization. &amp;quot;-03&amp;quot; is hard optimisation.&lt;br /&gt;
&lt;br /&gt;
Now you should get info about your CPU&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
find your cpu model name&lt;br /&gt;
&lt;br /&gt;
now go to man gcc and searc &amp;quot;-mtune&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find your cpu and add &amp;quot;-mtune=your-cpu -march=your-cpu&amp;quot; to CFLAGS. &lt;br /&gt;
&lt;br /&gt;
Then look at flags from /proc/cpuinfo and search it in gcc manual&lt;br /&gt;
For example I have 3dnow. So I can find &amp;quot;-m3dnow&amp;quot;. For sse I can find &amp;quot;-msse&amp;quot; and &amp;quot;-mfpmath=sse&amp;quot; (can make program unstable). &lt;br /&gt;
&lt;br /&gt;
Finaly you may add &amp;quot;-ffast-math&amp;quot; to disable math checks. But it can make program unstable.&lt;br /&gt;
&lt;br /&gt;
For my AthlonXP I'm using this flags:&lt;br /&gt;
 export CFLAGS=&amp;quot;-O3 -pipe -mtune=athlon-xp -march=athlon-xp -mmmx -msse -m3dnow -mfpmath=sse -ffast-math -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 12:05, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
For my Pentium3 i use the line:&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -pipe -mtune=pentium3 -march=pentium3 -msse -mfpmath=sse -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
The additional switches -mmmx and -ffast-math does seem to '''not''' yield any gain in computing performance! So you could leave them out.&lt;br /&gt;
--[[User:SvH|SvH]] 03:46, 20 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Import a movie into Synfig? ==&lt;br /&gt;
&lt;br /&gt;
To import a movie (image only, not sound) into synfig there is only one option for the moment: Extract an image sequence from the movie and import them using [[ListImporter]]. Before you can load the image sequence you have to extract it from the movie. There are several software to do that but a straight and easy way is to use mplayer:&lt;br /&gt;
&lt;br /&gt;
 mplayer mymovie.avi -vo png:z=1 -ss seconds-start -endpos duration &lt;br /&gt;
&lt;br /&gt;
where ''seconds-start'' are the seconds where you want to extract form and ''duration'' is the number of seconds you want to extract from ''mymovie.avi''. Also the image format specified in this case is png but jpeg or tga can be used also. See [http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html mplayer manual page] for more info.&lt;br /&gt;
&lt;br /&gt;
It would extract a set of files of the selected section of the movie. Each file takes the frame number padded with leading zeros as name.&lt;br /&gt;
&lt;br /&gt;
To put all the filenames into a ''.lst'' file just type this in the folder wehre the files are:&lt;br /&gt;
&lt;br /&gt;
 ls *.png &amp;gt;&amp;gt; mymovie.lst&lt;br /&gt;
&lt;br /&gt;
and add a line specifying the frame rate at the beginning of the text file:&lt;br /&gt;
&lt;br /&gt;
 FPS 25&lt;br /&gt;
&lt;br /&gt;
if the movie was 25 fps.&lt;br /&gt;
&lt;br /&gt;
== Granted Wishes ==&lt;br /&gt;
&lt;br /&gt;
=== MNG target filetype ===&lt;br /&gt;
&lt;br /&gt;
The ability to save as/in the Free/Open MNG (.mng) format [http://libpng.org/pub/mng/]&lt;br /&gt;
&lt;br /&gt;
A partial implementation was committed in SVN r470.&lt;br /&gt;
&lt;br /&gt;
It was implemented in svn 986. See [[Render options]]. --[[User:Genete|Genete]] 13:12, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Optionally display RGB in Hex in Color dialog ===&lt;br /&gt;
&lt;br /&gt;
(3) When colors are quoted as 3 bytes of hexadecimal, you have to convert them to decimal, divide by 255, multiply by 100 to get a number to type into the dialog box.  It's painful to match color schemes for example, with the [http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines Tango Icon Theme style guidelines].  [[User:pxegeek|PXEGeek]] 3/16/07&lt;br /&gt;
&lt;br /&gt;
: Added in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=40dda9d27b5249ee32f62d84c819ff569f078929 svn r354].  You can type 3 or 6 digit hex codes and hit return to use.  3 digit code 36a gives colour 3366aa (each digit is duplicated) -- [[User:Dooglus|dooglus]] 3/18/07&lt;br /&gt;
&lt;br /&gt;
:: Many thanks - already used many times! PXEGeek.&lt;br /&gt;
&lt;br /&gt;
::: Did you notice that you can use single digit codes too?  '5' gives 555555 for instance, giving you 16 equally spaces shades of black through white. -- [[User:Dooglus|dooglus]] 17:51, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Restore Default Layout ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; It's very difficult to put all the dialogs back where they were when you started the program, if you've closed them. In addition, with many programs, if you've done something with your window manager to take a window's position off screen, this command is sometimes the only way to bring them back.&lt;br /&gt;
-&amp;gt; I'd like to second this one - especially with the bug where dialog boxes sometime shrink to nothing or offscreen, and no amount of maximizing or minimizing restores them.  The only solution is to kill the windows, and none of the combo options in the dialog menu match the default configuration.  4/4/07 PXEGeek&lt;br /&gt;
&lt;br /&gt;
: Implemented in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=036306f3c2c265a604971728d50fcce258766552 svn r757] -- [[User:Dooglus|dooglus]] 17:48, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== General outline / Polygon-based Outline / &amp;quot;Set Tangents to Zero&amp;quot; button ===&lt;br /&gt;
(3.5) I'm no artist, thus my primary form of art is stick figures, not to mention, many interesting animations are done in stick-figure style. Stick figures must be perfectly straight to get the effect across, so when I'm making an outline using B-Curves, it is too time consuming to set the tangents to 0 each time. Similarly, outlines of other shapes like squares, circles and so forth would be very useful. Whichever of the above is easiest, please implement right away. --[[User:Dragontamer|Dragontamer]] 02:35, 19 November 2007 (EST)&lt;br /&gt;
: For perfectly straight lines, click without moving the mouse.  You will get a single point with no tangents.  Outline shapes would require some development, particularly with some thought given to backward compatibility.  A workaround you might consider is to create a duplicate shape with a different color and make the top one slightly smaller, so the outline of the one below shows.  [[User:Pxegeek|Pxegeek]] 21:58, 19 November 2007 (EST)&lt;br /&gt;
:: Well, in general, whenever I click on a point to edit it (say, to make it move somewhere in animation mode), there is a decent chance that I click on a tangent instead. Then, if I want to right click the point itself, I usually right click the tangent marker instead. It isn't that big a deal, but simplicity at the cost of power generally is a good thing, especially when it will save a few mouse clicks. &lt;br /&gt;
:: As for the outlines, yeah, I've tried that and it is a decent solution for now, although it is no replacement for a real outline. I am going to also experiment with a clamp to see if I can make the center of the shape have 100% alpha... but I don't have synfig on the computer I'm on right now. Thanks for the tips Pxegeek. --[[User:Dragontamer|Dragontamer]] 01:58, 27 November 2007 (EST)&lt;br /&gt;
::: You can press Alt+3 to hide tangent ducks. --[[User:Zelgadis|Zelgadis]] 09:27, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy &amp;amp; Paste/Image Importing ===&lt;br /&gt;
&lt;br /&gt;
(4) I sometimes make graphics in other programs, or use clipart and other images. Would it be possible for Synfig to be able to import images and/or copy and paste them?--Khlieeq 2007-07-19&lt;br /&gt;
Well, it doesn't support Copy &amp;amp; paste from the clipboard, but you can import images using &amp;quot;New Layer -&amp;gt; Other -&amp;gt; Import&amp;quot;.  This will create an Import layer, for which you can then edit the properties to point to the file containing your image.  PXEGeek.  2007-07-19&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recursive Waypoint Manipulation ===&lt;br /&gt;
&lt;br /&gt;
(4) it is really tiresome to revert changes to waypoints created by manipulating tangent/position ducks or change their interpolation functions. making it possible to right-click-modify the waypoint shown for objects that have some waypoint in a referenced sub-object would be great! -- timonator 2007-06-01&lt;br /&gt;
:You can do it in two ways: changing the interpolation method of the waypoint of paste canvas or editing the keyframe properties. The first allow to modify the waypoints interpolation method for all the waypoints of all the parameters of all the layers that are inside the paste canvas layer. You can right click on the left or right part of the waypoint to edit by a context menu the left or the right interpolation method of the waipoints. The second method would add and modify all the parameters that have any waypoint in the animation. See [[Keyframe]] for more detail. --[[User:Genete|Genete]] 13:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tweening for images developed in other imaging programs ===&lt;br /&gt;
&lt;br /&gt;
It's obvious I am a beginner at image movement, but morphing is not enough: movement across the page is needed.  Thanks for listening. [[User:Comwell@bellsouth.net|Comwell]]&amp;lt;br&amp;gt;&lt;br /&gt;
Imported images can be moved across the page.  They can also be scaled, rotated and deformed.  Was there a specific example you had in mind?  [[User:Pxegeek|pxegeek]]&amp;lt;br&amp;gt;&lt;br /&gt;
:I also would like a way to tween images that have been drawn in other programs. I've had trouble drawing with Bline tool and the drawing tool in Synfig, and I'd rather just draw with a paint brush (like the one in Photoshop). Another problem I have is that Synfig tends to shut down on me every 20 minutes or so, and it's really frustrating even with the auto recover feature, because my sketches disappear. It'd be nice if I'm able to draw all of the keyframes in Photoshop or another image program and import it to Synfig so that Synfig can tween and animate them. Thank you. [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
::You CAN use images, drawn in other programs. Just select &amp;quot;File-&amp;gt;Import&amp;quot; from [[Canvas Menu Caret|canvas menu]] --[[User:Zelgadis|Zelgadis]] 01:39, 24 November 2007 (EST)&lt;br /&gt;
:::But how do you animate using images from other sources? I tried to make 2 keyframes with 2 different images, and it doesn't animate. It just stays as 1 picture for the entire render. The closest thing I saw to importing images from another source into Synfig and having it animate is the Walking Cycle Tutorial, but I would still have to trace the images to make it animate. As I said earlier, I'm not entirely fond of using the draw/Bline tool.  [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
:::: Huina, there's no way to do what you want right now.  Interpolating between two images that are not created in Synfig is well beyond its scope right now.  However, what you could do is take an image and separate elements of the picture onto different layers (e.g. have a picture of an arm and another of the rest of the body) and you can move those around, stretch and rotate them.  (If you're familiar with the work of Terry Gilliam on Monty Python you'll know what I mean) I don't know how feasible it is to implement your request (I suspect some heavy lifting).  We'll keep it on the list, but don't hold your breath.  [[User:Pxegeek|Pxegeek]] 19:57, 24 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: I think, you hardly find any other animation package  which allow you to do such things. You could use a special tools for this task, like xmorph (http://xmorph.sourceforge.net/). But to do the tween between two bitmap images you STILL need to set points. It's not tracing, but very similar. Anyway, result may be poor and I'd better suggest to use technique, described in Walking Cycle Tutorial or which the [[User:Pxegeek|Pxegeek]] meant. --[[User:Zelgadis|Zelgadis]] 02:08, 25 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: There is a technique called &amp;quot;optical flow&amp;quot;.  It takes two input frames and calculates the movement of each individual pixel between the frames, allowing interpolation to be done. Here's an example: http://www.fxguide.com/article333.html.  It doesn't require setting of control points, but it has problems it's own set of problems: http://www.fxguide.com/article333.html. --[[User:Yoyobuae|Yoyobuae]] 13:32, 3 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Auto-link option in [[Draw tool]] ===&lt;br /&gt;
&lt;br /&gt;
(4) so that you can draw a line, and have its endpoint automatically link to a duck - or if Auto-connect is off, you can get a line object linked to the end of another line object. / I missed this too, it even should be like that by default I think. [[User:Maxy|Maxy]] 13:22, 25 Apr 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
: Isn't this done already?  We don't have line objects, but blines are automatically linked to if auto-connect is on.  Am I missing something? -- [[User:Dooglus|dooglus]] 17:29, 27 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::To clarify dooglus' comments - If you have an outline created by the draw tool highlighted in the layer dialog and the &amp;lt;b&amp;gt;auto-extend&amp;lt;/b&amp;gt; checkbox is checked, then you can continue drawing with the draw tool in that same layer.  Blines created with the Bline tool cannot be extended once a different tool or layer is selected.  [[User:Pxegeek|Pxegeek]] 23:46, 12 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::: A line is a line - Synfig doesn't remember whether it was created with the Bline tool or the Draw tool - so you can extend blines created with the bline tool using the draw tool.  Just make sure the line is selected (so that its ducks are visible), not looped (so that it has end points to extend from), enable the draw tool, check 'auto extend' and start drawing at one of its end ducks. [[User:Dooglus|dooglus]] 05:47, 13 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
So this sounds like it is already done.  But on a related note, being able to open an existing bline in the bline tool to extend it would be useful. -- [[User:Dooglus|dooglus]] 04:51, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Layer hide boolean parameter ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; An animatable way to remove a layer from visibility and consideration in tools. And as an option, to hide the layer in the layer list while it is invisible. This crosses over functionality from the [[Amount Parameter]], the Show/Hide checkbox in the [[Layers Panel]], and builds upon it as well, allowing the [[Layers Panel]] to dynamically unclutter. ''(This feature request is a refactoring of the [[Amount Parameter]])''&lt;br /&gt;
: With the addition of the [[Convert#Switch|Switch]] type conversion it is not needed this feature request. You can convert the Amount parameter to a Switch value and give 0 and 1 to the Linked OFF/ON values. --[[User:Genete|Genete]] 13:20, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Riding ducks ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Not chocobos. The ability to link a duck from one shape to an arbitrary position on another path, without creating an extra shape duck on that path.&lt;br /&gt;
:Already done in SVN.[[User:Genete|Genete]] 18:59, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Image filmstrip import ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Allow import of a series of images (TGA, etc) as frames of an animation, on a layer. &amp;lt;br&amp;gt;&lt;br /&gt;
Response - 'lst' files of a list of images can be imported.  I've used this to develop a walk cycle.  See [[Walk_Cycle|Walk cycle]] for an example.  [[user:pxegeek|pxegeek]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
I have seen some interesting methods for helping character design/animation in different 2d/3d software.  Hash's animation master has 'poses' which are extremes of a model, for example smiling and frowning, once you add these extremes ot a set you can use slider to create a pose that somewhere inbetween.  The real power of this is when you have serveral different poses on the same object, a face say,  you can easily come up with new facial expressions. Maybe something similar could be done with synfig using layers and groups, the implementation could something similar to Moho's switch layers. --[[User:Triclops|Triclops]] 09:52, 9 Aug 2006 (PDT)&lt;br /&gt;
: Have you read this tutorial? [[Reuse Animations]]. It is very close to the Switch layer of Moho/Anime Studio. Also You can change the Canvas parameter to any other canvas dynamically in the time line by clicking on it and selecting other exported canvas. Other option is convert the canvas to a Switch type and alternate between two different canvas.  --[[User:Genete|Genete]] 13:26, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== More Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
[[New Animation Tools|Added here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Improved User Experience for First Contact ===&lt;br /&gt;
* Single file download and installer (at least for Windows)&lt;br /&gt;
* Ability to draw the first object directly after starting the application (start with an empty document)&lt;br /&gt;
* Ability to animate the object directly after drawing the first object (new documents have a say 3 seconds timeline)&lt;br /&gt;
In my opinion this is crucial to attract potential users. Because if I see how easy it is to create my first animation I'm going to accept all the bugs and clumsyness. A good example is the Pencil animation software. --[[User:Dmd|Dmd]] 13:50, 26 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
: I've implemented #2 and #3 above in svn r1519 &amp;amp; 1520.  If no files are specified to be opened when running studio, it'll make a new one.  It won't pop up the canvas properties dialog when making new canvases by default.  And the default end time is 5s (3s is small enough to cause the time slider to show &amp;quot;1s 12f&amp;quot;, whereas 5s looks cleaner). -- [[User:Dooglus|dooglus]] 04:00, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Automatic attach and manipulate a Vertex to a Bline ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Inverse Duck Manipulation|this]] page to understand what we want. --[[User:Genete|Genete]] 12:43, 3 March 2008 (EST).&lt;br /&gt;
:Already done in SVN. [[User:Genete|Genete]] 19:00, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle visible ducks ===&lt;br /&gt;
(3) So pressing, say, tab while editing a Bline toggles which vertices/ducks are visible - so we can easily move the actual vertices around without having the view cluttered by tangeants (and also make it easier to select 'Loop' rather than 'Split Tangeants' when creating the thing.)&lt;br /&gt;
&lt;br /&gt;
Given that extra ducks such as the width ones listed above may be added, this might become more and more necessary. If too many different sets are added for toggling to be feasible, each visibility for each set can be hotkeyed.&lt;br /&gt;
&lt;br /&gt;
: Synfig already have hotkeys to toggle visibility of the ducks. See [[Keyboard_Shortcuts#Hotkeys_Visual_Guide]]. --[[User:Zelgadis|Zelgadis]] 00:39, 22 April 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8335</id>
		<title>Doc:How Do I</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8335"/>
				<updated>2009-01-07T22:07:36Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* How to change shortcut keys? */ fixed format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own questions here or [[Contact|contact]] us with them. Or put them on the [[Wiki Wish List]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Insert some text? ==&lt;br /&gt;
&lt;br /&gt;
With recent development versions, there is a text tool. If you are using 0.61.08 or earlier, use right click on your canvas and choose Layer &amp;gt; New &amp;gt; Other &amp;gt; Text.&lt;br /&gt;
&lt;br /&gt;
== How to change shortcut keys? ==&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
&lt;br /&gt;
'''3.''' Change the shorcuts you want, save and close.&lt;br /&gt;
&lt;br /&gt;
== How to have a Flash-like shortcut keys? ==&lt;br /&gt;
'''1.''' Follow the step on [[Tips#How_to_change_shortcut_keys.3F|how to change shortcut keys]], except for step 3.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Copy the code below and paste it on the very last part of '''accelrc''' then save and close it.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apply a gradient to an object instead of the entire canvas? ==&lt;br /&gt;
&lt;br /&gt;
# Create the region you want to fill with a gradient, and the gradient layer, if you haven't already.&lt;br /&gt;
# Make sure that the gradient layer is above the region layer in the [[Layers Panel]].&lt;br /&gt;
# Select both layers, right click, and select [[Encapsulate]].&lt;br /&gt;
# Expand the new [[Paste Canvas|Inline Canvas]] layer if it's not already, and select your gradient layer.&lt;br /&gt;
# In the [[Params Panel]] select the [[Blend Method]] parameter, and choose [[Blend Method#Onto|Onto]] from the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
The gradient will clip to the visible area of the region below it inside the [[Paste Canvas|Inline Canvas]]. (and any other layers in that section).&lt;br /&gt;
&lt;br /&gt;
== Show or hide a layer, or fade the effect of a blur? ==&lt;br /&gt;
In the [[Params Panel]], look for an option labeled [[Amount Parameter|Amount]] - this controls how much of the blended result of the layer is composited with the blend of the layers beneath it.&lt;br /&gt;
&lt;br /&gt;
In other words, for a typical layer, this will 'fade it out'. For a [[Blur Layer]] set to &amp;quot;[[Blend Method#Straight|Straight]]&amp;quot;, this will fade ''between'' the blurred version and the unblurred version of the canvas. If you want it to become less blurry, adjust the [[Blur Layer#Size|Blur Layer's 'size' parameter]].&lt;br /&gt;
&lt;br /&gt;
== Fill an outline? ==&lt;br /&gt;
(Requested by [[User:Karlb|Karlb]])&lt;br /&gt;
&lt;br /&gt;
There are several options:&lt;br /&gt;
* The easiest way is to link a new region layer to the outline's shape.&lt;br /&gt;
*# Select the outline you want to fill.&lt;br /&gt;
*# In the Params Panel, right-click the Vertices parameter, select &amp;quot;Export&amp;quot;, enter a name for the shape, and hit return.  This will export the shape of the outline, making it visible in the Children dialog.&lt;br /&gt;
*# In the Children dialog, open the ValueBase Nodes tree and select the name you just saved the shape as.&lt;br /&gt;
*# From the [[Layer Menu]] (either context-click on the [[Layers Panel]] or use the [[Canvas Menu Caret]]) create a new [[Region Layer]] by selecting &amp;quot;New Layer -&amp;gt; Geometry -&amp;gt; Region&amp;quot;. Ensure that the created layer is selected.&lt;br /&gt;
*# In the parameter dialog, right-click the Vertices parameter and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
*# Now, if you don't need exported shape, you can unexport it: right click name of the shape in the Children dialog and click &amp;quot;Unexport&amp;quot;.&lt;br /&gt;
* Similar to the above, but using a different method:&lt;br /&gt;
*# Create a new region layer as above, and leave it selected.&lt;br /&gt;
*# Don't make any changes to the outline layer, which you want to fill! (see the Tier 5 on the [[Linking]] page for details).&lt;br /&gt;
*# Select both layers in the [[Layers Panel]] This will display only the parameters shared by both layers in the [[Params Panel]].&lt;br /&gt;
*# Context-click on the [[Vertices Parameter]], and select [[Linking|Link]].&lt;br /&gt;
*# The [[Region Layer]] will snap to the shape of the [[Outline Layer]].&lt;br /&gt;
* When you create an [[Outline Layer|outline]] with the [[Bline Tool]] that you intend to be a filled area as well, make sure you select the Fill checkbox in the [[Bline Tool#Options|tool options dialog]]. Obviously, this doesn't help much if you realise later that you needed a fill here.&lt;br /&gt;
* If you are using the [[draw tool]], there is a button at the bottom of the [[draw tool#Options|tool options dialog]] labeled &amp;quot;Fill Last Stroke&amp;quot;, which creates a new [[Region Layer]] and links its shape to the previously drawn outline. Unfortunately, it doesn't work as of Synfig Studio v0.61.04.  It has been fixed in the current SVN version of the code.&lt;br /&gt;
* Create a [[Region Layer|region]] with the same number of ducks, and manually link each duck. If you want a region that depends on multiple outline layers, this is really your only choice for now.&lt;br /&gt;
* Use the draw tool, select only the outline to fill, draw a stroke roughly following the outline and make sure you're holding the Control key when you left go of the mouse button at the end of the stroke.  This doesn't work 100% right at the moment.&lt;br /&gt;
&lt;br /&gt;
== Dock windows together? ==&lt;br /&gt;
&lt;br /&gt;
*To dock (join) separate windows into one you must drag the tab ''icons'' for each of the tools into another window. &lt;br /&gt;
*You can create subdivisions inside the windows by dragging the icons into the side tabs (located around the edges, the look like rectangles). &lt;br /&gt;
*Tool tabs inside the window can be arranged by dragging them on top of one another, therefore changing the order.&lt;br /&gt;
*''How Do I min/maximize all Synfig windows on a Windows pc''? There must be an easy way/tool to do this?&lt;br /&gt;
&lt;br /&gt;
== Use an external bitmap? ==&lt;br /&gt;
&lt;br /&gt;
* In the image menu (&amp;gt;) choose file--&amp;gt;import. PNG with alpha channel works fine.&lt;br /&gt;
* To animate it without accidental stretching, right-click on the layer and choose encapsulate. You can then animate the position of the new &amp;quot;Inline Canvas&amp;quot; layer instead of the bbox.&lt;br /&gt;
&lt;br /&gt;
== Use an image as a fill colour? ==&lt;br /&gt;
&lt;br /&gt;
Make a new object (bline, region, squares, circles, polygons all work) &lt;br /&gt;
Import the image you want as the fill colour, and put it on the layer underneith your object. Set the blend method of the image (using the [[Parameters Palette]]) to &amp;quot;onto&amp;quot; or &amp;quot;straightonto&amp;quot;. &lt;br /&gt;
 Encapsulate the object and the fill colour image, otherwise everthing below the image will have the same fill colour.&lt;br /&gt;
Be sure to have a look at what the other composite options do as well.&lt;br /&gt;
&lt;br /&gt;
== Use an external Vector? ==&lt;br /&gt;
&lt;br /&gt;
Synfig doesn't yet support vector import because no-one has written an import process yet. You can use the Svg2synfig [[Converters|converter]], or import it as a bitmap and trace over it in synfig. If you want to implement vector import we would gladly accept your patch.&lt;br /&gt;
&lt;br /&gt;
== Close a bline? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the starting point and then click on loop bline.&lt;br /&gt;
&lt;br /&gt;
Note: It doesn't work unless the initial point has a tangent - ie the first segment is curved. But you can hide tangent ducks (Alt+3, or &amp;quot;Caret Menu &amp;gt; View &amp;gt; Show/Hide Ducks &amp;gt; Show tangent ducks&amp;quot;) and process as described. Don't forget to press (Alt+3) after that to show tangent ducks again.&lt;br /&gt;
&lt;br /&gt;
== How do I transform encapsulated objects? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the Encapsulated object in the Layer dialog and choose &amp;quot;select all child layers&amp;quot;. Then you select the ducks you want to transform (usually just all of them, like for rotating the object), and the rotate or scale tool and do the work.&lt;br /&gt;
&lt;br /&gt;
== Make objects go behind each other, without moving layers? ==&lt;br /&gt;
&lt;br /&gt;
You'll notice each layer you make has a number in the z depth column in the Layers Panel. Say you have 3 layers, they will be numbered 2 (lowest, e.g. a square) 1 (eg a circle) 0 (highest, the default, e.g. a line). In order to make layer 1, the circle, pass behind layer 2, the square, change its z depth to be 3 or more. The z depth of the circle needs to be greater than 2 in order to be behind the square. To make the square on top of everything, you'd change its z depth to -1 or less. &lt;br /&gt;
&lt;br /&gt;
Positive numbers on the z axis go into the screen, and negative numbers go out of the screen, towards the viewer.  &lt;br /&gt;
&lt;br /&gt;
It is possible to animate this effect, but each layer is discrete. They seem to go from 0 to 0.9999.&lt;br /&gt;
&lt;br /&gt;
In addition, objects in encapsulated layers can only go behind other objects in the same encapsulated layer. However an encapsulated layer can go behind another encapsulated layer.&lt;br /&gt;
&lt;br /&gt;
== Copy a complex convert combination between parameters of different layers? ==&lt;br /&gt;
&lt;br /&gt;
For example: you want to copy a complicated [[Convert|conversion]] type that you have in one parameter from a layer, to other parameter (maybe not a root parameter, but a sub-parameter) of other layer. If you [[Export|export]] the complicated conversion type from the original layer and then go to the other layer and select [[Connect]] (right click and the exported and the parameter both selected) then you have the parameter form the second layer to be exactly the same than the original one. But there is a drawback: if you modify one of the sub-parameters in the complicated conversion type (e.g. you change the value of one of them) then automatically the same sub-parameter of the other layer is changed.&lt;br /&gt;
&lt;br /&gt;
How can you copy the conversion but allow modify the sub-parameters independently on each layer? &lt;br /&gt;
&lt;br /&gt;
Once you have achieved the complex conversion type in the original layer, &amp;lt;u&amp;gt;don't export the root parameter!&amp;lt;/u&amp;gt; If you have done yet [[Export|unexport]] it. (Why?. You will understand it later.) Now duplicate the original layer. Then you should obtain the same layer with the same conversion type placed at the same parameter (but not exported). NOW export the parameter from the duplicated layer. Then go to the (sub) parameter of the layer where you want to copy the complex conversion type and Connect it to the just exported parameter form the duplicated layer. Now delete the duplicated layer (!). Then the exported [[ValueNode]] still undeleted and the layer where you wanted to copy the complex convert type have a (sub) parameter connected to it. You can [[Export|unexport]] the ValueNode or not. It is up to you. But notice that the conversion type is already copied into other (sub) parameter of other layer and they are independent as well as you can change one of them (by modifying the sub-parameters) and the other remains untouched.&lt;br /&gt;
&lt;br /&gt;
== Make an existing animation run at half speed? ==&lt;br /&gt;
&lt;br /&gt;
If you have an animation that runs from 0s to 10s and you want it to run at half speed from 0s to 20s, how can you do that?&lt;br /&gt;
&lt;br /&gt;
* Either: encapsulate it, and use the 'time offset' parameter in the encapsulation layer to slow it down:&lt;br /&gt;
** Right-click 'time offset' in the encapsulation layer, convert&amp;gt;linear, rate -0.5 offset 0.  That means offset the time by -0.5 seconds per second - or in other words, run at half speed&lt;br /&gt;
** Or, putting waypoints on the 'time offset' param would work too: 0 at 0s and -10 at 20s.  (The choice between using a linear convert and valuenodes is entirely up to you.  They both achieve the same result in this simple case).&lt;br /&gt;
&lt;br /&gt;
* Or: use a [[Time Loop Layer]].  The first method seems better and more intuitive in this case, but there are ways of getting the same effect from the Time Loop layer.  Perhaps the Time Loop layer is better if the animation doesn't run from 0s, but from some other time.  Anyway: put a Time Loop layer over the layers you wish to slow down, and:&lt;br /&gt;
** Either: set duration to 0, local time to 0, convert-&amp;gt;linear the link time and set rate to 0.5 - this slows the animation down *to* 50% of its original speed;  use bigger rates to slow it down less&lt;br /&gt;
** Or: set duration to 1h (*), link time to 0, convert-&amp;gt;linear the local time and set rate to 0.5 - this slows the animation down *by* 50%; use bigger rates to slow it down more&lt;br /&gt;
(*) if your animation is longer than 1h then set this parameter to EOT (End Of Time) what is the same as Infinite (INF) for a real number but for a time parameter.&lt;br /&gt;
&lt;br /&gt;
== Draw a rectangle with a given width and height? ==&lt;br /&gt;
&lt;br /&gt;
I was asked on IRC how to specify the width and height of a rectangle, rather than having to specify the position of two opposite corners.  Here's how:&lt;br /&gt;
&lt;br /&gt;
* draw a rectangle&lt;br /&gt;
* go to the [[Params Panel]]&lt;br /&gt;
* right-click the 'point 1' parameter and [[Export]]&lt;br /&gt;
* give it a name, &amp;quot;p1&amp;quot; say&lt;br /&gt;
* right-click the 'point 2' parameter and [[Convert]] to [[Convert#Add|Add]]&lt;br /&gt;
* (that's saying that rather than specifying the absolute position of the other point, you want synfig to calculate it for you)&lt;br /&gt;
* (it will make 2 new sub-parameters for 'point 2', and the value used for point 2 will be their sum so we want to tell it to use 'point 1' and your (width,height))&lt;br /&gt;
* open up the sub-parameters of 'point 2' by clicking the triangle to its left&lt;br /&gt;
* go to the [[Children Panel]], open up the values and select the one you exported earlier (p1)&lt;br /&gt;
* right-click the &amp;quot;LHS&amp;quot; parameter in the parameters dialog and [[Connect]] it&lt;br /&gt;
* then enter the width and height you want in the 'RHS' parameter&lt;br /&gt;
&lt;br /&gt;
== Make linked BLine vertices not affected by Rotate layer? ==&lt;br /&gt;
Look at the http://dooglus.rincevent.net/synfig/logs/2008/%23synfig-2008-02-07.log &lt;br /&gt;
See also: [[Convert]].&lt;br /&gt;
&lt;br /&gt;
== Create dashed outlines? ==&lt;br /&gt;
&lt;br /&gt;
If you want to make simple dashed outlines the faster way is proceed like this:&lt;br /&gt;
&lt;br /&gt;
* Create a Curve Gradient and an Outline over the same [[Bline]] using the [[Bline Tool]] options. Check both Outline and Gradient at the [[Tool Options Panel]].&lt;br /&gt;
* Raise up the gradient layer (it is created below the [[Outline Layer]]).&lt;br /&gt;
* Modify the gradient [[Blend Method]] parameter to be Straight Onto. That would render the gradient onto the outline width. Also it wouldn't render the outline, so transparent portions of the gradient are transparent.&lt;br /&gt;
* Check the 'Perpendicular' parameter of the Curve Gradient Layer.&lt;br /&gt;
* [[Convert]] the Gradient Parameter of the Curve Gradient Layer to be one of those types: Stripes or Repeat Gradient.&lt;br /&gt;
* Modify the properties of the sub parameters to achieve the desired effect.&lt;br /&gt;
&lt;br /&gt;
== Render to AVI with higher quality? ==&lt;br /&gt;
&lt;br /&gt;
=== Using raw video ===&lt;br /&gt;
The module used by Synfig to render AVI files is ffmpeg. For the moment there is not interface to control ffmpeg options so you render with a fixed bitrate and quality. If you want the maximum quality in your AVI file, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Render your animation to yuv420p format. To do that select that target at the drop down list of the render dialog and add the &amp;quot;.yuv&amp;quot; extension to your animation name (without quotes).&lt;br /&gt;
* Once rendered (it would produce a huge size yuv file) you can quickly convert it to AVI using this command:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -i animation.yuv -sameq animation.avi&lt;br /&gt;
&lt;br /&gt;
Change the animation file name to your one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rendering trough png sequence. ===&lt;br /&gt;
Render your sif to png sequence &lt;br /&gt;
 mkdir render&lt;br /&gt;
 synfig my_animation.sifz -o render/frame.png&lt;br /&gt;
Then convert it to movie with ffmpeg&lt;br /&gt;
 ffmpeg -r &amp;lt;frame rate&amp;gt; -i render/frame.%04d.png &amp;lt;more settings from ffmpeg's manual&amp;gt; my_animation.mov&lt;br /&gt;
If you need nice open source format without any tweaks you may try ffmpeg2theora:&lt;br /&gt;
 ffmpeg2theora render/frame.%04d.png --inputfps &amp;lt;frame rate&amp;gt; -o my_animation.ogg&lt;br /&gt;
png takes less disk space then yuv.&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 21:38, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Increase performance by optimizing during compilation time? ==&lt;br /&gt;
&lt;br /&gt;
I would like to know what parameters do I need to apply to configure to improve performance. [[User:Genete|Genete]] 11:04, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
To optimize program you should set two environment variables&lt;br /&gt;
 export CFLAGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
First flag will be &amp;quot;-O3&amp;quot; (ow three). &amp;quot;-02&amp;quot; is normal optimization. &amp;quot;-03&amp;quot; is hard optimisation.&lt;br /&gt;
&lt;br /&gt;
Now you should get info about your CPU&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
find your cpu model name&lt;br /&gt;
&lt;br /&gt;
now go to man gcc and searc &amp;quot;-mtune&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find your cpu and add &amp;quot;-mtune=your-cpu -march=your-cpu&amp;quot; to CFLAGS. &lt;br /&gt;
&lt;br /&gt;
Then look at flags from /proc/cpuinfo and search it in gcc manual&lt;br /&gt;
For example I have 3dnow. So I can find &amp;quot;-m3dnow&amp;quot;. For sse I can find &amp;quot;-msse&amp;quot; and &amp;quot;-mfpmath=sse&amp;quot; (can make program unstable). &lt;br /&gt;
&lt;br /&gt;
Finaly you may add &amp;quot;-ffast-math&amp;quot; to disable math checks. But it can make program unstable.&lt;br /&gt;
&lt;br /&gt;
For my AthlonXP I'm using this flags:&lt;br /&gt;
 export CFLAGS=&amp;quot;-O3 -pipe -mtune=athlon-xp -march=athlon-xp -mmmx -msse -m3dnow -mfpmath=sse -ffast-math -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 12:05, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
For my Pentium3 i use the line:&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -pipe -mtune=pentium3 -march=pentium3 -msse -mfpmath=sse -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
The additional switches -mmmx and -ffast-math does seem to '''not''' yield any gain in computing performance! So you could leave them out.&lt;br /&gt;
--[[User:SvH|SvH]] 03:46, 20 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Import a movie into Synfig? ==&lt;br /&gt;
&lt;br /&gt;
To import a movie (image only, not sound) into synfig there is only one option for the moment: Extract an image sequence from the movie and import them using [[ListImporter]]. Before you can load the image sequence you have to extract it from the movie. There are several software to do that but a straight and easy way is to use mplayer:&lt;br /&gt;
&lt;br /&gt;
 mplayer mymovie.avi -vo png:z=1 -ss seconds-start -endpos duration &lt;br /&gt;
&lt;br /&gt;
where ''seconds-start'' are the seconds where you want to extract form and ''duration'' is the number of seconds you want to extract from ''mymovie.avi''. Also the image format specified in this case is png but jpeg or tga can be used also. See [http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html mplayer manual page] for more info.&lt;br /&gt;
&lt;br /&gt;
It would extract a set of files of the selected section of the movie. Each file takes the frame number padded with leading zeros as name.&lt;br /&gt;
&lt;br /&gt;
To put all the filenames into a ''.lst'' file just type this in the folder wehre the files are:&lt;br /&gt;
&lt;br /&gt;
 ls *.png &amp;gt;&amp;gt; mymovie.lst&lt;br /&gt;
&lt;br /&gt;
and add a line specifying the frame rate at the beginning of the text file:&lt;br /&gt;
&lt;br /&gt;
 FPS 25&lt;br /&gt;
&lt;br /&gt;
if the movie was 25 fps.&lt;br /&gt;
&lt;br /&gt;
== Granted Wishes ==&lt;br /&gt;
&lt;br /&gt;
=== MNG target filetype ===&lt;br /&gt;
&lt;br /&gt;
The ability to save as/in the Free/Open MNG (.mng) format [http://libpng.org/pub/mng/]&lt;br /&gt;
&lt;br /&gt;
A partial implementation was committed in SVN r470.&lt;br /&gt;
&lt;br /&gt;
It was implemented in svn 986. See [[Render options]]. --[[User:Genete|Genete]] 13:12, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Optionally display RGB in Hex in Color dialog ===&lt;br /&gt;
&lt;br /&gt;
(3) When colors are quoted as 3 bytes of hexadecimal, you have to convert them to decimal, divide by 255, multiply by 100 to get a number to type into the dialog box.  It's painful to match color schemes for example, with the [http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines Tango Icon Theme style guidelines].  [[User:pxegeek|PXEGeek]] 3/16/07&lt;br /&gt;
&lt;br /&gt;
: Added in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=40dda9d27b5249ee32f62d84c819ff569f078929 svn r354].  You can type 3 or 6 digit hex codes and hit return to use.  3 digit code 36a gives colour 3366aa (each digit is duplicated) -- [[User:Dooglus|dooglus]] 3/18/07&lt;br /&gt;
&lt;br /&gt;
:: Many thanks - already used many times! PXEGeek.&lt;br /&gt;
&lt;br /&gt;
::: Did you notice that you can use single digit codes too?  '5' gives 555555 for instance, giving you 16 equally spaces shades of black through white. -- [[User:Dooglus|dooglus]] 17:51, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Restore Default Layout ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; It's very difficult to put all the dialogs back where they were when you started the program, if you've closed them. In addition, with many programs, if you've done something with your window manager to take a window's position off screen, this command is sometimes the only way to bring them back.&lt;br /&gt;
-&amp;gt; I'd like to second this one - especially with the bug where dialog boxes sometime shrink to nothing or offscreen, and no amount of maximizing or minimizing restores them.  The only solution is to kill the windows, and none of the combo options in the dialog menu match the default configuration.  4/4/07 PXEGeek&lt;br /&gt;
&lt;br /&gt;
: Implemented in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=036306f3c2c265a604971728d50fcce258766552 svn r757] -- [[User:Dooglus|dooglus]] 17:48, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== General outline / Polygon-based Outline / &amp;quot;Set Tangents to Zero&amp;quot; button ===&lt;br /&gt;
(3.5) I'm no artist, thus my primary form of art is stick figures, not to mention, many interesting animations are done in stick-figure style. Stick figures must be perfectly straight to get the effect across, so when I'm making an outline using B-Curves, it is too time consuming to set the tangents to 0 each time. Similarly, outlines of other shapes like squares, circles and so forth would be very useful. Whichever of the above is easiest, please implement right away. --[[User:Dragontamer|Dragontamer]] 02:35, 19 November 2007 (EST)&lt;br /&gt;
: For perfectly straight lines, click without moving the mouse.  You will get a single point with no tangents.  Outline shapes would require some development, particularly with some thought given to backward compatibility.  A workaround you might consider is to create a duplicate shape with a different color and make the top one slightly smaller, so the outline of the one below shows.  [[User:Pxegeek|Pxegeek]] 21:58, 19 November 2007 (EST)&lt;br /&gt;
:: Well, in general, whenever I click on a point to edit it (say, to make it move somewhere in animation mode), there is a decent chance that I click on a tangent instead. Then, if I want to right click the point itself, I usually right click the tangent marker instead. It isn't that big a deal, but simplicity at the cost of power generally is a good thing, especially when it will save a few mouse clicks. &lt;br /&gt;
:: As for the outlines, yeah, I've tried that and it is a decent solution for now, although it is no replacement for a real outline. I am going to also experiment with a clamp to see if I can make the center of the shape have 100% alpha... but I don't have synfig on the computer I'm on right now. Thanks for the tips Pxegeek. --[[User:Dragontamer|Dragontamer]] 01:58, 27 November 2007 (EST)&lt;br /&gt;
::: You can press Alt+3 to hide tangent ducks. --[[User:Zelgadis|Zelgadis]] 09:27, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy &amp;amp; Paste/Image Importing ===&lt;br /&gt;
&lt;br /&gt;
(4) I sometimes make graphics in other programs, or use clipart and other images. Would it be possible for Synfig to be able to import images and/or copy and paste them?--Khlieeq 2007-07-19&lt;br /&gt;
Well, it doesn't support Copy &amp;amp; paste from the clipboard, but you can import images using &amp;quot;New Layer -&amp;gt; Other -&amp;gt; Import&amp;quot;.  This will create an Import layer, for which you can then edit the properties to point to the file containing your image.  PXEGeek.  2007-07-19&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recursive Waypoint Manipulation ===&lt;br /&gt;
&lt;br /&gt;
(4) it is really tiresome to revert changes to waypoints created by manipulating tangent/position ducks or change their interpolation functions. making it possible to right-click-modify the waypoint shown for objects that have some waypoint in a referenced sub-object would be great! -- timonator 2007-06-01&lt;br /&gt;
:You can do it in two ways: changing the interpolation method of the waypoint of paste canvas or editing the keyframe properties. The first allow to modify the waypoints interpolation method for all the waypoints of all the parameters of all the layers that are inside the paste canvas layer. You can right click on the left or right part of the waypoint to edit by a context menu the left or the right interpolation method of the waipoints. The second method would add and modify all the parameters that have any waypoint in the animation. See [[Keyframe]] for more detail. --[[User:Genete|Genete]] 13:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tweening for images developed in other imaging programs ===&lt;br /&gt;
&lt;br /&gt;
It's obvious I am a beginner at image movement, but morphing is not enough: movement across the page is needed.  Thanks for listening. [[User:Comwell@bellsouth.net|Comwell]]&amp;lt;br&amp;gt;&lt;br /&gt;
Imported images can be moved across the page.  They can also be scaled, rotated and deformed.  Was there a specific example you had in mind?  [[User:Pxegeek|pxegeek]]&amp;lt;br&amp;gt;&lt;br /&gt;
:I also would like a way to tween images that have been drawn in other programs. I've had trouble drawing with Bline tool and the drawing tool in Synfig, and I'd rather just draw with a paint brush (like the one in Photoshop). Another problem I have is that Synfig tends to shut down on me every 20 minutes or so, and it's really frustrating even with the auto recover feature, because my sketches disappear. It'd be nice if I'm able to draw all of the keyframes in Photoshop or another image program and import it to Synfig so that Synfig can tween and animate them. Thank you. [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
::You CAN use images, drawn in other programs. Just select &amp;quot;File-&amp;gt;Import&amp;quot; from [[Canvas Menu Caret|canvas menu]] --[[User:Zelgadis|Zelgadis]] 01:39, 24 November 2007 (EST)&lt;br /&gt;
:::But how do you animate using images from other sources? I tried to make 2 keyframes with 2 different images, and it doesn't animate. It just stays as 1 picture for the entire render. The closest thing I saw to importing images from another source into Synfig and having it animate is the Walking Cycle Tutorial, but I would still have to trace the images to make it animate. As I said earlier, I'm not entirely fond of using the draw/Bline tool.  [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
:::: Huina, there's no way to do what you want right now.  Interpolating between two images that are not created in Synfig is well beyond its scope right now.  However, what you could do is take an image and separate elements of the picture onto different layers (e.g. have a picture of an arm and another of the rest of the body) and you can move those around, stretch and rotate them.  (If you're familiar with the work of Terry Gilliam on Monty Python you'll know what I mean) I don't know how feasible it is to implement your request (I suspect some heavy lifting).  We'll keep it on the list, but don't hold your breath.  [[User:Pxegeek|Pxegeek]] 19:57, 24 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: I think, you hardly find any other animation package  which allow you to do such things. You could use a special tools for this task, like xmorph (http://xmorph.sourceforge.net/). But to do the tween between two bitmap images you STILL need to set points. It's not tracing, but very similar. Anyway, result may be poor and I'd better suggest to use technique, described in Walking Cycle Tutorial or which the [[User:Pxegeek|Pxegeek]] meant. --[[User:Zelgadis|Zelgadis]] 02:08, 25 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: There is a technique called &amp;quot;optical flow&amp;quot;.  It takes two input frames and calculates the movement of each individual pixel between the frames, allowing interpolation to be done. Here's an example: http://www.fxguide.com/article333.html.  It doesn't require setting of control points, but it has problems it's own set of problems: http://www.fxguide.com/article333.html. --[[User:Yoyobuae|Yoyobuae]] 13:32, 3 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Auto-link option in [[Draw tool]] ===&lt;br /&gt;
&lt;br /&gt;
(4) so that you can draw a line, and have its endpoint automatically link to a duck - or if Auto-connect is off, you can get a line object linked to the end of another line object. / I missed this too, it even should be like that by default I think. [[User:Maxy|Maxy]] 13:22, 25 Apr 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
: Isn't this done already?  We don't have line objects, but blines are automatically linked to if auto-connect is on.  Am I missing something? -- [[User:Dooglus|dooglus]] 17:29, 27 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::To clarify dooglus' comments - If you have an outline created by the draw tool highlighted in the layer dialog and the &amp;lt;b&amp;gt;auto-extend&amp;lt;/b&amp;gt; checkbox is checked, then you can continue drawing with the draw tool in that same layer.  Blines created with the Bline tool cannot be extended once a different tool or layer is selected.  [[User:Pxegeek|Pxegeek]] 23:46, 12 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::: A line is a line - Synfig doesn't remember whether it was created with the Bline tool or the Draw tool - so you can extend blines created with the bline tool using the draw tool.  Just make sure the line is selected (so that its ducks are visible), not looped (so that it has end points to extend from), enable the draw tool, check 'auto extend' and start drawing at one of its end ducks. [[User:Dooglus|dooglus]] 05:47, 13 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
So this sounds like it is already done.  But on a related note, being able to open an existing bline in the bline tool to extend it would be useful. -- [[User:Dooglus|dooglus]] 04:51, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Layer hide boolean parameter ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; An animatable way to remove a layer from visibility and consideration in tools. And as an option, to hide the layer in the layer list while it is invisible. This crosses over functionality from the [[Amount Parameter]], the Show/Hide checkbox in the [[Layers Panel]], and builds upon it as well, allowing the [[Layers Panel]] to dynamically unclutter. ''(This feature request is a refactoring of the [[Amount Parameter]])''&lt;br /&gt;
: With the addition of the [[Convert#Switch|Switch]] type conversion it is not needed this feature request. You can convert the Amount parameter to a Switch value and give 0 and 1 to the Linked OFF/ON values. --[[User:Genete|Genete]] 13:20, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Riding ducks ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Not chocobos. The ability to link a duck from one shape to an arbitrary position on another path, without creating an extra shape duck on that path.&lt;br /&gt;
:Already done in SVN.[[User:Genete|Genete]] 18:59, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Image filmstrip import ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Allow import of a series of images (TGA, etc) as frames of an animation, on a layer. &amp;lt;br&amp;gt;&lt;br /&gt;
Response - 'lst' files of a list of images can be imported.  I've used this to develop a walk cycle.  See [[Walk_Cycle|Walk cycle]] for an example.  [[user:pxegeek|pxegeek]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
I have seen some interesting methods for helping character design/animation in different 2d/3d software.  Hash's animation master has 'poses' which are extremes of a model, for example smiling and frowning, once you add these extremes ot a set you can use slider to create a pose that somewhere inbetween.  The real power of this is when you have serveral different poses on the same object, a face say,  you can easily come up with new facial expressions. Maybe something similar could be done with synfig using layers and groups, the implementation could something similar to Moho's switch layers. --[[User:Triclops|Triclops]] 09:52, 9 Aug 2006 (PDT)&lt;br /&gt;
: Have you read this tutorial? [[Reuse Animations]]. It is very close to the Switch layer of Moho/Anime Studio. Also You can change the Canvas parameter to any other canvas dynamically in the time line by clicking on it and selecting other exported canvas. Other option is convert the canvas to a Switch type and alternate between two different canvas.  --[[User:Genete|Genete]] 13:26, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== More Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
[[New Animation Tools|Added here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Improved User Experience for First Contact ===&lt;br /&gt;
* Single file download and installer (at least for Windows)&lt;br /&gt;
* Ability to draw the first object directly after starting the application (start with an empty document)&lt;br /&gt;
* Ability to animate the object directly after drawing the first object (new documents have a say 3 seconds timeline)&lt;br /&gt;
In my opinion this is crucial to attract potential users. Because if I see how easy it is to create my first animation I'm going to accept all the bugs and clumsyness. A good example is the Pencil animation software. --[[User:Dmd|Dmd]] 13:50, 26 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
: I've implemented #2 and #3 above in svn r1519 &amp;amp; 1520.  If no files are specified to be opened when running studio, it'll make a new one.  It won't pop up the canvas properties dialog when making new canvases by default.  And the default end time is 5s (3s is small enough to cause the time slider to show &amp;quot;1s 12f&amp;quot;, whereas 5s looks cleaner). -- [[User:Dooglus|dooglus]] 04:00, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Automatic attach and manipulate a Vertex to a Bline ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Inverse Duck Manipulation|this]] page to understand what we want. --[[User:Genete|Genete]] 12:43, 3 March 2008 (EST).&lt;br /&gt;
:Already done in SVN. [[User:Genete|Genete]] 19:00, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle visible ducks ===&lt;br /&gt;
(3) So pressing, say, tab while editing a Bline toggles which vertices/ducks are visible - so we can easily move the actual vertices around without having the view cluttered by tangeants (and also make it easier to select 'Loop' rather than 'Split Tangeants' when creating the thing.)&lt;br /&gt;
&lt;br /&gt;
Given that extra ducks such as the width ones listed above may be added, this might become more and more necessary. If too many different sets are added for toggling to be feasible, each visibility for each set can be hotkeyed.&lt;br /&gt;
&lt;br /&gt;
: Synfig already have hotkeys to toggle visibility of the ducks. See [[Keyboard_Shortcuts#Hotkeys_Visual_Guide]]. --[[User:Zelgadis|Zelgadis]] 00:39, 22 April 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8334</id>
		<title>Doc:How Do I</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8334"/>
				<updated>2009-01-07T22:06:50Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* How to have a Flash-like shorcut keys */ added link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own questions here or [[Contact|contact]] us with them. Or put them on the [[Wiki Wish List]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Insert some text? ==&lt;br /&gt;
&lt;br /&gt;
With recent development versions, there is a text tool. If you are using 0.61.08 or earlier, use right click on your canvas and choose Layer &amp;gt; New &amp;gt; Other &amp;gt; Text.&lt;br /&gt;
&lt;br /&gt;
== How to change shortcut keys? ==&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
'''3.''' Change the shorcuts you want, save and close.&lt;br /&gt;
&lt;br /&gt;
== How to have a Flash-like shortcut keys? ==&lt;br /&gt;
'''1.''' Follow the step on [[Tips#How_to_change_shortcut_keys.3F|how to change shortcut keys]], except for step 3.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Copy the code below and paste it on the very last part of '''accelrc''' then save and close it.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apply a gradient to an object instead of the entire canvas? ==&lt;br /&gt;
&lt;br /&gt;
# Create the region you want to fill with a gradient, and the gradient layer, if you haven't already.&lt;br /&gt;
# Make sure that the gradient layer is above the region layer in the [[Layers Panel]].&lt;br /&gt;
# Select both layers, right click, and select [[Encapsulate]].&lt;br /&gt;
# Expand the new [[Paste Canvas|Inline Canvas]] layer if it's not already, and select your gradient layer.&lt;br /&gt;
# In the [[Params Panel]] select the [[Blend Method]] parameter, and choose [[Blend Method#Onto|Onto]] from the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
The gradient will clip to the visible area of the region below it inside the [[Paste Canvas|Inline Canvas]]. (and any other layers in that section).&lt;br /&gt;
&lt;br /&gt;
== Show or hide a layer, or fade the effect of a blur? ==&lt;br /&gt;
In the [[Params Panel]], look for an option labeled [[Amount Parameter|Amount]] - this controls how much of the blended result of the layer is composited with the blend of the layers beneath it.&lt;br /&gt;
&lt;br /&gt;
In other words, for a typical layer, this will 'fade it out'. For a [[Blur Layer]] set to &amp;quot;[[Blend Method#Straight|Straight]]&amp;quot;, this will fade ''between'' the blurred version and the unblurred version of the canvas. If you want it to become less blurry, adjust the [[Blur Layer#Size|Blur Layer's 'size' parameter]].&lt;br /&gt;
&lt;br /&gt;
== Fill an outline? ==&lt;br /&gt;
(Requested by [[User:Karlb|Karlb]])&lt;br /&gt;
&lt;br /&gt;
There are several options:&lt;br /&gt;
* The easiest way is to link a new region layer to the outline's shape.&lt;br /&gt;
*# Select the outline you want to fill.&lt;br /&gt;
*# In the Params Panel, right-click the Vertices parameter, select &amp;quot;Export&amp;quot;, enter a name for the shape, and hit return.  This will export the shape of the outline, making it visible in the Children dialog.&lt;br /&gt;
*# In the Children dialog, open the ValueBase Nodes tree and select the name you just saved the shape as.&lt;br /&gt;
*# From the [[Layer Menu]] (either context-click on the [[Layers Panel]] or use the [[Canvas Menu Caret]]) create a new [[Region Layer]] by selecting &amp;quot;New Layer -&amp;gt; Geometry -&amp;gt; Region&amp;quot;. Ensure that the created layer is selected.&lt;br /&gt;
*# In the parameter dialog, right-click the Vertices parameter and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
*# Now, if you don't need exported shape, you can unexport it: right click name of the shape in the Children dialog and click &amp;quot;Unexport&amp;quot;.&lt;br /&gt;
* Similar to the above, but using a different method:&lt;br /&gt;
*# Create a new region layer as above, and leave it selected.&lt;br /&gt;
*# Don't make any changes to the outline layer, which you want to fill! (see the Tier 5 on the [[Linking]] page for details).&lt;br /&gt;
*# Select both layers in the [[Layers Panel]] This will display only the parameters shared by both layers in the [[Params Panel]].&lt;br /&gt;
*# Context-click on the [[Vertices Parameter]], and select [[Linking|Link]].&lt;br /&gt;
*# The [[Region Layer]] will snap to the shape of the [[Outline Layer]].&lt;br /&gt;
* When you create an [[Outline Layer|outline]] with the [[Bline Tool]] that you intend to be a filled area as well, make sure you select the Fill checkbox in the [[Bline Tool#Options|tool options dialog]]. Obviously, this doesn't help much if you realise later that you needed a fill here.&lt;br /&gt;
* If you are using the [[draw tool]], there is a button at the bottom of the [[draw tool#Options|tool options dialog]] labeled &amp;quot;Fill Last Stroke&amp;quot;, which creates a new [[Region Layer]] and links its shape to the previously drawn outline. Unfortunately, it doesn't work as of Synfig Studio v0.61.04.  It has been fixed in the current SVN version of the code.&lt;br /&gt;
* Create a [[Region Layer|region]] with the same number of ducks, and manually link each duck. If you want a region that depends on multiple outline layers, this is really your only choice for now.&lt;br /&gt;
* Use the draw tool, select only the outline to fill, draw a stroke roughly following the outline and make sure you're holding the Control key when you left go of the mouse button at the end of the stroke.  This doesn't work 100% right at the moment.&lt;br /&gt;
&lt;br /&gt;
== Dock windows together? ==&lt;br /&gt;
&lt;br /&gt;
*To dock (join) separate windows into one you must drag the tab ''icons'' for each of the tools into another window. &lt;br /&gt;
*You can create subdivisions inside the windows by dragging the icons into the side tabs (located around the edges, the look like rectangles). &lt;br /&gt;
*Tool tabs inside the window can be arranged by dragging them on top of one another, therefore changing the order.&lt;br /&gt;
*''How Do I min/maximize all Synfig windows on a Windows pc''? There must be an easy way/tool to do this?&lt;br /&gt;
&lt;br /&gt;
== Use an external bitmap? ==&lt;br /&gt;
&lt;br /&gt;
* In the image menu (&amp;gt;) choose file--&amp;gt;import. PNG with alpha channel works fine.&lt;br /&gt;
* To animate it without accidental stretching, right-click on the layer and choose encapsulate. You can then animate the position of the new &amp;quot;Inline Canvas&amp;quot; layer instead of the bbox.&lt;br /&gt;
&lt;br /&gt;
== Use an image as a fill colour? ==&lt;br /&gt;
&lt;br /&gt;
Make a new object (bline, region, squares, circles, polygons all work) &lt;br /&gt;
Import the image you want as the fill colour, and put it on the layer underneith your object. Set the blend method of the image (using the [[Parameters Palette]]) to &amp;quot;onto&amp;quot; or &amp;quot;straightonto&amp;quot;. &lt;br /&gt;
 Encapsulate the object and the fill colour image, otherwise everthing below the image will have the same fill colour.&lt;br /&gt;
Be sure to have a look at what the other composite options do as well.&lt;br /&gt;
&lt;br /&gt;
== Use an external Vector? ==&lt;br /&gt;
&lt;br /&gt;
Synfig doesn't yet support vector import because no-one has written an import process yet. You can use the Svg2synfig [[Converters|converter]], or import it as a bitmap and trace over it in synfig. If you want to implement vector import we would gladly accept your patch.&lt;br /&gt;
&lt;br /&gt;
== Close a bline? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the starting point and then click on loop bline.&lt;br /&gt;
&lt;br /&gt;
Note: It doesn't work unless the initial point has a tangent - ie the first segment is curved. But you can hide tangent ducks (Alt+3, or &amp;quot;Caret Menu &amp;gt; View &amp;gt; Show/Hide Ducks &amp;gt; Show tangent ducks&amp;quot;) and process as described. Don't forget to press (Alt+3) after that to show tangent ducks again.&lt;br /&gt;
&lt;br /&gt;
== How do I transform encapsulated objects? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the Encapsulated object in the Layer dialog and choose &amp;quot;select all child layers&amp;quot;. Then you select the ducks you want to transform (usually just all of them, like for rotating the object), and the rotate or scale tool and do the work.&lt;br /&gt;
&lt;br /&gt;
== Make objects go behind each other, without moving layers? ==&lt;br /&gt;
&lt;br /&gt;
You'll notice each layer you make has a number in the z depth column in the Layers Panel. Say you have 3 layers, they will be numbered 2 (lowest, e.g. a square) 1 (eg a circle) 0 (highest, the default, e.g. a line). In order to make layer 1, the circle, pass behind layer 2, the square, change its z depth to be 3 or more. The z depth of the circle needs to be greater than 2 in order to be behind the square. To make the square on top of everything, you'd change its z depth to -1 or less. &lt;br /&gt;
&lt;br /&gt;
Positive numbers on the z axis go into the screen, and negative numbers go out of the screen, towards the viewer.  &lt;br /&gt;
&lt;br /&gt;
It is possible to animate this effect, but each layer is discrete. They seem to go from 0 to 0.9999.&lt;br /&gt;
&lt;br /&gt;
In addition, objects in encapsulated layers can only go behind other objects in the same encapsulated layer. However an encapsulated layer can go behind another encapsulated layer.&lt;br /&gt;
&lt;br /&gt;
== Copy a complex convert combination between parameters of different layers? ==&lt;br /&gt;
&lt;br /&gt;
For example: you want to copy a complicated [[Convert|conversion]] type that you have in one parameter from a layer, to other parameter (maybe not a root parameter, but a sub-parameter) of other layer. If you [[Export|export]] the complicated conversion type from the original layer and then go to the other layer and select [[Connect]] (right click and the exported and the parameter both selected) then you have the parameter form the second layer to be exactly the same than the original one. But there is a drawback: if you modify one of the sub-parameters in the complicated conversion type (e.g. you change the value of one of them) then automatically the same sub-parameter of the other layer is changed.&lt;br /&gt;
&lt;br /&gt;
How can you copy the conversion but allow modify the sub-parameters independently on each layer? &lt;br /&gt;
&lt;br /&gt;
Once you have achieved the complex conversion type in the original layer, &amp;lt;u&amp;gt;don't export the root parameter!&amp;lt;/u&amp;gt; If you have done yet [[Export|unexport]] it. (Why?. You will understand it later.) Now duplicate the original layer. Then you should obtain the same layer with the same conversion type placed at the same parameter (but not exported). NOW export the parameter from the duplicated layer. Then go to the (sub) parameter of the layer where you want to copy the complex conversion type and Connect it to the just exported parameter form the duplicated layer. Now delete the duplicated layer (!). Then the exported [[ValueNode]] still undeleted and the layer where you wanted to copy the complex convert type have a (sub) parameter connected to it. You can [[Export|unexport]] the ValueNode or not. It is up to you. But notice that the conversion type is already copied into other (sub) parameter of other layer and they are independent as well as you can change one of them (by modifying the sub-parameters) and the other remains untouched.&lt;br /&gt;
&lt;br /&gt;
== Make an existing animation run at half speed? ==&lt;br /&gt;
&lt;br /&gt;
If you have an animation that runs from 0s to 10s and you want it to run at half speed from 0s to 20s, how can you do that?&lt;br /&gt;
&lt;br /&gt;
* Either: encapsulate it, and use the 'time offset' parameter in the encapsulation layer to slow it down:&lt;br /&gt;
** Right-click 'time offset' in the encapsulation layer, convert&amp;gt;linear, rate -0.5 offset 0.  That means offset the time by -0.5 seconds per second - or in other words, run at half speed&lt;br /&gt;
** Or, putting waypoints on the 'time offset' param would work too: 0 at 0s and -10 at 20s.  (The choice between using a linear convert and valuenodes is entirely up to you.  They both achieve the same result in this simple case).&lt;br /&gt;
&lt;br /&gt;
* Or: use a [[Time Loop Layer]].  The first method seems better and more intuitive in this case, but there are ways of getting the same effect from the Time Loop layer.  Perhaps the Time Loop layer is better if the animation doesn't run from 0s, but from some other time.  Anyway: put a Time Loop layer over the layers you wish to slow down, and:&lt;br /&gt;
** Either: set duration to 0, local time to 0, convert-&amp;gt;linear the link time and set rate to 0.5 - this slows the animation down *to* 50% of its original speed;  use bigger rates to slow it down less&lt;br /&gt;
** Or: set duration to 1h (*), link time to 0, convert-&amp;gt;linear the local time and set rate to 0.5 - this slows the animation down *by* 50%; use bigger rates to slow it down more&lt;br /&gt;
(*) if your animation is longer than 1h then set this parameter to EOT (End Of Time) what is the same as Infinite (INF) for a real number but for a time parameter.&lt;br /&gt;
&lt;br /&gt;
== Draw a rectangle with a given width and height? ==&lt;br /&gt;
&lt;br /&gt;
I was asked on IRC how to specify the width and height of a rectangle, rather than having to specify the position of two opposite corners.  Here's how:&lt;br /&gt;
&lt;br /&gt;
* draw a rectangle&lt;br /&gt;
* go to the [[Params Panel]]&lt;br /&gt;
* right-click the 'point 1' parameter and [[Export]]&lt;br /&gt;
* give it a name, &amp;quot;p1&amp;quot; say&lt;br /&gt;
* right-click the 'point 2' parameter and [[Convert]] to [[Convert#Add|Add]]&lt;br /&gt;
* (that's saying that rather than specifying the absolute position of the other point, you want synfig to calculate it for you)&lt;br /&gt;
* (it will make 2 new sub-parameters for 'point 2', and the value used for point 2 will be their sum so we want to tell it to use 'point 1' and your (width,height))&lt;br /&gt;
* open up the sub-parameters of 'point 2' by clicking the triangle to its left&lt;br /&gt;
* go to the [[Children Panel]], open up the values and select the one you exported earlier (p1)&lt;br /&gt;
* right-click the &amp;quot;LHS&amp;quot; parameter in the parameters dialog and [[Connect]] it&lt;br /&gt;
* then enter the width and height you want in the 'RHS' parameter&lt;br /&gt;
&lt;br /&gt;
== Make linked BLine vertices not affected by Rotate layer? ==&lt;br /&gt;
Look at the http://dooglus.rincevent.net/synfig/logs/2008/%23synfig-2008-02-07.log &lt;br /&gt;
See also: [[Convert]].&lt;br /&gt;
&lt;br /&gt;
== Create dashed outlines? ==&lt;br /&gt;
&lt;br /&gt;
If you want to make simple dashed outlines the faster way is proceed like this:&lt;br /&gt;
&lt;br /&gt;
* Create a Curve Gradient and an Outline over the same [[Bline]] using the [[Bline Tool]] options. Check both Outline and Gradient at the [[Tool Options Panel]].&lt;br /&gt;
* Raise up the gradient layer (it is created below the [[Outline Layer]]).&lt;br /&gt;
* Modify the gradient [[Blend Method]] parameter to be Straight Onto. That would render the gradient onto the outline width. Also it wouldn't render the outline, so transparent portions of the gradient are transparent.&lt;br /&gt;
* Check the 'Perpendicular' parameter of the Curve Gradient Layer.&lt;br /&gt;
* [[Convert]] the Gradient Parameter of the Curve Gradient Layer to be one of those types: Stripes or Repeat Gradient.&lt;br /&gt;
* Modify the properties of the sub parameters to achieve the desired effect.&lt;br /&gt;
&lt;br /&gt;
== Render to AVI with higher quality? ==&lt;br /&gt;
&lt;br /&gt;
=== Using raw video ===&lt;br /&gt;
The module used by Synfig to render AVI files is ffmpeg. For the moment there is not interface to control ffmpeg options so you render with a fixed bitrate and quality. If you want the maximum quality in your AVI file, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Render your animation to yuv420p format. To do that select that target at the drop down list of the render dialog and add the &amp;quot;.yuv&amp;quot; extension to your animation name (without quotes).&lt;br /&gt;
* Once rendered (it would produce a huge size yuv file) you can quickly convert it to AVI using this command:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -i animation.yuv -sameq animation.avi&lt;br /&gt;
&lt;br /&gt;
Change the animation file name to your one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rendering trough png sequence. ===&lt;br /&gt;
Render your sif to png sequence &lt;br /&gt;
 mkdir render&lt;br /&gt;
 synfig my_animation.sifz -o render/frame.png&lt;br /&gt;
Then convert it to movie with ffmpeg&lt;br /&gt;
 ffmpeg -r &amp;lt;frame rate&amp;gt; -i render/frame.%04d.png &amp;lt;more settings from ffmpeg's manual&amp;gt; my_animation.mov&lt;br /&gt;
If you need nice open source format without any tweaks you may try ffmpeg2theora:&lt;br /&gt;
 ffmpeg2theora render/frame.%04d.png --inputfps &amp;lt;frame rate&amp;gt; -o my_animation.ogg&lt;br /&gt;
png takes less disk space then yuv.&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 21:38, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Increase performance by optimizing during compilation time? ==&lt;br /&gt;
&lt;br /&gt;
I would like to know what parameters do I need to apply to configure to improve performance. [[User:Genete|Genete]] 11:04, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
To optimize program you should set two environment variables&lt;br /&gt;
 export CFLAGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
First flag will be &amp;quot;-O3&amp;quot; (ow three). &amp;quot;-02&amp;quot; is normal optimization. &amp;quot;-03&amp;quot; is hard optimisation.&lt;br /&gt;
&lt;br /&gt;
Now you should get info about your CPU&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
find your cpu model name&lt;br /&gt;
&lt;br /&gt;
now go to man gcc and searc &amp;quot;-mtune&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find your cpu and add &amp;quot;-mtune=your-cpu -march=your-cpu&amp;quot; to CFLAGS. &lt;br /&gt;
&lt;br /&gt;
Then look at flags from /proc/cpuinfo and search it in gcc manual&lt;br /&gt;
For example I have 3dnow. So I can find &amp;quot;-m3dnow&amp;quot;. For sse I can find &amp;quot;-msse&amp;quot; and &amp;quot;-mfpmath=sse&amp;quot; (can make program unstable). &lt;br /&gt;
&lt;br /&gt;
Finaly you may add &amp;quot;-ffast-math&amp;quot; to disable math checks. But it can make program unstable.&lt;br /&gt;
&lt;br /&gt;
For my AthlonXP I'm using this flags:&lt;br /&gt;
 export CFLAGS=&amp;quot;-O3 -pipe -mtune=athlon-xp -march=athlon-xp -mmmx -msse -m3dnow -mfpmath=sse -ffast-math -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 12:05, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
For my Pentium3 i use the line:&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -pipe -mtune=pentium3 -march=pentium3 -msse -mfpmath=sse -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
The additional switches -mmmx and -ffast-math does seem to '''not''' yield any gain in computing performance! So you could leave them out.&lt;br /&gt;
--[[User:SvH|SvH]] 03:46, 20 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Import a movie into Synfig? ==&lt;br /&gt;
&lt;br /&gt;
To import a movie (image only, not sound) into synfig there is only one option for the moment: Extract an image sequence from the movie and import them using [[ListImporter]]. Before you can load the image sequence you have to extract it from the movie. There are several software to do that but a straight and easy way is to use mplayer:&lt;br /&gt;
&lt;br /&gt;
 mplayer mymovie.avi -vo png:z=1 -ss seconds-start -endpos duration &lt;br /&gt;
&lt;br /&gt;
where ''seconds-start'' are the seconds where you want to extract form and ''duration'' is the number of seconds you want to extract from ''mymovie.avi''. Also the image format specified in this case is png but jpeg or tga can be used also. See [http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html mplayer manual page] for more info.&lt;br /&gt;
&lt;br /&gt;
It would extract a set of files of the selected section of the movie. Each file takes the frame number padded with leading zeros as name.&lt;br /&gt;
&lt;br /&gt;
To put all the filenames into a ''.lst'' file just type this in the folder wehre the files are:&lt;br /&gt;
&lt;br /&gt;
 ls *.png &amp;gt;&amp;gt; mymovie.lst&lt;br /&gt;
&lt;br /&gt;
and add a line specifying the frame rate at the beginning of the text file:&lt;br /&gt;
&lt;br /&gt;
 FPS 25&lt;br /&gt;
&lt;br /&gt;
if the movie was 25 fps.&lt;br /&gt;
&lt;br /&gt;
== Granted Wishes ==&lt;br /&gt;
&lt;br /&gt;
=== MNG target filetype ===&lt;br /&gt;
&lt;br /&gt;
The ability to save as/in the Free/Open MNG (.mng) format [http://libpng.org/pub/mng/]&lt;br /&gt;
&lt;br /&gt;
A partial implementation was committed in SVN r470.&lt;br /&gt;
&lt;br /&gt;
It was implemented in svn 986. See [[Render options]]. --[[User:Genete|Genete]] 13:12, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Optionally display RGB in Hex in Color dialog ===&lt;br /&gt;
&lt;br /&gt;
(3) When colors are quoted as 3 bytes of hexadecimal, you have to convert them to decimal, divide by 255, multiply by 100 to get a number to type into the dialog box.  It's painful to match color schemes for example, with the [http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines Tango Icon Theme style guidelines].  [[User:pxegeek|PXEGeek]] 3/16/07&lt;br /&gt;
&lt;br /&gt;
: Added in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=40dda9d27b5249ee32f62d84c819ff569f078929 svn r354].  You can type 3 or 6 digit hex codes and hit return to use.  3 digit code 36a gives colour 3366aa (each digit is duplicated) -- [[User:Dooglus|dooglus]] 3/18/07&lt;br /&gt;
&lt;br /&gt;
:: Many thanks - already used many times! PXEGeek.&lt;br /&gt;
&lt;br /&gt;
::: Did you notice that you can use single digit codes too?  '5' gives 555555 for instance, giving you 16 equally spaces shades of black through white. -- [[User:Dooglus|dooglus]] 17:51, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Restore Default Layout ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; It's very difficult to put all the dialogs back where they were when you started the program, if you've closed them. In addition, with many programs, if you've done something with your window manager to take a window's position off screen, this command is sometimes the only way to bring them back.&lt;br /&gt;
-&amp;gt; I'd like to second this one - especially with the bug where dialog boxes sometime shrink to nothing or offscreen, and no amount of maximizing or minimizing restores them.  The only solution is to kill the windows, and none of the combo options in the dialog menu match the default configuration.  4/4/07 PXEGeek&lt;br /&gt;
&lt;br /&gt;
: Implemented in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=036306f3c2c265a604971728d50fcce258766552 svn r757] -- [[User:Dooglus|dooglus]] 17:48, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== General outline / Polygon-based Outline / &amp;quot;Set Tangents to Zero&amp;quot; button ===&lt;br /&gt;
(3.5) I'm no artist, thus my primary form of art is stick figures, not to mention, many interesting animations are done in stick-figure style. Stick figures must be perfectly straight to get the effect across, so when I'm making an outline using B-Curves, it is too time consuming to set the tangents to 0 each time. Similarly, outlines of other shapes like squares, circles and so forth would be very useful. Whichever of the above is easiest, please implement right away. --[[User:Dragontamer|Dragontamer]] 02:35, 19 November 2007 (EST)&lt;br /&gt;
: For perfectly straight lines, click without moving the mouse.  You will get a single point with no tangents.  Outline shapes would require some development, particularly with some thought given to backward compatibility.  A workaround you might consider is to create a duplicate shape with a different color and make the top one slightly smaller, so the outline of the one below shows.  [[User:Pxegeek|Pxegeek]] 21:58, 19 November 2007 (EST)&lt;br /&gt;
:: Well, in general, whenever I click on a point to edit it (say, to make it move somewhere in animation mode), there is a decent chance that I click on a tangent instead. Then, if I want to right click the point itself, I usually right click the tangent marker instead. It isn't that big a deal, but simplicity at the cost of power generally is a good thing, especially when it will save a few mouse clicks. &lt;br /&gt;
:: As for the outlines, yeah, I've tried that and it is a decent solution for now, although it is no replacement for a real outline. I am going to also experiment with a clamp to see if I can make the center of the shape have 100% alpha... but I don't have synfig on the computer I'm on right now. Thanks for the tips Pxegeek. --[[User:Dragontamer|Dragontamer]] 01:58, 27 November 2007 (EST)&lt;br /&gt;
::: You can press Alt+3 to hide tangent ducks. --[[User:Zelgadis|Zelgadis]] 09:27, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy &amp;amp; Paste/Image Importing ===&lt;br /&gt;
&lt;br /&gt;
(4) I sometimes make graphics in other programs, or use clipart and other images. Would it be possible for Synfig to be able to import images and/or copy and paste them?--Khlieeq 2007-07-19&lt;br /&gt;
Well, it doesn't support Copy &amp;amp; paste from the clipboard, but you can import images using &amp;quot;New Layer -&amp;gt; Other -&amp;gt; Import&amp;quot;.  This will create an Import layer, for which you can then edit the properties to point to the file containing your image.  PXEGeek.  2007-07-19&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recursive Waypoint Manipulation ===&lt;br /&gt;
&lt;br /&gt;
(4) it is really tiresome to revert changes to waypoints created by manipulating tangent/position ducks or change their interpolation functions. making it possible to right-click-modify the waypoint shown for objects that have some waypoint in a referenced sub-object would be great! -- timonator 2007-06-01&lt;br /&gt;
:You can do it in two ways: changing the interpolation method of the waypoint of paste canvas or editing the keyframe properties. The first allow to modify the waypoints interpolation method for all the waypoints of all the parameters of all the layers that are inside the paste canvas layer. You can right click on the left or right part of the waypoint to edit by a context menu the left or the right interpolation method of the waipoints. The second method would add and modify all the parameters that have any waypoint in the animation. See [[Keyframe]] for more detail. --[[User:Genete|Genete]] 13:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tweening for images developed in other imaging programs ===&lt;br /&gt;
&lt;br /&gt;
It's obvious I am a beginner at image movement, but morphing is not enough: movement across the page is needed.  Thanks for listening. [[User:Comwell@bellsouth.net|Comwell]]&amp;lt;br&amp;gt;&lt;br /&gt;
Imported images can be moved across the page.  They can also be scaled, rotated and deformed.  Was there a specific example you had in mind?  [[User:Pxegeek|pxegeek]]&amp;lt;br&amp;gt;&lt;br /&gt;
:I also would like a way to tween images that have been drawn in other programs. I've had trouble drawing with Bline tool and the drawing tool in Synfig, and I'd rather just draw with a paint brush (like the one in Photoshop). Another problem I have is that Synfig tends to shut down on me every 20 minutes or so, and it's really frustrating even with the auto recover feature, because my sketches disappear. It'd be nice if I'm able to draw all of the keyframes in Photoshop or another image program and import it to Synfig so that Synfig can tween and animate them. Thank you. [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
::You CAN use images, drawn in other programs. Just select &amp;quot;File-&amp;gt;Import&amp;quot; from [[Canvas Menu Caret|canvas menu]] --[[User:Zelgadis|Zelgadis]] 01:39, 24 November 2007 (EST)&lt;br /&gt;
:::But how do you animate using images from other sources? I tried to make 2 keyframes with 2 different images, and it doesn't animate. It just stays as 1 picture for the entire render. The closest thing I saw to importing images from another source into Synfig and having it animate is the Walking Cycle Tutorial, but I would still have to trace the images to make it animate. As I said earlier, I'm not entirely fond of using the draw/Bline tool.  [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
:::: Huina, there's no way to do what you want right now.  Interpolating between two images that are not created in Synfig is well beyond its scope right now.  However, what you could do is take an image and separate elements of the picture onto different layers (e.g. have a picture of an arm and another of the rest of the body) and you can move those around, stretch and rotate them.  (If you're familiar with the work of Terry Gilliam on Monty Python you'll know what I mean) I don't know how feasible it is to implement your request (I suspect some heavy lifting).  We'll keep it on the list, but don't hold your breath.  [[User:Pxegeek|Pxegeek]] 19:57, 24 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: I think, you hardly find any other animation package  which allow you to do such things. You could use a special tools for this task, like xmorph (http://xmorph.sourceforge.net/). But to do the tween between two bitmap images you STILL need to set points. It's not tracing, but very similar. Anyway, result may be poor and I'd better suggest to use technique, described in Walking Cycle Tutorial or which the [[User:Pxegeek|Pxegeek]] meant. --[[User:Zelgadis|Zelgadis]] 02:08, 25 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: There is a technique called &amp;quot;optical flow&amp;quot;.  It takes two input frames and calculates the movement of each individual pixel between the frames, allowing interpolation to be done. Here's an example: http://www.fxguide.com/article333.html.  It doesn't require setting of control points, but it has problems it's own set of problems: http://www.fxguide.com/article333.html. --[[User:Yoyobuae|Yoyobuae]] 13:32, 3 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Auto-link option in [[Draw tool]] ===&lt;br /&gt;
&lt;br /&gt;
(4) so that you can draw a line, and have its endpoint automatically link to a duck - or if Auto-connect is off, you can get a line object linked to the end of another line object. / I missed this too, it even should be like that by default I think. [[User:Maxy|Maxy]] 13:22, 25 Apr 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
: Isn't this done already?  We don't have line objects, but blines are automatically linked to if auto-connect is on.  Am I missing something? -- [[User:Dooglus|dooglus]] 17:29, 27 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::To clarify dooglus' comments - If you have an outline created by the draw tool highlighted in the layer dialog and the &amp;lt;b&amp;gt;auto-extend&amp;lt;/b&amp;gt; checkbox is checked, then you can continue drawing with the draw tool in that same layer.  Blines created with the Bline tool cannot be extended once a different tool or layer is selected.  [[User:Pxegeek|Pxegeek]] 23:46, 12 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::: A line is a line - Synfig doesn't remember whether it was created with the Bline tool or the Draw tool - so you can extend blines created with the bline tool using the draw tool.  Just make sure the line is selected (so that its ducks are visible), not looped (so that it has end points to extend from), enable the draw tool, check 'auto extend' and start drawing at one of its end ducks. [[User:Dooglus|dooglus]] 05:47, 13 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
So this sounds like it is already done.  But on a related note, being able to open an existing bline in the bline tool to extend it would be useful. -- [[User:Dooglus|dooglus]] 04:51, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Layer hide boolean parameter ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; An animatable way to remove a layer from visibility and consideration in tools. And as an option, to hide the layer in the layer list while it is invisible. This crosses over functionality from the [[Amount Parameter]], the Show/Hide checkbox in the [[Layers Panel]], and builds upon it as well, allowing the [[Layers Panel]] to dynamically unclutter. ''(This feature request is a refactoring of the [[Amount Parameter]])''&lt;br /&gt;
: With the addition of the [[Convert#Switch|Switch]] type conversion it is not needed this feature request. You can convert the Amount parameter to a Switch value and give 0 and 1 to the Linked OFF/ON values. --[[User:Genete|Genete]] 13:20, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Riding ducks ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Not chocobos. The ability to link a duck from one shape to an arbitrary position on another path, without creating an extra shape duck on that path.&lt;br /&gt;
:Already done in SVN.[[User:Genete|Genete]] 18:59, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Image filmstrip import ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Allow import of a series of images (TGA, etc) as frames of an animation, on a layer. &amp;lt;br&amp;gt;&lt;br /&gt;
Response - 'lst' files of a list of images can be imported.  I've used this to develop a walk cycle.  See [[Walk_Cycle|Walk cycle]] for an example.  [[user:pxegeek|pxegeek]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
I have seen some interesting methods for helping character design/animation in different 2d/3d software.  Hash's animation master has 'poses' which are extremes of a model, for example smiling and frowning, once you add these extremes ot a set you can use slider to create a pose that somewhere inbetween.  The real power of this is when you have serveral different poses on the same object, a face say,  you can easily come up with new facial expressions. Maybe something similar could be done with synfig using layers and groups, the implementation could something similar to Moho's switch layers. --[[User:Triclops|Triclops]] 09:52, 9 Aug 2006 (PDT)&lt;br /&gt;
: Have you read this tutorial? [[Reuse Animations]]. It is very close to the Switch layer of Moho/Anime Studio. Also You can change the Canvas parameter to any other canvas dynamically in the time line by clicking on it and selecting other exported canvas. Other option is convert the canvas to a Switch type and alternate between two different canvas.  --[[User:Genete|Genete]] 13:26, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== More Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
[[New Animation Tools|Added here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Improved User Experience for First Contact ===&lt;br /&gt;
* Single file download and installer (at least for Windows)&lt;br /&gt;
* Ability to draw the first object directly after starting the application (start with an empty document)&lt;br /&gt;
* Ability to animate the object directly after drawing the first object (new documents have a say 3 seconds timeline)&lt;br /&gt;
In my opinion this is crucial to attract potential users. Because if I see how easy it is to create my first animation I'm going to accept all the bugs and clumsyness. A good example is the Pencil animation software. --[[User:Dmd|Dmd]] 13:50, 26 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
: I've implemented #2 and #3 above in svn r1519 &amp;amp; 1520.  If no files are specified to be opened when running studio, it'll make a new one.  It won't pop up the canvas properties dialog when making new canvases by default.  And the default end time is 5s (3s is small enough to cause the time slider to show &amp;quot;1s 12f&amp;quot;, whereas 5s looks cleaner). -- [[User:Dooglus|dooglus]] 04:00, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Automatic attach and manipulate a Vertex to a Bline ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Inverse Duck Manipulation|this]] page to understand what we want. --[[User:Genete|Genete]] 12:43, 3 March 2008 (EST).&lt;br /&gt;
:Already done in SVN. [[User:Genete|Genete]] 19:00, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle visible ducks ===&lt;br /&gt;
(3) So pressing, say, tab while editing a Bline toggles which vertices/ducks are visible - so we can easily move the actual vertices around without having the view cluttered by tangeants (and also make it easier to select 'Loop' rather than 'Split Tangeants' when creating the thing.)&lt;br /&gt;
&lt;br /&gt;
Given that extra ducks such as the width ones listed above may be added, this might become more and more necessary. If too many different sets are added for toggling to be feasible, each visibility for each set can be hotkeyed.&lt;br /&gt;
&lt;br /&gt;
: Synfig already have hotkeys to toggle visibility of the ducks. See [[Keyboard_Shortcuts#Hotkeys_Visual_Guide]]. --[[User:Zelgadis|Zelgadis]] 00:39, 22 April 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8333</id>
		<title>Doc:How Do I</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Doc:How_Do_I&amp;diff=8333"/>
				<updated>2009-01-07T22:04:40Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* Apply a gradient to an object instead of the entire canvas? */ added changing shorcut keys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Categories--&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own questions here or [[Contact|contact]] us with them. Or put them on the [[Wiki Wish List]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Insert some text? ==&lt;br /&gt;
&lt;br /&gt;
With recent development versions, there is a text tool. If you are using 0.61.08 or earlier, use right click on your canvas and choose Layer &amp;gt; New &amp;gt; Other &amp;gt; Text.&lt;br /&gt;
&lt;br /&gt;
== How to change shortcut keys? ==&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
'''3.''' Change the shorcuts you want, save and close.&lt;br /&gt;
&lt;br /&gt;
== How to have a Flash-like shorcut keys ==&lt;br /&gt;
'''1.''' Follow the step on how to change shortcut keys, except for step 3.&lt;br /&gt;
'''2.''' Copy the code below and paste it on the very last part of '''accelrc''' then save and close it.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apply a gradient to an object instead of the entire canvas? ==&lt;br /&gt;
&lt;br /&gt;
# Create the region you want to fill with a gradient, and the gradient layer, if you haven't already.&lt;br /&gt;
# Make sure that the gradient layer is above the region layer in the [[Layers Panel]].&lt;br /&gt;
# Select both layers, right click, and select [[Encapsulate]].&lt;br /&gt;
# Expand the new [[Paste Canvas|Inline Canvas]] layer if it's not already, and select your gradient layer.&lt;br /&gt;
# In the [[Params Panel]] select the [[Blend Method]] parameter, and choose [[Blend Method#Onto|Onto]] from the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
The gradient will clip to the visible area of the region below it inside the [[Paste Canvas|Inline Canvas]]. (and any other layers in that section).&lt;br /&gt;
&lt;br /&gt;
== Show or hide a layer, or fade the effect of a blur? ==&lt;br /&gt;
In the [[Params Panel]], look for an option labeled [[Amount Parameter|Amount]] - this controls how much of the blended result of the layer is composited with the blend of the layers beneath it.&lt;br /&gt;
&lt;br /&gt;
In other words, for a typical layer, this will 'fade it out'. For a [[Blur Layer]] set to &amp;quot;[[Blend Method#Straight|Straight]]&amp;quot;, this will fade ''between'' the blurred version and the unblurred version of the canvas. If you want it to become less blurry, adjust the [[Blur Layer#Size|Blur Layer's 'size' parameter]].&lt;br /&gt;
&lt;br /&gt;
== Fill an outline? ==&lt;br /&gt;
(Requested by [[User:Karlb|Karlb]])&lt;br /&gt;
&lt;br /&gt;
There are several options:&lt;br /&gt;
* The easiest way is to link a new region layer to the outline's shape.&lt;br /&gt;
*# Select the outline you want to fill.&lt;br /&gt;
*# In the Params Panel, right-click the Vertices parameter, select &amp;quot;Export&amp;quot;, enter a name for the shape, and hit return.  This will export the shape of the outline, making it visible in the Children dialog.&lt;br /&gt;
*# In the Children dialog, open the ValueBase Nodes tree and select the name you just saved the shape as.&lt;br /&gt;
*# From the [[Layer Menu]] (either context-click on the [[Layers Panel]] or use the [[Canvas Menu Caret]]) create a new [[Region Layer]] by selecting &amp;quot;New Layer -&amp;gt; Geometry -&amp;gt; Region&amp;quot;. Ensure that the created layer is selected.&lt;br /&gt;
*# In the parameter dialog, right-click the Vertices parameter and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
*# Now, if you don't need exported shape, you can unexport it: right click name of the shape in the Children dialog and click &amp;quot;Unexport&amp;quot;.&lt;br /&gt;
* Similar to the above, but using a different method:&lt;br /&gt;
*# Create a new region layer as above, and leave it selected.&lt;br /&gt;
*# Don't make any changes to the outline layer, which you want to fill! (see the Tier 5 on the [[Linking]] page for details).&lt;br /&gt;
*# Select both layers in the [[Layers Panel]] This will display only the parameters shared by both layers in the [[Params Panel]].&lt;br /&gt;
*# Context-click on the [[Vertices Parameter]], and select [[Linking|Link]].&lt;br /&gt;
*# The [[Region Layer]] will snap to the shape of the [[Outline Layer]].&lt;br /&gt;
* When you create an [[Outline Layer|outline]] with the [[Bline Tool]] that you intend to be a filled area as well, make sure you select the Fill checkbox in the [[Bline Tool#Options|tool options dialog]]. Obviously, this doesn't help much if you realise later that you needed a fill here.&lt;br /&gt;
* If you are using the [[draw tool]], there is a button at the bottom of the [[draw tool#Options|tool options dialog]] labeled &amp;quot;Fill Last Stroke&amp;quot;, which creates a new [[Region Layer]] and links its shape to the previously drawn outline. Unfortunately, it doesn't work as of Synfig Studio v0.61.04.  It has been fixed in the current SVN version of the code.&lt;br /&gt;
* Create a [[Region Layer|region]] with the same number of ducks, and manually link each duck. If you want a region that depends on multiple outline layers, this is really your only choice for now.&lt;br /&gt;
* Use the draw tool, select only the outline to fill, draw a stroke roughly following the outline and make sure you're holding the Control key when you left go of the mouse button at the end of the stroke.  This doesn't work 100% right at the moment.&lt;br /&gt;
&lt;br /&gt;
== Dock windows together? ==&lt;br /&gt;
&lt;br /&gt;
*To dock (join) separate windows into one you must drag the tab ''icons'' for each of the tools into another window. &lt;br /&gt;
*You can create subdivisions inside the windows by dragging the icons into the side tabs (located around the edges, the look like rectangles). &lt;br /&gt;
*Tool tabs inside the window can be arranged by dragging them on top of one another, therefore changing the order.&lt;br /&gt;
*''How Do I min/maximize all Synfig windows on a Windows pc''? There must be an easy way/tool to do this?&lt;br /&gt;
&lt;br /&gt;
== Use an external bitmap? ==&lt;br /&gt;
&lt;br /&gt;
* In the image menu (&amp;gt;) choose file--&amp;gt;import. PNG with alpha channel works fine.&lt;br /&gt;
* To animate it without accidental stretching, right-click on the layer and choose encapsulate. You can then animate the position of the new &amp;quot;Inline Canvas&amp;quot; layer instead of the bbox.&lt;br /&gt;
&lt;br /&gt;
== Use an image as a fill colour? ==&lt;br /&gt;
&lt;br /&gt;
Make a new object (bline, region, squares, circles, polygons all work) &lt;br /&gt;
Import the image you want as the fill colour, and put it on the layer underneith your object. Set the blend method of the image (using the [[Parameters Palette]]) to &amp;quot;onto&amp;quot; or &amp;quot;straightonto&amp;quot;. &lt;br /&gt;
 Encapsulate the object and the fill colour image, otherwise everthing below the image will have the same fill colour.&lt;br /&gt;
Be sure to have a look at what the other composite options do as well.&lt;br /&gt;
&lt;br /&gt;
== Use an external Vector? ==&lt;br /&gt;
&lt;br /&gt;
Synfig doesn't yet support vector import because no-one has written an import process yet. You can use the Svg2synfig [[Converters|converter]], or import it as a bitmap and trace over it in synfig. If you want to implement vector import we would gladly accept your patch.&lt;br /&gt;
&lt;br /&gt;
== Close a bline? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the starting point and then click on loop bline.&lt;br /&gt;
&lt;br /&gt;
Note: It doesn't work unless the initial point has a tangent - ie the first segment is curved. But you can hide tangent ducks (Alt+3, or &amp;quot;Caret Menu &amp;gt; View &amp;gt; Show/Hide Ducks &amp;gt; Show tangent ducks&amp;quot;) and process as described. Don't forget to press (Alt+3) after that to show tangent ducks again.&lt;br /&gt;
&lt;br /&gt;
== How do I transform encapsulated objects? ==&lt;br /&gt;
&lt;br /&gt;
* Right click on the Encapsulated object in the Layer dialog and choose &amp;quot;select all child layers&amp;quot;. Then you select the ducks you want to transform (usually just all of them, like for rotating the object), and the rotate or scale tool and do the work.&lt;br /&gt;
&lt;br /&gt;
== Make objects go behind each other, without moving layers? ==&lt;br /&gt;
&lt;br /&gt;
You'll notice each layer you make has a number in the z depth column in the Layers Panel. Say you have 3 layers, they will be numbered 2 (lowest, e.g. a square) 1 (eg a circle) 0 (highest, the default, e.g. a line). In order to make layer 1, the circle, pass behind layer 2, the square, change its z depth to be 3 or more. The z depth of the circle needs to be greater than 2 in order to be behind the square. To make the square on top of everything, you'd change its z depth to -1 or less. &lt;br /&gt;
&lt;br /&gt;
Positive numbers on the z axis go into the screen, and negative numbers go out of the screen, towards the viewer.  &lt;br /&gt;
&lt;br /&gt;
It is possible to animate this effect, but each layer is discrete. They seem to go from 0 to 0.9999.&lt;br /&gt;
&lt;br /&gt;
In addition, objects in encapsulated layers can only go behind other objects in the same encapsulated layer. However an encapsulated layer can go behind another encapsulated layer.&lt;br /&gt;
&lt;br /&gt;
== Copy a complex convert combination between parameters of different layers? ==&lt;br /&gt;
&lt;br /&gt;
For example: you want to copy a complicated [[Convert|conversion]] type that you have in one parameter from a layer, to other parameter (maybe not a root parameter, but a sub-parameter) of other layer. If you [[Export|export]] the complicated conversion type from the original layer and then go to the other layer and select [[Connect]] (right click and the exported and the parameter both selected) then you have the parameter form the second layer to be exactly the same than the original one. But there is a drawback: if you modify one of the sub-parameters in the complicated conversion type (e.g. you change the value of one of them) then automatically the same sub-parameter of the other layer is changed.&lt;br /&gt;
&lt;br /&gt;
How can you copy the conversion but allow modify the sub-parameters independently on each layer? &lt;br /&gt;
&lt;br /&gt;
Once you have achieved the complex conversion type in the original layer, &amp;lt;u&amp;gt;don't export the root parameter!&amp;lt;/u&amp;gt; If you have done yet [[Export|unexport]] it. (Why?. You will understand it later.) Now duplicate the original layer. Then you should obtain the same layer with the same conversion type placed at the same parameter (but not exported). NOW export the parameter from the duplicated layer. Then go to the (sub) parameter of the layer where you want to copy the complex conversion type and Connect it to the just exported parameter form the duplicated layer. Now delete the duplicated layer (!). Then the exported [[ValueNode]] still undeleted and the layer where you wanted to copy the complex convert type have a (sub) parameter connected to it. You can [[Export|unexport]] the ValueNode or not. It is up to you. But notice that the conversion type is already copied into other (sub) parameter of other layer and they are independent as well as you can change one of them (by modifying the sub-parameters) and the other remains untouched.&lt;br /&gt;
&lt;br /&gt;
== Make an existing animation run at half speed? ==&lt;br /&gt;
&lt;br /&gt;
If you have an animation that runs from 0s to 10s and you want it to run at half speed from 0s to 20s, how can you do that?&lt;br /&gt;
&lt;br /&gt;
* Either: encapsulate it, and use the 'time offset' parameter in the encapsulation layer to slow it down:&lt;br /&gt;
** Right-click 'time offset' in the encapsulation layer, convert&amp;gt;linear, rate -0.5 offset 0.  That means offset the time by -0.5 seconds per second - or in other words, run at half speed&lt;br /&gt;
** Or, putting waypoints on the 'time offset' param would work too: 0 at 0s and -10 at 20s.  (The choice between using a linear convert and valuenodes is entirely up to you.  They both achieve the same result in this simple case).&lt;br /&gt;
&lt;br /&gt;
* Or: use a [[Time Loop Layer]].  The first method seems better and more intuitive in this case, but there are ways of getting the same effect from the Time Loop layer.  Perhaps the Time Loop layer is better if the animation doesn't run from 0s, but from some other time.  Anyway: put a Time Loop layer over the layers you wish to slow down, and:&lt;br /&gt;
** Either: set duration to 0, local time to 0, convert-&amp;gt;linear the link time and set rate to 0.5 - this slows the animation down *to* 50% of its original speed;  use bigger rates to slow it down less&lt;br /&gt;
** Or: set duration to 1h (*), link time to 0, convert-&amp;gt;linear the local time and set rate to 0.5 - this slows the animation down *by* 50%; use bigger rates to slow it down more&lt;br /&gt;
(*) if your animation is longer than 1h then set this parameter to EOT (End Of Time) what is the same as Infinite (INF) for a real number but for a time parameter.&lt;br /&gt;
&lt;br /&gt;
== Draw a rectangle with a given width and height? ==&lt;br /&gt;
&lt;br /&gt;
I was asked on IRC how to specify the width and height of a rectangle, rather than having to specify the position of two opposite corners.  Here's how:&lt;br /&gt;
&lt;br /&gt;
* draw a rectangle&lt;br /&gt;
* go to the [[Params Panel]]&lt;br /&gt;
* right-click the 'point 1' parameter and [[Export]]&lt;br /&gt;
* give it a name, &amp;quot;p1&amp;quot; say&lt;br /&gt;
* right-click the 'point 2' parameter and [[Convert]] to [[Convert#Add|Add]]&lt;br /&gt;
* (that's saying that rather than specifying the absolute position of the other point, you want synfig to calculate it for you)&lt;br /&gt;
* (it will make 2 new sub-parameters for 'point 2', and the value used for point 2 will be their sum so we want to tell it to use 'point 1' and your (width,height))&lt;br /&gt;
* open up the sub-parameters of 'point 2' by clicking the triangle to its left&lt;br /&gt;
* go to the [[Children Panel]], open up the values and select the one you exported earlier (p1)&lt;br /&gt;
* right-click the &amp;quot;LHS&amp;quot; parameter in the parameters dialog and [[Connect]] it&lt;br /&gt;
* then enter the width and height you want in the 'RHS' parameter&lt;br /&gt;
&lt;br /&gt;
== Make linked BLine vertices not affected by Rotate layer? ==&lt;br /&gt;
Look at the http://dooglus.rincevent.net/synfig/logs/2008/%23synfig-2008-02-07.log &lt;br /&gt;
See also: [[Convert]].&lt;br /&gt;
&lt;br /&gt;
== Create dashed outlines? ==&lt;br /&gt;
&lt;br /&gt;
If you want to make simple dashed outlines the faster way is proceed like this:&lt;br /&gt;
&lt;br /&gt;
* Create a Curve Gradient and an Outline over the same [[Bline]] using the [[Bline Tool]] options. Check both Outline and Gradient at the [[Tool Options Panel]].&lt;br /&gt;
* Raise up the gradient layer (it is created below the [[Outline Layer]]).&lt;br /&gt;
* Modify the gradient [[Blend Method]] parameter to be Straight Onto. That would render the gradient onto the outline width. Also it wouldn't render the outline, so transparent portions of the gradient are transparent.&lt;br /&gt;
* Check the 'Perpendicular' parameter of the Curve Gradient Layer.&lt;br /&gt;
* [[Convert]] the Gradient Parameter of the Curve Gradient Layer to be one of those types: Stripes or Repeat Gradient.&lt;br /&gt;
* Modify the properties of the sub parameters to achieve the desired effect.&lt;br /&gt;
&lt;br /&gt;
== Render to AVI with higher quality? ==&lt;br /&gt;
&lt;br /&gt;
=== Using raw video ===&lt;br /&gt;
The module used by Synfig to render AVI files is ffmpeg. For the moment there is not interface to control ffmpeg options so you render with a fixed bitrate and quality. If you want the maximum quality in your AVI file, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Render your animation to yuv420p format. To do that select that target at the drop down list of the render dialog and add the &amp;quot;.yuv&amp;quot; extension to your animation name (without quotes).&lt;br /&gt;
* Once rendered (it would produce a huge size yuv file) you can quickly convert it to AVI using this command:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -i animation.yuv -sameq animation.avi&lt;br /&gt;
&lt;br /&gt;
Change the animation file name to your one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rendering trough png sequence. ===&lt;br /&gt;
Render your sif to png sequence &lt;br /&gt;
 mkdir render&lt;br /&gt;
 synfig my_animation.sifz -o render/frame.png&lt;br /&gt;
Then convert it to movie with ffmpeg&lt;br /&gt;
 ffmpeg -r &amp;lt;frame rate&amp;gt; -i render/frame.%04d.png &amp;lt;more settings from ffmpeg's manual&amp;gt; my_animation.mov&lt;br /&gt;
If you need nice open source format without any tweaks you may try ffmpeg2theora:&lt;br /&gt;
 ffmpeg2theora render/frame.%04d.png --inputfps &amp;lt;frame rate&amp;gt; -o my_animation.ogg&lt;br /&gt;
png takes less disk space then yuv.&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 21:38, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Increase performance by optimizing during compilation time? ==&lt;br /&gt;
&lt;br /&gt;
I would like to know what parameters do I need to apply to configure to improve performance. [[User:Genete|Genete]] 11:04, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
To optimize program you should set two environment variables&lt;br /&gt;
 export CFLAGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
First flag will be &amp;quot;-O3&amp;quot; (ow three). &amp;quot;-02&amp;quot; is normal optimization. &amp;quot;-03&amp;quot; is hard optimisation.&lt;br /&gt;
&lt;br /&gt;
Now you should get info about your CPU&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
find your cpu model name&lt;br /&gt;
&lt;br /&gt;
now go to man gcc and searc &amp;quot;-mtune&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find your cpu and add &amp;quot;-mtune=your-cpu -march=your-cpu&amp;quot; to CFLAGS. &lt;br /&gt;
&lt;br /&gt;
Then look at flags from /proc/cpuinfo and search it in gcc manual&lt;br /&gt;
For example I have 3dnow. So I can find &amp;quot;-m3dnow&amp;quot;. For sse I can find &amp;quot;-msse&amp;quot; and &amp;quot;-mfpmath=sse&amp;quot; (can make program unstable). &lt;br /&gt;
&lt;br /&gt;
Finaly you may add &amp;quot;-ffast-math&amp;quot; to disable math checks. But it can make program unstable.&lt;br /&gt;
&lt;br /&gt;
For my AthlonXP I'm using this flags:&lt;br /&gt;
 export CFLAGS=&amp;quot;-O3 -pipe -mtune=athlon-xp -march=athlon-xp -mmmx -msse -m3dnow -mfpmath=sse -ffast-math -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
--[[User:AkhIL|AkhIL]] 12:05, 9 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
For my Pentium3 i use the line:&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -pipe -mtune=pentium3 -march=pentium3 -msse -mfpmath=sse -funsigned-char -fno-strict-aliasing&amp;quot;&lt;br /&gt;
 export CXXFLAGS=$CFLAGS&lt;br /&gt;
&lt;br /&gt;
The additional switches -mmmx and -ffast-math does seem to '''not''' yield any gain in computing performance! So you could leave them out.&lt;br /&gt;
--[[User:SvH|SvH]] 03:46, 20 May 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Import a movie into Synfig? ==&lt;br /&gt;
&lt;br /&gt;
To import a movie (image only, not sound) into synfig there is only one option for the moment: Extract an image sequence from the movie and import them using [[ListImporter]]. Before you can load the image sequence you have to extract it from the movie. There are several software to do that but a straight and easy way is to use mplayer:&lt;br /&gt;
&lt;br /&gt;
 mplayer mymovie.avi -vo png:z=1 -ss seconds-start -endpos duration &lt;br /&gt;
&lt;br /&gt;
where ''seconds-start'' are the seconds where you want to extract form and ''duration'' is the number of seconds you want to extract from ''mymovie.avi''. Also the image format specified in this case is png but jpeg or tga can be used also. See [http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html mplayer manual page] for more info.&lt;br /&gt;
&lt;br /&gt;
It would extract a set of files of the selected section of the movie. Each file takes the frame number padded with leading zeros as name.&lt;br /&gt;
&lt;br /&gt;
To put all the filenames into a ''.lst'' file just type this in the folder wehre the files are:&lt;br /&gt;
&lt;br /&gt;
 ls *.png &amp;gt;&amp;gt; mymovie.lst&lt;br /&gt;
&lt;br /&gt;
and add a line specifying the frame rate at the beginning of the text file:&lt;br /&gt;
&lt;br /&gt;
 FPS 25&lt;br /&gt;
&lt;br /&gt;
if the movie was 25 fps.&lt;br /&gt;
&lt;br /&gt;
== Granted Wishes ==&lt;br /&gt;
&lt;br /&gt;
=== MNG target filetype ===&lt;br /&gt;
&lt;br /&gt;
The ability to save as/in the Free/Open MNG (.mng) format [http://libpng.org/pub/mng/]&lt;br /&gt;
&lt;br /&gt;
A partial implementation was committed in SVN r470.&lt;br /&gt;
&lt;br /&gt;
It was implemented in svn 986. See [[Render options]]. --[[User:Genete|Genete]] 13:12, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Optionally display RGB in Hex in Color dialog ===&lt;br /&gt;
&lt;br /&gt;
(3) When colors are quoted as 3 bytes of hexadecimal, you have to convert them to decimal, divide by 255, multiply by 100 to get a number to type into the dialog box.  It's painful to match color schemes for example, with the [http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines Tango Icon Theme style guidelines].  [[User:pxegeek|PXEGeek]] 3/16/07&lt;br /&gt;
&lt;br /&gt;
: Added in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=40dda9d27b5249ee32f62d84c819ff569f078929 svn r354].  You can type 3 or 6 digit hex codes and hit return to use.  3 digit code 36a gives colour 3366aa (each digit is duplicated) -- [[User:Dooglus|dooglus]] 3/18/07&lt;br /&gt;
&lt;br /&gt;
:: Many thanks - already used many times! PXEGeek.&lt;br /&gt;
&lt;br /&gt;
::: Did you notice that you can use single digit codes too?  '5' gives 555555 for instance, giving you 16 equally spaces shades of black through white. -- [[User:Dooglus|dooglus]] 17:51, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== Restore Default Layout ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; It's very difficult to put all the dialogs back where they were when you started the program, if you've closed them. In addition, with many programs, if you've done something with your window manager to take a window's position off screen, this command is sometimes the only way to bring them back.&lt;br /&gt;
-&amp;gt; I'd like to second this one - especially with the bug where dialog boxes sometime shrink to nothing or offscreen, and no amount of maximizing or minimizing restores them.  The only solution is to kill the windows, and none of the combo options in the dialog menu match the default configuration.  4/4/07 PXEGeek&lt;br /&gt;
&lt;br /&gt;
: Implemented in [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=commitdiff;h=036306f3c2c265a604971728d50fcce258766552 svn r757] -- [[User:Dooglus|dooglus]] 17:48, 25 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== General outline / Polygon-based Outline / &amp;quot;Set Tangents to Zero&amp;quot; button ===&lt;br /&gt;
(3.5) I'm no artist, thus my primary form of art is stick figures, not to mention, many interesting animations are done in stick-figure style. Stick figures must be perfectly straight to get the effect across, so when I'm making an outline using B-Curves, it is too time consuming to set the tangents to 0 each time. Similarly, outlines of other shapes like squares, circles and so forth would be very useful. Whichever of the above is easiest, please implement right away. --[[User:Dragontamer|Dragontamer]] 02:35, 19 November 2007 (EST)&lt;br /&gt;
: For perfectly straight lines, click without moving the mouse.  You will get a single point with no tangents.  Outline shapes would require some development, particularly with some thought given to backward compatibility.  A workaround you might consider is to create a duplicate shape with a different color and make the top one slightly smaller, so the outline of the one below shows.  [[User:Pxegeek|Pxegeek]] 21:58, 19 November 2007 (EST)&lt;br /&gt;
:: Well, in general, whenever I click on a point to edit it (say, to make it move somewhere in animation mode), there is a decent chance that I click on a tangent instead. Then, if I want to right click the point itself, I usually right click the tangent marker instead. It isn't that big a deal, but simplicity at the cost of power generally is a good thing, especially when it will save a few mouse clicks. &lt;br /&gt;
:: As for the outlines, yeah, I've tried that and it is a decent solution for now, although it is no replacement for a real outline. I am going to also experiment with a clamp to see if I can make the center of the shape have 100% alpha... but I don't have synfig on the computer I'm on right now. Thanks for the tips Pxegeek. --[[User:Dragontamer|Dragontamer]] 01:58, 27 November 2007 (EST)&lt;br /&gt;
::: You can press Alt+3 to hide tangent ducks. --[[User:Zelgadis|Zelgadis]] 09:27, 27 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy &amp;amp; Paste/Image Importing ===&lt;br /&gt;
&lt;br /&gt;
(4) I sometimes make graphics in other programs, or use clipart and other images. Would it be possible for Synfig to be able to import images and/or copy and paste them?--Khlieeq 2007-07-19&lt;br /&gt;
Well, it doesn't support Copy &amp;amp; paste from the clipboard, but you can import images using &amp;quot;New Layer -&amp;gt; Other -&amp;gt; Import&amp;quot;.  This will create an Import layer, for which you can then edit the properties to point to the file containing your image.  PXEGeek.  2007-07-19&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recursive Waypoint Manipulation ===&lt;br /&gt;
&lt;br /&gt;
(4) it is really tiresome to revert changes to waypoints created by manipulating tangent/position ducks or change their interpolation functions. making it possible to right-click-modify the waypoint shown for objects that have some waypoint in a referenced sub-object would be great! -- timonator 2007-06-01&lt;br /&gt;
:You can do it in two ways: changing the interpolation method of the waypoint of paste canvas or editing the keyframe properties. The first allow to modify the waypoints interpolation method for all the waypoints of all the parameters of all the layers that are inside the paste canvas layer. You can right click on the left or right part of the waypoint to edit by a context menu the left or the right interpolation method of the waipoints. The second method would add and modify all the parameters that have any waypoint in the animation. See [[Keyframe]] for more detail. --[[User:Genete|Genete]] 13:10, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tweening for images developed in other imaging programs ===&lt;br /&gt;
&lt;br /&gt;
It's obvious I am a beginner at image movement, but morphing is not enough: movement across the page is needed.  Thanks for listening. [[User:Comwell@bellsouth.net|Comwell]]&amp;lt;br&amp;gt;&lt;br /&gt;
Imported images can be moved across the page.  They can also be scaled, rotated and deformed.  Was there a specific example you had in mind?  [[User:Pxegeek|pxegeek]]&amp;lt;br&amp;gt;&lt;br /&gt;
:I also would like a way to tween images that have been drawn in other programs. I've had trouble drawing with Bline tool and the drawing tool in Synfig, and I'd rather just draw with a paint brush (like the one in Photoshop). Another problem I have is that Synfig tends to shut down on me every 20 minutes or so, and it's really frustrating even with the auto recover feature, because my sketches disappear. It'd be nice if I'm able to draw all of the keyframes in Photoshop or another image program and import it to Synfig so that Synfig can tween and animate them. Thank you. [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
::You CAN use images, drawn in other programs. Just select &amp;quot;File-&amp;gt;Import&amp;quot; from [[Canvas Menu Caret|canvas menu]] --[[User:Zelgadis|Zelgadis]] 01:39, 24 November 2007 (EST)&lt;br /&gt;
:::But how do you animate using images from other sources? I tried to make 2 keyframes with 2 different images, and it doesn't animate. It just stays as 1 picture for the entire render. The closest thing I saw to importing images from another source into Synfig and having it animate is the Walking Cycle Tutorial, but I would still have to trace the images to make it animate. As I said earlier, I'm not entirely fond of using the draw/Bline tool.  [[User:xychefoo@gmail.com|Huina]]&lt;br /&gt;
:::: Huina, there's no way to do what you want right now.  Interpolating between two images that are not created in Synfig is well beyond its scope right now.  However, what you could do is take an image and separate elements of the picture onto different layers (e.g. have a picture of an arm and another of the rest of the body) and you can move those around, stretch and rotate them.  (If you're familiar with the work of Terry Gilliam on Monty Python you'll know what I mean) I don't know how feasible it is to implement your request (I suspect some heavy lifting).  We'll keep it on the list, but don't hold your breath.  [[User:Pxegeek|Pxegeek]] 19:57, 24 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: I think, you hardly find any other animation package  which allow you to do such things. You could use a special tools for this task, like xmorph (http://xmorph.sourceforge.net/). But to do the tween between two bitmap images you STILL need to set points. It's not tracing, but very similar. Anyway, result may be poor and I'd better suggest to use technique, described in Walking Cycle Tutorial or which the [[User:Pxegeek|Pxegeek]] meant. --[[User:Zelgadis|Zelgadis]] 02:08, 25 November 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:::: There is a technique called &amp;quot;optical flow&amp;quot;.  It takes two input frames and calculates the movement of each individual pixel between the frames, allowing interpolation to be done. Here's an example: http://www.fxguide.com/article333.html.  It doesn't require setting of control points, but it has problems it's own set of problems: http://www.fxguide.com/article333.html. --[[User:Yoyobuae|Yoyobuae]] 13:32, 3 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Auto-link option in [[Draw tool]] ===&lt;br /&gt;
&lt;br /&gt;
(4) so that you can draw a line, and have its endpoint automatically link to a duck - or if Auto-connect is off, you can get a line object linked to the end of another line object. / I missed this too, it even should be like that by default I think. [[User:Maxy|Maxy]] 13:22, 25 Apr 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
: Isn't this done already?  We don't have line objects, but blines are automatically linked to if auto-connect is on.  Am I missing something? -- [[User:Dooglus|dooglus]] 17:29, 27 September 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::To clarify dooglus' comments - If you have an outline created by the draw tool highlighted in the layer dialog and the &amp;lt;b&amp;gt;auto-extend&amp;lt;/b&amp;gt; checkbox is checked, then you can continue drawing with the draw tool in that same layer.  Blines created with the Bline tool cannot be extended once a different tool or layer is selected.  [[User:Pxegeek|Pxegeek]] 23:46, 12 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
::: A line is a line - Synfig doesn't remember whether it was created with the Bline tool or the Draw tool - so you can extend blines created with the bline tool using the draw tool.  Just make sure the line is selected (so that its ducks are visible), not looped (so that it has end points to extend from), enable the draw tool, check 'auto extend' and start drawing at one of its end ducks. [[User:Dooglus|dooglus]] 05:47, 13 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
So this sounds like it is already done.  But on a related note, being able to open an existing bline in the bline tool to extend it would be useful. -- [[User:Dooglus|dooglus]] 04:51, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Layer hide boolean parameter ===&lt;br /&gt;
&lt;br /&gt;
(3) &amp;amp;mdash; An animatable way to remove a layer from visibility and consideration in tools. And as an option, to hide the layer in the layer list while it is invisible. This crosses over functionality from the [[Amount Parameter]], the Show/Hide checkbox in the [[Layers Panel]], and builds upon it as well, allowing the [[Layers Panel]] to dynamically unclutter. ''(This feature request is a refactoring of the [[Amount Parameter]])''&lt;br /&gt;
: With the addition of the [[Convert#Switch|Switch]] type conversion it is not needed this feature request. You can convert the Amount parameter to a Switch value and give 0 and 1 to the Linked OFF/ON values. --[[User:Genete|Genete]] 13:20, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Riding ducks ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Not chocobos. The ability to link a duck from one shape to an arbitrary position on another path, without creating an extra shape duck on that path.&lt;br /&gt;
:Already done in SVN.[[User:Genete|Genete]] 18:59, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Image filmstrip import ===&lt;br /&gt;
&lt;br /&gt;
(2) &amp;amp;mdash; Allow import of a series of images (TGA, etc) as frames of an animation, on a layer. &amp;lt;br&amp;gt;&lt;br /&gt;
Response - 'lst' files of a list of images can be imported.  I've used this to develop a walk cycle.  See [[Walk_Cycle|Walk cycle]] for an example.  [[user:pxegeek|pxegeek]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
I have seen some interesting methods for helping character design/animation in different 2d/3d software.  Hash's animation master has 'poses' which are extremes of a model, for example smiling and frowning, once you add these extremes ot a set you can use slider to create a pose that somewhere inbetween.  The real power of this is when you have serveral different poses on the same object, a face say,  you can easily come up with new facial expressions. Maybe something similar could be done with synfig using layers and groups, the implementation could something similar to Moho's switch layers. --[[User:Triclops|Triclops]] 09:52, 9 Aug 2006 (PDT)&lt;br /&gt;
: Have you read this tutorial? [[Reuse Animations]]. It is very close to the Switch layer of Moho/Anime Studio. Also You can change the Canvas parameter to any other canvas dynamically in the time line by clicking on it and selecting other exported canvas. Other option is convert the canvas to a Switch type and alternate between two different canvas.  --[[User:Genete|Genete]] 13:26, 29 October 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== More Animation Tools ===&lt;br /&gt;
&lt;br /&gt;
[[New Animation Tools|Added here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Improved User Experience for First Contact ===&lt;br /&gt;
* Single file download and installer (at least for Windows)&lt;br /&gt;
* Ability to draw the first object directly after starting the application (start with an empty document)&lt;br /&gt;
* Ability to animate the object directly after drawing the first object (new documents have a say 3 seconds timeline)&lt;br /&gt;
In my opinion this is crucial to attract potential users. Because if I see how easy it is to create my first animation I'm going to accept all the bugs and clumsyness. A good example is the Pencil animation software. --[[User:Dmd|Dmd]] 13:50, 26 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
: I've implemented #2 and #3 above in svn r1519 &amp;amp; 1520.  If no files are specified to be opened when running studio, it'll make a new one.  It won't pop up the canvas properties dialog when making new canvases by default.  And the default end time is 5s (3s is small enough to cause the time slider to show &amp;quot;1s 12f&amp;quot;, whereas 5s looks cleaner). -- [[User:Dooglus|dooglus]] 04:00, 29 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Automatic attach and manipulate a Vertex to a Bline ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Inverse Duck Manipulation|this]] page to understand what we want. --[[User:Genete|Genete]] 12:43, 3 March 2008 (EST).&lt;br /&gt;
:Already done in SVN. [[User:Genete|Genete]] 19:00, 5 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toggle visible ducks ===&lt;br /&gt;
(3) So pressing, say, tab while editing a Bline toggles which vertices/ducks are visible - so we can easily move the actual vertices around without having the view cluttered by tangeants (and also make it easier to select 'Loop' rather than 'Split Tangeants' when creating the thing.)&lt;br /&gt;
&lt;br /&gt;
Given that extra ducks such as the width ones listed above may be added, this might become more and more necessary. If too many different sets are added for toggling to be feasible, each visibility for each set can be hotkeyed.&lt;br /&gt;
&lt;br /&gt;
: Synfig already have hotkeys to toggle visibility of the ducks. See [[Keyboard_Shortcuts#Hotkeys_Visual_Guide]]. --[[User:Zelgadis|Zelgadis]] 00:39, 22 April 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8332</id>
		<title>Keyboard Shortcuts (Flash)</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8332"/>
				<updated>2009-01-07T21:58:04Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: /* How to have a Flash-like shorcut keys in Synfig? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== How to have a Flash-like shortcut keys in Synfig? ===&lt;br /&gt;
This is how you can make a Flash-like shortcut keys in Synfig.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' You must have Synfig installed and run at least once. :D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
&lt;br /&gt;
'''3.''' Copy the code below and paste it on the very last part of '''accelrc'''.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''4.''' Save it, and run Synfig to test and enjoy!&lt;br /&gt;
&lt;br /&gt;
=== How to restore to default settings? ===&lt;br /&gt;
Simply, delete '''accelrc''' and run Synfig.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8331</id>
		<title>Keyboard Shortcuts (Flash)</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8331"/>
				<updated>2009-01-07T21:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: re-arranged accels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== How to have a Flash-like shorcut keys in Synfig? ===&lt;br /&gt;
This is how you can make a Flash-like shortcut keys in Synfig.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' You must have Synfig installed and run at least once. :D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.''' Find your Synfig config file under:&lt;br /&gt;
  ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
'''2.''' Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
&lt;br /&gt;
'''3.''' Copy the code below and paste it on the very last part of '''accelrc'''.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ; misc&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 ; tools&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
 ; navigation&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''4.''' Save it, and run Synfig to test and enjoy!&lt;br /&gt;
&lt;br /&gt;
=== How to restore to default settings? ===&lt;br /&gt;
Simply, delete '''accelrc''' and run Synfig.&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8330</id>
		<title>Keyboard Shortcuts (Flash)</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8330"/>
				<updated>2009-01-07T21:12:10Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: -the&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is how you can make a Flash-like shortcut keys of the Synfig tools.&lt;br /&gt;
&lt;br /&gt;
1. You must have Synfig installed and run at least once. :D&lt;br /&gt;
2. Find your Synfig config file under:&lt;br /&gt;
  a.) ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  b.) ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  c.) ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
3. Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
4. Copy the code below and paste it on the very last part of '''accelrc'''.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
5. Save it, and run Synfig to test.&lt;br /&gt;
6. Enjoy!&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8329</id>
		<title>Keyboard Shortcuts (Flash)</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Keyboard_Shortcuts_(Flash)&amp;diff=8329"/>
				<updated>2009-01-07T21:10:47Z</updated>
		
		<summary type="html">&lt;p&gt;Creek23: initial write-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is how you can make a Flash-like the shortcut keys of the Tools.&lt;br /&gt;
&lt;br /&gt;
1. You must have Synfig installed and run at least once.&lt;br /&gt;
2. Find your Synfig config file under:&lt;br /&gt;
  a.) ''Ubuntu GNU/Linux:'' /home/{username}/Synfig/&lt;br /&gt;
  b.) ''Windows XP:'' C:\Documents and Settings\{username}\Synfig\&lt;br /&gt;
  c.) ''Windows Vista:'' C:\Users\{username}\Synfig\&lt;br /&gt;
3. Open the file, named '''accelrc''', using any text editing software (GEdit, Kate, Notepad).&lt;br /&gt;
4. Copy the code below and paste it on the very last part of '''accelrc'''.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-text&amp;quot; &amp;quot;t&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rectangle&amp;quot; &amp;quot;r&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-rotate&amp;quot; &amp;quot;&amp;lt;Shift&amp;gt;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-next-frame&amp;quot; &amp;quot;period&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-zoom&amp;quot; &amp;quot;z&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-polygon&amp;quot; &amp;quot;n&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-bline&amp;quot; &amp;quot;p&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-normal&amp;quot; &amp;quot;v&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-eyedrop&amp;quot; &amp;quot;i&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-fill&amp;quot; &amp;quot;k&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-circle&amp;quot; &amp;quot;o&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//redo&amp;quot; &amp;quot;&amp;lt;Control&amp;gt;y&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-scale&amp;quot; &amp;quot;q&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//seek-prev-frame&amp;quot; &amp;quot;comma&amp;quot;)&lt;br /&gt;
 (gtk_accel_path &amp;quot;&amp;lt;Actions&amp;gt;//state-gradient&amp;quot; &amp;quot;g&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
5. Save it, and run Synfig to test.&lt;br /&gt;
6. Enjoy!&lt;/div&gt;</summary>
		<author><name>Creek23</name></author>	</entry>

	</feed>