-Sun Apr 24 14:11:49 EEST 2005 Pekka Riikonen <priikone@silcnet.org>
+Sun Apr 24 21:11:49 EEST 2005 Pekka Riikonen <priikone@silcnet.org>
* Fixed undefining to actually work.
+ * The top distribution now takes precedence on defined
+ distdefs over inherited distributions, and can override
+ defined and undefined distdefs (previously it could only
+ undefine defined but not define specificly undefined :)).
+
Sat Apr 23 12:49:09 EEST 2005 Pekka Riikonen <priikone@silcnet.org>
* Autodist 1.2.1.
ad_debug "licenseh: $licenseh"
if test x$2 = xfalse; then
+ # Take rest of the stuff from top distribution
+
+ # We take precedence on defined and undefined distdefs. Remove
+ # undefined distdefs if we have defined them.
+ for d in $defs
+ do
+ ad_debug "defining undefined $d distdef"
+ undistdefs=`echo $undistdefs | sed s/$d//g`
+ done
+
# Get distribution name
dname=`sed 's/^[ ]*//' < $distdir/$1 | grep -v "^#" \
| grep "name " | cut -d' ' -f2-`
inherited distribution. If the distribution cannot be inherited Autodist
will give an error.
-The 'inherit' will inherit the following information from the distribution:
-distdefs, undefines, includes, excludes and noprocess. Other information
-will not be inherited. If the inherited distribution inherits other
-distributions, they will also be inherited automatically. User should be
-careful when inheriting distributions as it may be possible to create an
-infinite recursion. The Autodist would allow for this and not detect this
-error. Zero or more 'inherit' directives may be set for distribution.
+The 'inherit' will inherit the following information from the
+distribution: distdefs, undefines, includes, excludes and noprocesses.
+Other information will not be inherited. If the inherited distribution
+inherits other distributions, they will also be inherited automatically.
+User should be careful when inheriting distributions as it may be possible
+to create an infinite recursion. The Autodist would allow for this and
+not detect this error. Zero or more 'inherit' directives may be set for
+distribution.
Example:
@example
distribution. All distdefs, undefines, includes, excludes and noprocesses
from these distributions are now also part this distribution.
+The distribution that is being prepared or packaged take precedence when
+defining distdefs that were specificly undefined in the inherited
+distribution. This means that if the inherited distribution specificly
+undefines a distdefs but the inheriting distribution (one being prepared
+or packaged) specificly defines it, the distdef will be defined.
+Similarly, if the inherited distribution defines a distdef but the
+inheriting distribution undefines it, the distdef will be undefined.
+Note that, this precedence works only in the top distribution (the one
+being prepared or packaged). If the inherited distribution inherits other
+distributions, all distdefs (defined and specificly undefined) will be
+inherited as is. This means that if one inherited distribution defines a
+distdef that other inherited distribution distdef undefines, it will be
+undefined. However, the top distribution can then override them if
+needed.
+
@section Directive: define <symbol>