[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 7/8] raisin: Rework component specification
On Thu, 16 Apr 2015, George Dunlap wrote: > Allow COMPONENTS to be specified in the config (or on the command-line) > > Now you can keep all components enabled in your config but build only > one like so: > > COMPONENTS="xen" ./raise build > > Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > --- > CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> > --- > defconfig | 5 +++++ > lib/common-functions.sh | 49 > +++++++++++++++++++++++++++++++++++-------------- > 2 files changed, 40 insertions(+), 14 deletions(-) > > diff --git a/defconfig b/defconfig > index 23c76eb..4ec8a0b 100644 > --- a/defconfig > +++ b/defconfig > @@ -1,5 +1,10 @@ > # Config variables for raisin > > +# Components > +# All components: xen grub libvirt > +# Core xen functionality: xen > +DEFAULT_COMPONENTS="xen grub libvirt" > + > # Build config > ## Make command to run > MAKE="make -j2" > diff --git a/lib/common-functions.sh b/lib/common-functions.sh > index e66c6f4..42406e9 100644 > --- a/lib/common-functions.sh > +++ b/lib/common-functions.sh > @@ -31,13 +31,41 @@ function common_init() { > > get_distro > get_arch > + get_components > > - for f in `cat "$BASEDIR"/components/series` > + echo "Distro: $DISTRO" > + echo "Arch: $ARCH" > + echo "Components: $COMPONENTS" > + > + for f in $COMPONENTS > do > source "$BASEDIR"/components/"$f" > done > } > > +function get_components() { > + if [[ -z "$COMPONENTS" ]] > + then > + COMPONENTS="$DEFAULT_COMPONENTS" > + fi > + > + if [[ -z "$COMPONENTS" ]] > + then > + local component > + for component in `cat "$BASEDIR"/components/series` > + do > + local capital > + capital=`echo $component | tr '[:lower:]' '[:upper:]'` > + if eval [[ ! -z \$"$capital"_UPSTREAM_REVISION ]] > + then > + COMPONENTS="$COMPONENTS $component" > + echo "Found component $component" > + fi > + done > + export COMPONENTS > + fi > +} > + > function get_distro() { > if [[ -x "`which lsb_release 2>/dev/null`" ]] > then > @@ -222,20 +250,13 @@ function stop_initscripts() { > } > > function for_each_component () { > - for component in `cat "$BASEDIR"/components/series` > + local component One important thing here is that the order is important: xen is the first item in the series file for a reason. I think we should use the COMPONENTS variable to check for what components are enabled, but then still use the series file for the ordering. > + for component in $COMPONENTS > do > - capital=`echo $component | tr '[:lower:]' '[:upper:]'` > - if [[ $VERBOSE -eq 1 ]] > - then > - echo -n "$capital"_REVISION =" " > - eval echo \$"$capital"_REVISION > - fi > - if eval [[ ! -z \$"$capital"_REVISION ]] > - then > - [[ $VERBOSE -eq 0 ]] || echo calling "$component"_"$1" > - "$component"_"$1" > - [[ $VERBOSE -eq 0 ]] || echo "$component"_"$1" done > - fi > + [[ $VERBOSE -eq 0 ]] || echo calling "$component"_"$1" > + "$component"_"$1" > + [[ $VERBOSE -eq 0 ]] || echo "$component"_"$1" done > done > } > > -- > 1.9.1 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |