Merged r2925:2931 from trunk

This commit is contained in:
Manuel Canales Esparcia 2006-08-13 10:01:14 +00:00
parent 1b99a8b0b4
commit d0d9e90e30
7 changed files with 64 additions and 57 deletions

View file

@ -34,11 +34,6 @@ source libs/func_dependencies
source libs/func_parser
[[ $? > 0 ]] && echo -e "\n\tERROR: func_parser did not load..\n" && exit
#---------------------
# Makefile module
source libs/func_makefile
[[ $? > 0 ]] && echo -e "\n\tERROR: func_makefile did not load..\n" && exit
#-------------------------#
@ -106,9 +101,6 @@ inline_doc
}
#------- MAIN --------
if [[ ! -f packages ]] ; then
echo -e "\tNo packages file has been found.\n"
@ -122,4 +114,3 @@ generate_dependency_tree
generate_TARGET_xml
generate_target_book
create_build_scripts
generate_Makefile

34
BLFS/libs/func_makefile → BLFS/gen-makefile.sh Normal file → Executable file
View file

@ -1,16 +1,22 @@
#####
#
#
#!/bin/bash
#
# $Id$
#####
#
set -e
# TEMPORARY VARIABLES.. development use only
declare MKFILE=devMakefile
declare MKFILE=Makefile
declare PREV_PACKAGE=""
declare BUILD_SCRIPTS=scripts
declare TRACKING_DIR=/var/lib/jhalfs/BLFS
HEADER="# This file is automatically generated by jhalfs
# YOU MAY NEED TO EDIT THIS FILE MANUALLY
#
# Generated on `date \"+%F %X %Z\"`"
#----------------------------------#
__wrt_target() { # Create target and initialize log file
@ -32,11 +38,9 @@ EOF
#----------------------------------#
__write_build_cmd() { #
#----------------------------------#
local this_script=$1
local file=$2
(
cat << EOF
@( time { ${BUILD_SCRIPTS}/${file} >>logs/${this_script} 2>&1 ; } ) 2>>logs/${this_script}
@source ../makefile.conf && ${BUILD_SCRIPTS}/\$@ >logs/\$@ 2>&1
EOF
) >> $MKFILE.tmp
}
@ -48,7 +52,7 @@ __wrt_touch() { #
(
cat << EOF
@touch \$@ && \\
touch \$(TRACKING_DIR)/${pkg_name#*-} && \\
touch \$(TRACKING_DIR)/${pkg_name#*-?-} && \\
sleep .25 && \\
echo -e "\n\n "\$(BOLD)Target \$(BLUE)\$@ \$(BOLD)OK && \\
echo --------------------------------------------------------------------------------\$(WHITE)
@ -71,7 +75,7 @@ __write_entry() { #
# Drop in the name of the target on a new line, and the previous target
# as a dependency. Also call the echo_message function.
__wrt_target "${script_name}" "$PREV_PACKAGE"
__write_build_cmd "${script_name}" "${script_name}"
__write_build_cmd
# Include a touch of the target name so make can check
# if it's already been made.
@ -94,7 +98,7 @@ generate_Makefile () { #
>$MKFILE
>$MKFILE.tmp
for package_script in scripts/* ; do
this_script=`basename $package_script`
if [ ! -e $TRACKING_DIR/${this_script#*-} ]; then
@ -111,7 +115,7 @@ generate_Makefile () { #
cat << EOF
$HEADER
PACKAGE= "`basename $PKGXML .xml`"
PACKAGE= "`basename $PWD`"
TRACKING_DIR= $TRACKING_DIR
BOLD= ""
@ -147,3 +151,9 @@ EOF
rm $MKFILE.tmp
}
generate_Makefile
cp ../progress_bar.sh .
mkdir -p logs

View file

@ -33,8 +33,3 @@ declare -r STAR_BORDER="${BOLD}*************************************************
# bold yellow > < pair
declare -r R_arrow=$'\e[1;33m>\e[0m'
declare -r L_arrow=$'\e[1;33m<\e[0m'
HEADER="# This file is automatically generated by jhalfs
# DO NOT EDIT THIS FILE MANUALLY
#
# Generated on `date \"+%F %X %Z\"`"

View file

@ -62,7 +62,7 @@ inline_doc
ENTRY_START="<xi:include xmlns:xi=\"http://www.w3.org/2003/XInclude\" href=\"../"
ENTRY_END="\"/>"
echo -en "\tGenerating $TARGET dependencies tree ..."
echo -e "\tGenerating $TARGET dependencies tree ..."
mkdir dependencies
@ -120,18 +120,13 @@ inline_doc
;;
esac
#------------------P---
# Start with a clean depure.txt file
> depure.txt
#---------------------
# If have dependencies, write its XInclude and find sub-dependencies
if [[ -f dependencies/$TARGET.dep ]]; then
echo -e "Start loop for PKG $TARGET\n" >> depure.txt
mkdir xincludes && do_dependencies $TARGET
fi
echo "done"
echo -e "\n\t... done"
}
@ -166,13 +161,10 @@ inline_doc
local saveIFS=$IFS
local DEP_LV=$DEP_LEVEL
local line line2 DEP
echo -e "\tPKG is $PKG" >> depure.txt
echo -e "\tDEP_LEVEL for $PKG is $DEP_LV\n" >> depure.txt
#------------------
# If a premade xinclude file exists, use it. If not, create one
if [[ -f xincludes/$PKG.xinc ]] ; then
echo -e "\tReusing xinclude file for PKG $PKG" >> depure.txt
IFS=$'\x0A'
for line in `cat xincludes/$PKG.xinc` ; do
IFS=$saveIFS
@ -218,7 +210,6 @@ inline_doc
esac
#------------------
echo -e "\tDEP for $PKG is $DEP" >> depure.txt
# Prevent circular dependencies
# If all dependencies are circular, the creation of the *.dep file
# must be skipped, not placed here, to avoid that the script will bomb
@ -259,10 +250,8 @@ inline_doc
esac
#------------------
echo -e "\tDEP_LEVEL for $DEP is $DEP_LV" >> depure.txt
# XML file of dependency package
DEP_XML=`grep "^$DEP[[:space:]]" ../packages | cut -f2`
echo -e "\t\tDEP_XML is $DEP_XML\n" >> depure.txt
case $DEP in
x-window-system | alsa ) ;; # No page for that (proper link must be created when generating the book)
xorg7 ) ;; # This page will be dump in the xorg7.xinc file
@ -309,7 +298,6 @@ inline_doc
if [[ -f dependencies/$DEP.dep ]] ; then
# If a premade xinclude file esist, include it
if [[ -f xincludes/$DEP.xinc ]] ; then
echo -e "\tReusing xinclude file for PKG $DEP (to solve $PKG)\n" >> depure.txt
IFS=$'\x0A'
for line2 in `cat xincludes/$DEP.xinc` ; do
IFS=$saveIFS
@ -321,7 +309,6 @@ inline_doc
#------------------
# Create the xinclude file
else
echo -e "\nStart new loop for PKG $DEP (to solve $PKG)\n" >> depure.txt
#
# >>>>>> THIS IS A RECURSIVE FUNCTION CALL.. BEWARE OF GREMLINS. <<<<<<
#
@ -329,13 +316,12 @@ inline_doc
# However, uncontrolled recursion will cause a seg-fault due to stack issues with local variables.
#
set +e
[[ "${VERBOSITY}" > 0 ]] && echo -ne "\nrecursive call: $((++cntr)) ${spaceSTR:0:$cntr} ${RED}$DEP${OFF}"
[[ "${VERBOSITY}" > 0 ]] && echo -ne "\ncall: $((++cntr))${spaceSTR:0:$cntr}${RED}$DEP${OFF}"
do_dependencies $DEP
[[ "${VERBOSITY}" > 0 ]] && echo -ne "\n ret: $cntr ${spaceSTR:0:$((cntr--))} ${GREEN}$DEP${OFF}\tUsing the new xinclude file for PKG $DEP (to solve $PKG)"
[[ "${VERBOSITY}" > 0 ]] && echo -ne "\n ret: $cntr${spaceSTR:0:$((cntr--))}${GREEN}$DEP${OFF} Using $DEP Xinc to solve $PKG"
set -e
# Include it when done
echo -e "\tUsing the new xinclude file for PKG $DEP (to solve $PKG)\n" >> depure.txt
IFS=$'\x0A'
for line2 in `cat xincludes/$DEP.xinc` ; do
IFS=$saveIFS
@ -357,7 +343,6 @@ inline_doc
#------------------
mv xincludes/$PKG.xinc.tmp xincludes/$PKG.xinc
echo -e "Using the new xinclude file for PKG $PKG" >> depure.txt
IFS=$'\x0A'
for line in `cat xincludes/$PKG.xinc` ; do
IFS=$saveIFS
@ -366,6 +351,4 @@ inline_doc
# Write the XInclude
echo -e "$line" >> $TARGET-index.xml.tmp
done
echo -e "\nEnd loop for PKG $PKG\n" >> depure.txt
}

View file

@ -22,7 +22,7 @@ generate_TARGET_xml() { #
inline_doc
local
echo -en "\tGenerating $TARGET-index.xml ..."
echo -en "\n\tGenerating $TARGET-index.xml ..."
#---------------------
# Header to $TARGET-index.xml
@ -98,7 +98,7 @@ generate_target_book() { #
inline_doc
local filename # output filename
echo -en "\tGenerating the HTML book for <$TARGET> from the xml files located in <$BLFS_XML>..."
echo -en "\n\tGenerating <$TARGET> HTML book from <$BLFS_XML> xml files ..."
xsltproc --xinclude --nonet \
--stringparam mail_server $MAIL_SERVER \
--stringparam xwindow $X11 \
@ -138,11 +138,11 @@ inline_doc
# Log separator
echo -e "\n\tScripts generation depuration and errors:\n" >> xsltproc.log
echo -en "\tGenerating the build scripts ..."
echo -en "\n\tGenerating the build scripts ..."
xsltproc --xinclude --nonet \
-o ./scripts/ ../libs/scripts.xsl \
$TARGET-index.xml >> xsltproc.log 2>&1
echo "done"
echo -e "done\n"
# Make the scripts executable.
chmod -R +x scripts

View file

@ -83,7 +83,7 @@
</xsl:message>
<!-- Creating the scripts -->
<exsl:document href="{$order}-{$filename}" method="text">
<exsl:document href="{$order}-z-{$filename}" method="text">
<xsl:text>#!/bin/sh&#xA;set -e&#xA;&#xA;</xsl:text>
<xsl:choose>
<!-- Package page -->
@ -102,7 +102,7 @@
</xsl:apply-templates>
<!-- Clean-up -->
<xsl:text>cd ~/sources/$PKG_DIR&#xA;</xsl:text>
<xsl:text>rm -rf $UNPACKDIR&#xA;&#xA;</xsl:text>
<xsl:text>rm -rf $UNPACKDIR unpacked&#xA;&#xA;</xsl:text>
</xsl:when>
<!-- Non-package page -->
<xsl:otherwise>
@ -131,9 +131,15 @@
<xsl:text>&#xA;</xsl:text>
</xsl:when>
<xsl:when test="@role = 'installation'">
<xsl:text>tar -xvf $PACKAGE > unpacked&#xA;</xsl:text>
<xsl:text>UNPACKDIR=`head -n1 unpacked | sed 's@^./@@;s@/.*@@'`&#xA;</xsl:text>
<xsl:text>cd $UNPACKDIR&#xA;</xsl:text>
<xsl:text>
if [[ -e unpacked ]] ; then
UNPACKDIR=`head -n1 unpacked | sed 's@^./@@;s@/.*@@'`
rm -rf $UNPACKDIR
fi
tar -xvf $PACKAGE > unpacked
UNPACKDIR=`head -n1 unpacked | sed 's@^./@@;s@/.*@@'`
cd $UNPACKDIR
</xsl:text>
<xsl:apply-templates select=".//screen | .//para/command"/>
<xsl:text>&#xA;</xsl:text>
</xsl:when>
@ -304,7 +310,7 @@
<xsl:text> elif [[ -f $SRC_ARCHIVE/$PACKAGE ]] ; then&#xA;</xsl:text>
<xsl:text> cp $SRC_ARCHIVE/$PACKAGE $PACKAGE&#xA; else&#xA;</xsl:text>
<!-- The FTP_SERVER mirror -->
<xsl:text> wget $FTP_SERVER/BLFS/conglomeration/$PKG_DIR/$PACKAGE</xsl:text>
<xsl:text> wget ${FTP_SERVER}conglomeration/$PKG_DIR/$PACKAGE</xsl:text>
<!-- Upstream HTTP URL -->
<xsl:if test="string-length(ulink/@url) &gt; '10' and
not(contains(string(ulink/@url),'sourceforge'))">

22
BLFS/makefile.conf Normal file
View file

@ -0,0 +1,22 @@
#####
#
# Configuration file for the BLFS module
#
# $Id$
#
# Set default SRC_ARCHIVE and FTP_DIR
#
#####
#--- The local repository for packages/file
# Any missing file will be downloaded and archived here,
# if the user has the right priviledges.
export SRC_ARCHIVE=$SRC_ARCHIVE
# --- Server used if the file isn't found in SRC_ARCHIVE.
# As a last resort, the file will dowloaded from upstream, if possible.
#
# The server path MUST be set as listed in
# http://www.linuxfromscratch.org/blfs/download.html
export FTP_SERVER=ftp://anduin.linuxfromscratch.org/BLFS/