Package: debian-policy
Version: 3.5.5.0
Severity: wishlist

I'd like to make Debian more friendly to porters and embedded systems.
This patch basically says that packages should support
cross-compilation.  Many packages can already be cross compiled so
this is more documenting current practice rather than anything new.

I think this is an important addition to policy because Debian has the
potential to gain a larger user-base through ports and use on embedded
systems.

(The makefile snipped would be better if it was in a footnote since it
is implementation rather than policy, but the <example> tags didn't
work within a footnote.)

Thanks,

David

Here is a possible addition to the 'Debianised source tree' section:

--- policy.sgml.orig    Sun Sep  9 23:13:31 2001
+++ policy.sgml Sun Sep  9 23:22:32 2001
@@ -8401,6 +8401,40 @@
            targets depend on must also be non-interactive.
          </p>
 
+         <p>
+           The <tt>debian/rules</tt> script should support
+           cross-compilation.  Cross-compilation is helpful when
+           porting Debian to new architectures and facilitates use of
+           Debian in embedded environments.  Special requirements
+           vary, but in general when cross-compilation is detected
+           <tt>debian/rules</tt> should not execute binaries it has
+           just created.  The following makefile snippet is an
+           example of how to detect when a package is being
+           cross-compiled.
+              <example>
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+# commands and/or variables for cross build
+else
+# commands and/or variables for native build
+endif
+             </example>
+           In addition, <tt>debian/rules</tt> should allow for target
+           specific configuration via environmental
+           variables.<footnote> 
+             <p>
+               To allow for target specific configuration a package
+               should not hard code tool names (gcc, ld, strip, etc.)
+               but should instead use variables (CC, LD, STRIP, etc.)
+               so that the proper tools can be used when cross
+               compiling.  In addition, target specific configuration
+               should be possible without access to the target
+               system. For example, a package that uses GNU autoconf,
+               can be configured by priming CONFIG_SITE with
+               pre-determined values.  
+             </p>
+            </footnote>
+         </p>
+
          <p>       
            The targets which are required to be present are:       
            <taglist>

Reply via email to