			     -*- text -*-

		    Notes for autotrace developers

* Autotools

  Versions I (Masatake) am using:

  autoconf --version
  autoconf (GNU Autoconf) 2.53
  
  automake --version
  automake (GNU automake) 1.5

  libtool --version
  ltmain.sh (GNU libtool) 1.4.2 (1.922.2.53 2001/09/11 03:18:52)

  However config.guess of 1.5 that is part of automake is broken,
  therefore I'm replacing it with

  ./config.guess --version
  GNU config.guess (2002-07-23)

  when releasing.

* AM_PATH_PSTOEDIT

AM_PATH_PSTOEDIT is m4 macro defined in pstoedit.m4.
pstoedit.m4 will be in pstoedit-3.33. However, it is not 
released yet(Wed Sep 25 04:43:36 2002). You can get pstoedit.m4
from http://autotrace.sourceforge.net/tools/.
(You need pstoedit.m4 if you want to build autotrace from CVS sources.)

* How to release

  (0) Update NEWS file
  (1) Check and/or set Version number in configure.in
  (2) CVS tagging
  (3) sourceforge(http://sourceforge.net/docman/display_doc.php?docid=781&group_id=1)

* Shared library

  We use libtool to manage our shared library, libautotrace.so.
  First of all, read "Versioning" section of libtool info manual.
  Especially "Libtool versioning" and "Updating library version 
  information" subsections are important.

  I quote the most important blocks here:
====================================
	CURRENT
	     The most recent interface number that this library 
	     implements.

	REVISION
	     The implementation number of the CURRENT interface.

	AGE
	     The difference between the newest and oldest interfaces
	     that this library implements.  In other words, the
	     library implements all the interface numbers in the range
	     from number `CURRENT - AGE' to `CURRENT'.

	   If two libraries have identical CURRENT and AGE numbers,
	then the dynamic linker chooses the library with the greater
	REVISION number.
						--- Libtool versioning
  
	  Here are a set of rules to help you update your library version
	information:

	  1. Start with version information of `0:0:0' for each libtool library.

	  2. Update the version information only immediately before a public
	     release of your software.  More frequent updates are unnecessary,
	     and only guarantee that the current interface number gets larger
	     faster.

	  3. If the library source code has changed at all since the last
	     update, then increment REVISION (`C:R:A' becomes `C:r+1:A').

	  4. If any interfaces have been added, removed, or changed since the
	     last update, increment CURRENT, and set REVISION to 0.

	  5. If any interfaces have been added since the last public release,
	     then increment AGE.

	  6. If any interfaces have been removed since the last public release,
	     then set AGE to 0.
					---Updating library version information
====================================

* CVS

See http://sourceforge.net/cvs/?group_id=11789 

The module name is autotrace.  After checking out the codes, invoke
autogen.sh in the distribution. That generates configure.in,
Makefile.in and so on. autogen.sh invokes automake, autoconf, aclocal
and autofig.


* Autofig

Autofig generate autotrace-config.in from autotrace-config.af.
You can get autofig from:

http://autotrace.sourceforge.net/tools/

You can get the LATEST version of autofig.
http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=autofig

* Library

See README

* Tag naming scheme

CVS tag for version X.Y: RELEASE_X_Y. 
CVS tag for version X.YpreN: PRERELEASE_X_Y_N. 
Branch for version X.Y: TOWARD_version X.Y.

If you need to put a tag after putting a tag, RELEASE_X_Y, 
for minor modification, POSTRELEASE_X_Y_N.

* Tools for debugging output

   eps: ghostscript, Illustrator, CorelDraw
   sk:  sketch
   emf: CorelDraw, Illustrator, StarOffice, OpenOffice
        and Microsoft Office.
   svg: sodipodi, CorelDraw, Illustrator, Adobe SVGViewer
   ai: Illustrator, CorelDraw
   pdf: ghostscript, xpdf, acrobat, Illustrator
   fig: xfig
   er: Elastic Reality
   dxf: AutoCAD, VoloView
   epd: pstoepd, txt2pdf, epd2svg
   mif: FrameMaker
   dr2d: visit http://uk.amigasoc.org/asearch and enter a search string of "DR2D".

* Web page

    From sourceforge.org:

    5. Setup your group's web site.

    I'll assume that you have some sort of web
    page or site built already that you wish to put up on
    SourceForge to give your group a public face.
    Login to SourceForge using SSH, for example ;

    ssh -l loginname yourproject.sourceforge.net

    you will now be in your home directory. All
    group files are stored in a directory structure for each
    project. The group directory structure is
    split out by the first, then first and second, letters of
    the project name. From here all group files
    are stored in /home/groups/y/yo/yourproject.
    Change to this directory. All your web pages
    are stored in the htdocs directory. Going in here will
    contain index.php, which is a blank page that
    says you haven't uploaded a web page yet.
    Logout, and copy the files for your web page
    using scp, a program which comes with ssh. For
    example:

    scp localfile loginname@yourproject.sourceforge.net:/home/groups/y/yo/yourproject/htdocs/

    I suggest you gzip up your site, send it in
    one go using scp, then login with ssh and gunzip it.

    So what should be on the web page ? Perhaps
    you'd like the following, as well as your project's
    information ;

    1.A link to the projects group page on SourceForge.
    2.Mailing list links (we'll create them in a second)
    3.A SourceForge icon and web counter - see the site documentation for this.
    4.A link to the CVS web interface at

    http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=yourproject

    5.Some info about using CVS specific to your project.
    6.Setup mailing lists for your project.

    If your project isn't that active yet (or only
    has one lonely developer) your mailing lists will be
    very quiet, however I still suggest you look
    to the future and setup three standard lists for your
    project: a devel list for developers, a users
    list for users, and an announce list for new version
    announcements.

    Do this via your group page using the mailing
    list admin link. Its quite simple so you shouldn't
    have any problems...

