X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fsource%2Fdeveloper-manual.sgml;h=8a5af0cef960a1ef3abc71335544f3bdaa0b653c;hp=00c8d123ecc6a7de17dd7c097b22a46ea133e7f1;hb=ba215fa6bb4d5293cff0a7b9b399d075f990300d;hpb=6520ec3e879e2fe42fa854550f13f8f11b123a25 diff --git a/doc/source/developer-manual.sgml b/doc/source/developer-manual.sgml index 00c8d123..8a5af0ce 100644 --- a/doc/source/developer-manual.sgml +++ b/doc/source/developer-manual.sgml @@ -1,4 +1,19 @@ - + + + + + + + + + + + + + + +]>
Privoxy Developer Manual - $Id: developer-manual.sgml,v 1.13 2002/03/27 01:16:41 hal9 Exp $ + $Id: developer-manual.sgml,v 1.27 2002/04/08 15:31:18 hal9 Exp $ @@ -31,36 +55,31 @@ - + + + This is here to keep vim syntax file from breaking :/ + If I knew enough to fix it, I would. + PLEASE DO NOT REMOVE! HB: hal@foobox.net + + + ]]> + The developer manual gives the users information on how to help the developer team. It provides guidance on coding, testing, documentation and other issues. - - Privoxy is a web proxy with advanced filtering - capabilities for protecting privacy, filtering web page content, managing - cookies, controlling access, and removing ads, banners, pop-ups and other - obnoxious Internet junk. Privoxy has a very - flexible configuration and can be customized to suit individual needs and - tastes. Privoxy has application for both - stand-alone systems and multi-user networks. - + - - Privoxy is based on the code of the - Internet Junkbuster. - Junkbuster was originally written by JunkBusters - Corporation, and was released as free open-source software under the GNU GPL. - Stefan Waldherr made many improvements, and started the SourceForge project - to continue development. Other developers have since joined Stefan. - + &p-intro; + + - You can find the latest version of the user manual at http://www.privoxy.org/developer-manual/. - Please see the Contact section in the user-manual if you want to contact the - developers. + Please see the Contact section on how to contact the developers. @@ -70,19 +89,48 @@ - - Introduction - To be filled. - + + + + + + + + + + + + Introduction + + + Privoxy, as an heir to + Junkbuster, is an Open Source project + and licensed under the GPL. As such, Privoxy + development is potentially open to anyone who has the time, knowledge, + and desire to contribute in any capacity. Our goals are simply to + continue the mission, to improve Privoxy, and + to make it available to as wide an audience as possible. + + + One does not have to be a programmer to contribute. Packaging, testing, + and porting, are all important jobs as well. + Quickstart to Privoxy Development -You'll need an account on Sourceforge to support our development. Mail you ID -to the list and wait until a project manager has added you. +You'll need an account on Sourceforge to support our development. +Mail your ID to the list and wait until a project manager has added you. + -For the time beeing (read, this section is under construction), please note the + +For the time being (read, this section is under construction), please note the following guidelines for changing stuff in the code. If it is @@ -101,29 +149,353 @@ following guidelines for changing stuff in the code. If it is A major redesign of some part of the code: ask the list - - + + - Documentation Guidelines +Documentation Guidelines + + All formal documents are maintained in docbook SGML and located in the + doc/source/* directory. You will need + Docbook, the Docbook + DTD's and the Docbook modular stylesheets (or comparable alternatives), + and either jade or + openjade (recommended) installed in order to + build docs from source. Currently there is user-manual, + FAQ, and, of + course this, the developer-manual in this format. + The README, AUTHORS + privoxy.1 (man page) files are also now maintained + as Docbook SGML. The finished files are all in the top-level source + directory are generated files! Also, index.html, the + Privoxy home page, is maintained as SGML. + DO NOT edit these directly. Edit the SGML source, or + contact someone involved in the documentation (at present Stefan and + Hal). + - All docs are in SGML format and located in the doc/source directory. - - - How do you update the webserver (i.e. the pages on sourceforge)? - - - Run make dok (which uses the documents in doc/source to update all - text files in doc/text and to update -all web documents in doc/webserver. - - - Run make webserver which copies all files from -doc/webserver to the sourceforge webserver -via scp. - - + Other, less formal documents (e.g. LICENSE, + INSTALL) are maintained as plain text files in the + toplevel source directory. At least for the time being. + + + Packagers are encouraged to include this documentation. For those without + the ability to build the docs locally, text versions of each are kept in + CVS. HTML versions are also now being kept in CVS under + doc/webserver/*. + + + Formal documents are built with the Makefile targets of + make dok, or alternately + make redhat-dok. If you have problems, + try both. The build process uses the document SGML sources in + doc/source/*/* to update all text files in + doc/text/ and to update all HTML + documents in doc/webserver/. + + + Documentation writers should please make sure documents build + successfully before committing to CVS. + + + How do you update the webserver (i.e. the pages on privoxy.org)? + + + + First, build the docs by running make + dok (or alternately make + redhat-dok). + + + Run make webserver which copies all + files from doc/webserver to the + sourceforge webserver via scp. + + + + + + +Quickstart to Docbook and SGML + + If you are not familiar with SGML, it is a markup language similar to HTML. + Actually, not a mark up language per se, but a language used to define + markup languages. In fact, HTML is an SGML application. Both will use + tags to format text and other content. SGML tags can be much + more varied, and flexible, but do much of the same kinds of things. The tags, + or elements, are definable in SGML. There is no set + standards. Since we are using + Docbook, our tags are those that are defined by + Docbook. Much of how the finish document is + rendered is determined by the stylesheets. + The stylesheets determine how each tag gets translated to HTML, or other + formats. + + + + Tags in Docbook SGML need to be always closed. If not, you + will likely generate errors. Example: <title>My + Title</title>. They are also case-insensitive, but we + strongly suggest using all lower case. This keeps compatibility with + [Docbook] XML. + + + + Our documents use sections for the most part. Sections + will be processed into HTML headers (e.g. h1 for + sect1). The Docbook stylesheets + will use these to also generate the Table of Contents for each doc. Our + TOC's are set to a depth of three. Meaning sect1, + sect2, and sect3 will have TOC + entries, but sect4 will not. Each section requires + a <title> element, and at least one + <para>. There is a limit of five section + levels in Docbook, but generally three should be sufficient for our + purposes. + + + + Some common elements that you likely will use: + + + + + <para></para>, paragraph delimiter. Most + text needs to be within paragraph elements (there are some exceptions). + + + <emphasis></emphasis>, the stylesheets make this + italics. + + + <filename></filename>, files and directories. + + + <command></command>, command examples. + + + <literallayout></literllayout>, like + <pre>, more or less. + + + <itemizedlist></itemizdelist>, list with bullets. + + + <listitem></listitem>, member of the above. + + + <screen></screen>, screen output, implies + <literallayout>. + + + <ulink url="example.com"></ulink>, like + HTML <a> tag. + + + <quote></quote>, for, doh, quoting text. + + + + + Look at any of the existing docs for examples of all these and more. + + + + + + + + <application>Privoxy</application> Documentation Style + + It will be easier if everyone follows a similar writing style. This + just makes it easier to read what someone else has written if it + is all done in a similar fashion. + + + Here it is: + + + + + + All tags should be lower case. + + + + + Tags delimiting a block of text (even small + blocks) should be on their own line. Like: + + <para> + Some text goes here. + </para> + + Tags marking individual words, or few words, should be in-line: + + Just to <emphasis>emphasize</emphasis>, some text goes here. + + + + + + Tags should be nested and step indented for block text like: (except + in-line tags) + + <para> + <itemizedlist> + <para> + <listitem> + Some text goes here in our list example. + </listitem> + </para> + </itemizedlist> + </para> + + This makes it easier to find the text amongst the tags ;-) + + + + + Use white space to separate logical divisions within a document, + like between sections. Running everything together consistently + makes it harder to read and work on. + + + + + Do not hesitate to make comments. Comments can either use the + <comment> element, or the <!-- --> style comment + familiar from HTML. (Note in Docbook v4.x <comment> is + replaced by <remark>.) + + + + + We have an international audience. Refrain from slang, or English + idiosyncrasies (too many to list :). + + + + + Try to keep overall line lengths in source files to 80 characters or less + for obvious reasons. This is not always possible, with lenghty URLs for + instance. + + + + + Our documents are available in differing formats. Right now, they + are just plain text, and HTML, but PDF, and others is always a + future possibility. Be careful with URLs (<ulink>), and avoid + this mistake: + + + My favorite site is <ulink url="http://example.com">here</ulink>. + + + This will render as My favorite site is here, which is + not real helpful in a text doc. Better like this: + + + My favorite site is <ulink url="http://example.com">example.com</ulink>. + + + + + All documents should be spell checked occasionally. + aspell can check SGML with the + -H option. (ispell I think + too.) + + + + + + + + + + + + Privoxy Custom Entities + + Privoxy documentation is using + a number of customized entities to facilitate + documentation maintenance. + + + We are using a set of boilerplate files with generic text, + that is used by multiple docs. This way we can write something once, and use + it repeatedly without having to re-write the same content over and over again. + If editing such a file, keep in mind that it should be + generic. That is the purpose; so it can be used in varying + contexts without additional modifications. + + + We are also using what Docbook calls + internal entities. These are like variables in + programming. Well, sort of. For instance, we have the + p-version entity that contains the current + Privoxy version string. You are strongly + encouraged to use these where possible. Some of these obviously + require re-setting with each release (done by the Makefile). A sampling of + custom entities are listed below. See any of the main docs for examples. + + + + + + + Re-cyclable boilerplate text entities are defined like: + + + <!entity supported SYSTEM "supported.sgml"> + + + In this example, the contents of the file, + supported.sgml is available for inclusion anywhere + in the doc. To make this happen, just reference the now defined + entity: &supported; (starts with an ampersand + and ends with a semi-colon), and the contents will be dumped into + the finished doc at that point. + + + + + Commonly used internal entities: + + + + p-version: the Privoxy + version string, e.g. 2.9.13. + + + p-status: the project status, either + ALPHA, BETA, or STABLE. + + + p-not-stable: use to conditionally include + text in not stable releases (e.g. BETA). + + + p-stable: just the opposite. + + + p-text: this doc is only generated as text. + + + + + + + There are others in various places that are defined for a specific + purpose. Read the source! + + + + @@ -1256,7 +1628,7 @@ static void unload_re_filterfile( void *f ) { ... } Example for file comments: -const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.13 2002/03/27 01:16:41 hal9 Exp $"; +const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.27 2002/04/08 15:31:18 hal9 Exp $"; /********************************************************************* * * File : $Source$ @@ -1316,7 +1688,7 @@ const char FILENAME_h_rcs[] = FILENAME_H_VERSION; #ifndef _FILENAME_H #define _FILENAME_H -#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.13 2002/03/27 01:16:41 hal9 Exp $" +#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.27 2002/04/08 15:31:18 hal9 Exp $" /********************************************************************* * * File : $Source$ @@ -1414,8 +1786,8 @@ int FUNCTION_NAME( void *param1, const char *x ) Version Control Guidelines - To be filled. note on cvs comments. don't comment what you did, comment -why you did it. + To be filled. note on cvs comments. Don't only comment what you did, + but also why you did it! @@ -1427,7 +1799,7 @@ why you did it. Testplan for releases -Explain release numbers. major, minor. developer releases. etc. + Explain release numbers. major, minor. developer releases. etc. @@ -1478,15 +1850,78 @@ at sourceforge. Three simple steps: Releasing a new version To minimize trouble with distribution contents, webpage - errors and the like, I (Stefan) strongly encourage you + errors and the like, we strongly encourage you to follow this section if you prepare a new release of code or new pages on the webserver. The following programs are required to follow this process: ncftpput (ncftp), scp (ssh), -gmake (GNU's version of make), ???. +gmake (GNU's version of make), autoconf, cvs, ???. + + + Before the Release + + The following must be done by one of the + developers prior to each new release: + + + + + + Make sure that everybody who has worked on the code in the last + couple of days has had a chance to yell no! in case + they have pending changes/fixes in their pipelines. + + + + + Increment the version number in configure.in in + CVS. Also, the RPM release number in + configure.in. Do NOT touch version information + after export from CVS. All packages will use the + version and release data from configure.in. + Local files should not be changed, except prior to a CVS commit!!! + This way we are all on the same page! + + + + + If the default actionsfile has changed since last release, + bump up its version info in this line: + + + + {+add-header{X-Actions-File-Version: A.B} -filter -no-popups} + + + + Then change the version info in doc/webserver/actions/index.php, + line: '$required_actions_file_version = "A.B";' + + + + + Tag all files in CVS with the version number with + cvs tag v_X_Y_Z (where X = major, Y + = minor, Z = point). Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) + etc. + + + + + The first package uploaded should be the official + tarball release. This is built with the + make tarball-dist Makefile + target, and then can be uploaded with + make tarball-upload (see below). + + + + + + Update the webserver All files must be group-readable and group-writable (or no one else @@ -1495,43 +1930,43 @@ at sourceforge. Three simple steps: create new directories under doc/webserver), then do - - make webserver + + make webserver - Note that make dok creates + Note that make dok + (or make redhat-dok) creates doc/webserver/user-manual, doc/webserver/developer-manual, doc/webserver/faq and doc/webserver/man-page automatically. - Verify on the webserver that the permissions are set correctly. Do - NOT use any other means of transferring files to the webserver. + Please do NOT use any other means of transferring files to the + webserver. make webserver not only + uploads, but will make sure that the appropriate permissions are + preserved for shared group access. - SuSE or RedHat + SuSE or Red Hat - Ensure that you have the latest code version. Hence run + Ensure that you have the latest code version. Hence run: - cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - first. If necessary, change the version number of - Privoxy in the - configure.in file. Update the release number - directly in the specific spec file (particularly, set the release - number to 1 if you have increased the version - number before). Run + first. - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure @@ -1539,7 +1974,7 @@ at sourceforge. Three simple steps: - make suse-dist or make redhat-dist + make suse-dist or make redhat-dist @@ -1547,35 +1982,58 @@ at sourceforge. Three simple steps: - make suse-upload or make redhat-upload + make suse-upload or make redhat-upload - Goto the displayed URL and release the file publically on Sourceforge. + Go to the displayed URL and release the file publicly on Sourceforge. OS/2 - Ensure that you have the latest code version. Hence run + Ensure that you have the latest code version. Hence run: - cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current + cd .. + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup - first. If necessary, change the version number of - Privoxy in the - configure.in file. Run + You will need a mix of development tools. + The main compilation takes place with IBM Visual Age C++. + Some ancillary work takes place with GNU tools, available from + various sources like hobbes.nmsu.edu. + Specificially, you will need autoheader, + autoconf and sh tools. + The packaging takes place with WarpIN, available from various sources, including + its home page: xworkplace. + Change directory to the os2setup directory. + Edit the os2build.cmd file to set the final executable filename. + For example, + + installExeName='privoxyos2_setup_X.Y.Z.exe' + + Next, edit the IJB.wis file so the release number matches + in the PACKAGEID section: + + PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z" + + You're now ready to build. Run: - autoheader && autoconf && ./configure + os2build - - - Then do FIXME. + And in the ./files directory you will have the + WarpIN-installable executable. + Upload this anonymously to + uploads.sourceforge.net/incoming, create a release + for it, and you're done. @@ -1585,28 +2043,28 @@ at sourceforge. Three simple steps: - ssh cf.sourceforge.net + ssh cf.sourceforge.net Choose the right operating system (not the Debian one). If you have - downloaded Privoxy before, + downloaded Privoxy before, - cd current && cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current If not, please checkout - Privoxy via CVS first. Verify the version number in - configure.in. If necessary, change the version - number. Run + Privoxy via CVS first. Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure @@ -1614,14 +2072,14 @@ at sourceforge. Three simple steps: - gmake solaris-dist + gmake solaris-dist - which creates a gzip'ed tar archive. Sadly, you cannot use make - solaris-upload on the Sourceforge machine (no ncftpput). You now have + which creates a gzip'ed tar archive. Sadly, you cannot use make + solaris-upload on the Sourceforge machine (no ncftpput). You now have to manually upload the archive to Sourceforge's ftp server and release - the file publically + the file publicly. @@ -1631,17 +2089,17 @@ at sourceforge. Three simple steps: - cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - first. If necessary, change the version number of - Privoxy in the - configure.in file. Run + Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure @@ -1651,21 +2109,21 @@ at sourceforge. Three simple steps: Debian - Ensure that you have the latest code version. Hence run + Ensure that you have the latest code version. Hence run: - cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - first. If necessary, change the version number of - Privoxy in the - configure.in file. Run + first. Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure @@ -1675,65 +2133,58 @@ at sourceforge. Three simple steps: Mac OSX - Login to Sourceforge's compilefarm via ssh + Ensure that you have the latest code version. Hence run: - ssh cf.sourceforge.net + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current + cd .. + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup - Choose the right operating system. If you have downloaded Privoxy - before, - - + From the osxsetup directory, run: - cd current && cvs update . + build - If not, please checkout - Privoxy via CVS first. Verify the version number in - configure.in. If necessary, change the version - number. Run + This will run autoheader, autoconf and + configure as well as make. + Finally, it will copy over the necessary files to the ./osxsetup/files directory + for further processing by PackageMaker. + Bring up PackageMaker with the PrivoxyPackage.pmsp definition file, modify the package + name to match the release, and hit the "Create package" button. + If you specify ./Privoxy.pkg as the output package name, you can then create + the distributable zip file with the command: - autoheader && autoconf && ./configure +zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg - - - Then run - - - - make macosx-dist - - - - which creates a gzip'ed tar archive. Sadly, you cannot use make - macosx-upload on the Sourceforge machine (no ncftpput). You now have - to manually upload the archive to Sourceforge's ftp server and release - the file publically + You can then upload privoxyosx_setup_x.y.z.zip anonymously to + uploads.sourceforge.net/incoming, + create a release for it, and you're done. FreeBSD Change the version number of Privoxy in the - configure.in file. Run + configure.in file. Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure Then ... - Login to Sourceforge's compilefarm via ssh + Login to Sourceforge's compilefarm via ssh: - ssh cf.sourceforge.net + ssh cf.sourceforge.net @@ -1742,63 +2193,63 @@ at sourceforge. Three simple steps: - cd current && cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current If not, please checkout - Privoxy via CVS first. Verify the version number in - configure.in. If necessary, change the version - number. Run + Privoxy via CVS first. Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure - Then run + Then run: - make freebsd-dist + gmake freebsd-dist - which creates a gzip'ed tar archive. Sadly, you cannot use make - freebsd-upload on the Sourceforge machine (no ncftpput). You now have + which creates a gzip'ed tar archive. Sadly, you cannot use make + freebsd-upload on the Sourceforge machine (no ncftpput). You now have to manually upload the archive to Sourceforge's ftp server and release - the file publically + the file publicly. Tarball - Ensure that you have the latest code version. Hence run + Ensure that you have the latest code version. Hence run: - cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - first. If necessary, change the version number of - Privoxy in the - configure.in file. Run + first. Run: - make clobber - autoheader && autoconf && ./configure + make clobber + autoheader && autoconf && ./configure - Then do + Then do: - make tarball-dist + make tarball-dist @@ -1806,31 +2257,31 @@ at sourceforge. Three simple steps: - make tarball-upload + make tarball-upload - Goto the displayed URL and release the file publically on Sourceforge. + Goto the displayed URL and release the file publicly on Sourceforge. HP-UX 11 - Ensure that you have the latest code version. Hence run + Ensure that you have the latest code version. Hence run: - cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - first. If necessary, change the version number of - Privoxy in the - configure.in file. Run + first. Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure @@ -1840,21 +2291,21 @@ at sourceforge. Three simple steps: Amiga OS - Ensure that you have the latest code version. Hence run + Ensure that you have the latest code version. Hence run: - cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current - first. If necessary, change the version number of - Privoxy in the - configure.in file. Run + first. Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure @@ -1864,68 +2315,82 @@ at sourceforge. Three simple steps: AIX - Login to Sourceforge's compilefarm via ssh + Login to Sourceforge's compilefarm via ssh: - ssh cf.sourceforge.net + ssh cf.sourceforge.net Choose the right operating system. If you have downloaded Privoxy - before, + before: - cd current && cvs update . + cd current + cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current If not, please checkout - Privoxy via CVS first. Verify the version number in - configure.in. If necessary, change the version - number. Run + Privoxy via CVS first. Run: - autoheader && autoconf && ./configure + autoheader && autoconf && ./configure - Then run + Then run: - make aix-dist + make aix-dist - which creates a gzip'ed tar archive. Sadly, you cannot use make - aix-upload on the Sourceforge machine (no ncftpput). You now have + which creates a gzip'ed tar archive. Sadly, you cannot use make + aix-upload on the Sourceforge machine (no ncftpput). You now have to manually upload the archive to Sourceforge's ftp server and release - the file publically + the file publicly. - Contact the developers - Please see the user manual for information on how to contact the developers. - + Contacting the developers, Bug Reporting and Feature Requests + + &contacting; + Copyright and History - Please see the user manual for information on Copyright and History. - + +Copyright + + ©right; + + + +History + + &history; + + + See also - Please see the user manual for information on references. - + + &seealso; + +