Merged r2925:2931 from trunk
This commit is contained in:
parent
1b99a8b0b4
commit
d0d9e90e30
7 changed files with 64 additions and 57 deletions
|
@ -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
34
BLFS/libs/func_makefile → BLFS/gen-makefile.sh
Normal file → Executable 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= "[0;1m"
|
||||
|
@ -147,3 +151,9 @@ EOF
|
|||
rm $MKFILE.tmp
|
||||
|
||||
}
|
||||
|
||||
generate_Makefile
|
||||
|
||||
cp ../progress_bar.sh .
|
||||
|
||||
mkdir -p logs
|
|
@ -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\"`"
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
set -e

</xsl:text>
|
||||
<xsl:choose>
|
||||
<!-- Package page -->
|
||||
|
@ -102,7 +102,7 @@
|
|||
</xsl:apply-templates>
|
||||
<!-- Clean-up -->
|
||||
<xsl:text>cd ~/sources/$PKG_DIR
</xsl:text>
|
||||
<xsl:text>rm -rf $UNPACKDIR

</xsl:text>
|
||||
<xsl:text>rm -rf $UNPACKDIR unpacked

</xsl:text>
|
||||
</xsl:when>
|
||||
<!-- Non-package page -->
|
||||
<xsl:otherwise>
|
||||
|
@ -131,9 +131,15 @@
|
|||
<xsl:text>
</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@role = 'installation'">
|
||||
<xsl:text>tar -xvf $PACKAGE > unpacked
</xsl:text>
|
||||
<xsl:text>UNPACKDIR=`head -n1 unpacked | sed 's@^./@@;s@/.*@@'`
</xsl:text>
|
||||
<xsl:text>cd $UNPACKDIR
</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>
</xsl:text>
|
||||
</xsl:when>
|
||||
|
@ -304,7 +310,7 @@
|
|||
<xsl:text> elif [[ -f $SRC_ARCHIVE/$PACKAGE ]] ; then
</xsl:text>
|
||||
<xsl:text> cp $SRC_ARCHIVE/$PACKAGE $PACKAGE
 else
</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) > '10' and
|
||||
not(contains(string(ulink/@url),'sourceforge'))">
|
||||
|
|
22
BLFS/makefile.conf
Normal file
22
BLFS/makefile.conf
Normal 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/
|
Reference in a new issue