]> cygwin.com Git - cygwin-apps/cygutils.git/blobdiff - HOW-TO-CONTRIBUTE
Release 1.4.6
[cygwin-apps/cygutils.git] / HOW-TO-CONTRIBUTE
index 97fef7f05c16b8eb74365ad689f4ef5630d329d6..5bae9693fb7fb548b6a408a189a97628c66ef53b 100644 (file)
@@ -41,7 +41,7 @@ In addition to that, you need to check out the cygutils
 source and integrate yourfile into the whole system.  Instructions
 follow below.  However, you'll notice that it's quite a bit
 of work.  Again, are you SURE you want it to become part 
-of cygutils?  Making a standalong program is a lot easier...
+of cygutils?  Making a standalone program is a lot easier...
 
 Also, note that I will not fix your bugs.  If, at some time
 after your program is accepted into cygutils, I (as cygutils
@@ -79,6 +79,11 @@ The simple 12 step program:
       the blurb in the .c or .h file is just that: a short
       blurb, with a reference to the full text elsewhere)
 
+      You should also add it to the licenses variable in 
+      the toplevel Makefile.am: e.g.
+
+      licenses = ... licenses/COPYING.MPL ...
+
 3) Make a home 
 
    create a new directory for your contribution underneath 'src'
@@ -125,7 +130,7 @@ The simple 12 step program:
      If your contribution is windows-specific, then you should add it
      to BOTH the "windows_progs" and the EXTRA_PROGRAMS variables:
 
-         windows_progs = ... src/foo/foo ...
+     windows_progs = ... src/foo/foo ...
      EXTRA_PROGRAMS = ... src/foo/foo ...
 
   b) Special link libraries
@@ -148,30 +153,47 @@ The simple 12 step program:
      or libncurses -- then you'll need to do a little more work. 
      For your initial submission, just create an LDADD variable in 
      Makefile.am with -lreadline (or whatever).  We'll figure out how
-         to handle it better further down the road.  However, make sure
+     to handle it better further down the road.  However, make sure
      to let me know about your special link requirements.
 
-         src_foo_foo_LDADD = -lreadline
+     src_foo_foo_LDADD = -lreadline
+
+     One special case is the gettext internationalization libraries.
+     If your program must link with -lintl, then all you need to
+     do is create an LDADD variable as follows:
+
+     src_foo_foo_LDADD = @LIBINTL@
 
-     Note that you do NOT need to include the following libraries in
-     a 'src_foo_foo_LDADD' line; these will be added automatically...
+     The configuration process will replace @LIBINTL@ with the 
+     appropriate -lintl -liconv invocation.
 
-     -lintl -lcygipc -lpopt  (that is, gettext, cygipc, or popt)
+     Note that you do NOT need to include the popt library in
+     a 'src_foo_foo_LDADD' line; -lpopt will be added automatically...
+
+     If your app depends on IPC functions, then add @IPCLIBS@ 
+     to the 'src_foo_foo_LDADD' line.
 
   c) man pages and other documentation
 
      If you got 'em, copy 'em to your src/foo directory, and add the
-         manpage to the man_MANS variable in Makefile.am like this:
+     manpage to the man_MANS variable in Makefile.am like this:
 
      man_MANS = ... src/foo/foo.1 ...
 
-     If there are non-man-page documentation files, you should those
-     files to the EXTRA_DIST variable:
-
-     EXTRA_DIST = ... src/foo/foo.README ...
-
-     However, there is no provisiion for actually INSTALLING these
-     additional documentation files.  At least not yet.
+     If there are non-man-page documentation files, you should do 
+     one of the following:
+       i) if your app is windows-specific, then create a new
+          variable inside the 'if WITH_WINDOWS_PROGRAMS' section 
+          suffixed with '_docs', and list the documentation files
+             foo_docs = src/foo/README src/foo/TODO
+          Also, add those files to the extra_docs variable (which
+          gets automatically included in EXTRA_DIST)
+             extra_docs = src/foo/README src/foo/TODO
+      ii) otherwise, simply create the 'foo_docs' variable
+          outside of the 'if WITH_WINDOWS_PROGRAMS' section
+     These files will be installed into $(docdir)/foo/ so there
+     is no worry that your README will conflict with any other
+     component's README.
 
   d) Extra files
 
@@ -181,9 +203,9 @@ The simple 12 step program:
 
      src_foo_foo_SOURCES = foo.c otherfoo.c foo.h
 
-         Note that this variable should NOT be specified if your program 
-         consists merely of a single .c file whose name is the same as
-         your program + '.c'.
+     Note that this variable should NOT be specified if your program 
+     consists merely of a single .c file whose name is the same as
+     your program + '.c'.
 
      If there are .h files in your SOURCES list, then you need to 
      add those .h files to the noinst_HEADERS variable, or the headers 
@@ -196,6 +218,10 @@ The simple 12 step program:
   follow the "patterns" established in it by the other programs, 
   or (gasp) read the automake documentation.
 
+  Libraries are quite complicated to deal with in the cygutils 
+  build framework. Fortunately I doubt there will be many of
+  these to worry about, other than cygicons.
+
 6) Simplify your #includes.
 
    Take a good look at the #include statements in your .c and .h
@@ -213,7 +239,8 @@ The simple 12 step program:
 
    Add a short blurb about your app to <cygutils>/PROGLIST
    Add your app to the list at the end of the README file
-   Add your name to the AUTHORS file.
+   Add your name to the AUTHORS file.  Don't worry about NEWS;
+   I do that before each release.
 
 8) Bootstrap
 
@@ -226,7 +253,7 @@ The simple 12 step program:
 
    If you haven't made any mistakes, you should (a) see no
    errors, and (b) see some new rules in Makefile.in that
-       correspond to your program.
+   correspond to your program.
 
 9) Build and test
 
@@ -267,8 +294,8 @@ The simple 12 step program:
 
          * src/foo: new directory
          * src/foo/foo.c: new file
-                       * Makefile.am: add program 'foo'
-                       * Makefile.in: regenerate
+         * Makefile.am: add program 'foo'
+         * Makefile.in: regenerate
          * AUTHORS: add yourname for foo
          * PROGLIST: add foo
          * README: add foo
@@ -283,7 +310,7 @@ The simple 12 step program:
    the ChangeLog into that notice.  But do NOT send the patch or 
    tarball to the mailing list.  
        
-   Instead, send that to ME, cwilson@ece.gatech.edu.  The patch
+   Instead, send that to ME, cygwin@cwilson.fastmail.fm.  The patch
    and tarball should be attachments, but paste the ChangeLog entry
        into the body of the message.  Do NOT paste your patch into the 
        body of the email; most mail programs will horrendously distort 
This page took 0.027386 seconds and 5 git commands to generate.