diff options
Diffstat (limited to 'doc/index.html')
-rw-r--r-- | doc/index.html | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/doc/index.html b/doc/index.html index dae332c..48a3c76 100644 --- a/doc/index.html +++ b/doc/index.html @@ -471,6 +471,189 @@ USE_OSGPLUGIN(<plugin2>) feel free to join the <a href="http://lists.nongnu.org/mailman/listinfo/mingw-cross-env-list">project mailing list</a>. </p> + +<h2 id="new-packages">New Package Submission</h2> + <ol> + <li> + <p> + The package should be a + <a href="http://www.gnu.org/philosophy/free-sw.html">free</a> + <a href="http://www.debian.org/social_contract#guidelines">software<a> + <a href="http://www.opensource.org/osd.html">library</a> + that is really used by one of your applications. + </p> + + <p> + BTW, we're always curious about the applications people are + porting. On our project website, there is a + <a href="#used-by">list of projects</a> + which use mingw-cross-env. No matter whether your project is + free or proprietary - as long as it has it's own website, we'd be + happy to link to it. + </p> + + <p> + Also, feel free to link to us. :-) + </p> + </li> + + <li> + <p> + Grep through the src/*.mk files to find a project that is most + similar to yours. (Really, "grep" is your friend.) + </p> + + <p> + E.g., when adding a GNU library, you should take a package like + <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/gettext.mk">gettext.mk</a> + or + <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/libiconv.mk">libiconv.mk</a> + as the base of your work. Or, when using + a SourceForge project, you should start with a copy of + <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/xmlwrapp.mk">xmlwrapp.mk</a>. + </p> + </li> + + <li> + <p> + Adjust the comments, fill in the <code>$(PKG)_*</code> fields. + Be especially careful with the <code>$(PKG)_DEPS</code> section. + The easiest way to get the dependencies right is to start with + a minimal setup i.e. <code>make gcc</code> only. + </p> + </li> + + <li> + <p> + Write your <code>$(PKG)_BUILD</code>. If your library has a + ./configure script, enable/disable all depdency libraries + explicitly via <code>"--enable-*"</code> and + <code>"--disable-*"</code> options. + </p> + </li> + + <li> + <p> + You might also have to provide a patch for it. In that case, have + a look at other patches such as + <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/sdl-2-fix-dinput.patch"> + sdl-2-fix-dinput.patch</a>. + In particular, each patch file should be named as: + </p> + + <p> + <pre>PACKAGE-PATCHNUMBER-DESCRIPTION.patch</pre> + </p> + <p> + and should start with: + </p> + <pre> +This file is part of mingw-cross-env. +See doc/index.html for further information. + +This patch has been taken from: +https://... + </pre> + <p> + where the URL points to the bugtracker entry, mailing list entry + or website you took the patch from. + </p> + + <p> + If you created the patch yourself, please offer it to the + upstream project first, and point to _that_ URL, using the + same wording: "This patch has been taken from:". + </p> + + <p> + Depending on the feedback you get from the project, you might + want to improve your patch. + </p> + </li> + + <li> + <p> + If you find some time, please provide a minimal test program for + it. It should be simple, stand alone and should work unmodified + for many (all?) future versions of the library. Test programs + are named as: + </p> + <pre>PACKAGE-test.c + or +PACKAGE-test.cpp</pre> + + <p> + depending on whether it is a C or C++ library. To get a clue, + please have a look at existing test programs such as + <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/sdl-test.c">sdl-test.c</a>. + </p> + + <p> + At the very end of your *.mk file you should build the test + program in a generic way, using strict compiler flags. The + last few lines of + <a href="http://hg.savannah.gnu.org/hgweb/mingw-cross-env/file/tip/src/sdl.mk">sdl.mk</a> + will give you a clue. + </p> + </li> + + <li> + <p> + You could also try to provide a <code>$(PKG)_UPDATE</code> + section. However, that requires some experience and + "feeling" for it. So it is perfectly okay if you leave the + <code>$(PKG)_UPDATE</code> section empty. We'll fill that + in for you. It's a funny exercise. + </p> + </li> + + <li> + <p> + Check that you don't have "dirty stuf" in your *.mk files, such + as TAB characters or trailing spaces at lines endings. Have + a look at random *.mk files to get a feeling for the coding + style. + </p> + + <p> + The same holds for your test program. + </p> + + <p> + However, patch files should always appear in the same coding + style as the files they are patching. + </p> + + <p> + Finally, in your <code>$(PKG)_BUILD</code> section, please + check that you use our portability variables: + </p> + <pre> + sed -> $(SED) + make -> $(MAKE) + bash -> $(SHELL) + patch -> $(PATCH) + install -> $(INSTALL) + libtoolize -> $(LIBTOOLIZE)</pre> + </li> + + <li> + <p> + Check whether everything runs fine. If you have some trouble, + don't hesitate to ask on the + <a href="http://lists.nongnu.org/mailman/listinfo/mingw-cross-env-list">mailing list</a>, + providing your *.mk file so far. + </p> + </li> + + <li> + <p> + Propose your final *.mk file to the mailing list. Don't forget + to tell us if there are some pieces in your *.mk file you feel + unsure about. We'll then have a specific look at those parts, + which avoids trouble for you and us in the future. + </p> + </li> </div> <div class="section"> @@ -813,6 +996,9 @@ sudo gcc_select gcc40</pre> <table id="package-list"> </table> + <p> + See something missing? Feel free to <a href="#new-packages">propose a new package</a>. + </p> </div> <div class="section"> |