- Make the number of parallel jobs configurable in the menuconfig interface

- Allow choosing a working copy of the blfs book
This commit is contained in:
Pierre Labastie 2013-11-16 22:35:25 +00:00
parent d023a3519f
commit 854854e880
6 changed files with 76 additions and 129 deletions

130
Config.in
View file

@ -21,9 +21,6 @@ menu "--- BOOK Settings"
# config BOOK_HLFS # config BOOK_HLFS
# bool "Hardened Linux From Scratch" # bool "Hardened Linux From Scratch"
# config BOOK_BLFS
# bool "Beyond Linux From Scratch"
endchoice endchoice
config PROGNAME config PROGNAME
@ -33,12 +30,10 @@ menu "--- BOOK Settings"
default "clfs2" if BOOK_CLFS2 default "clfs2" if BOOK_CLFS2
default "clfs3" if BOOK_CLFS3 default "clfs3" if BOOK_CLFS3
default "hlfs" if BOOK_HLFS default "hlfs" if BOOK_HLFS
# default "blfs" if BOOK_BLFS
config RUN_ME config RUN_ME
string string
default "./jhalfs run"# if !BOOK_BLFS default "./jhalfs run"
# default "./blfs-tool" if BOOK_BLFS
#--- End BOOK/script #--- End BOOK/script
#--- Book version #--- Book version
@ -60,7 +55,6 @@ menu "--- BOOK Settings"
config WORKING_COPY config WORKING_COPY
bool "Working Copy" bool "Working Copy"
# depends on !BOOK_BLFS
help help
#-- A local working copy #-- A local working copy
@ -428,79 +422,10 @@ menu "--- BOOK Settings"
default "2.6" if KERNEL_26 default "2.6" if KERNEL_26
default "2.4" if KERNEL_24 default "2.4" if KERNEL_24
# menu "HLFS Additional Features"
# depends on BOOK_HLFS
#
# config SET_SSP
# bool "Stack-smashing protector"
# default y
#
# config SET_ASLR
# bool "Address-space layout randomization"
# default y
#
# config SET_PAX
# bool "PaX-aware ELF executables and kernel"
# default y
#
# config SET_HARDENED_TMP
# bool "Hardened temporary files creation"
# default y
#
# config SET_WARNINGS
# bool "Additional warnings"
# default y
#
# config SET_MISC
# bool "Miscellaneous features"
# default y
#
# config SET_BLOWFISH
# bool "Blowfish passwords"
# default y
# endmenu
config SSP
# depends on SET_SSP
string
default ",ssp,"
config ASLR
# depends on SET_ASLR
string
default ",aslr,"
config PAX
# depends on SET_PAX
string
default ",pax,"
config HARDENED_TMP
# depends on SET_HARDENED_TMP
string
default ",hardened_tmp,"
config WARNINGS
# depends on SET_WARNINGS
string
default ",warnings,"
config MISC
# depends on SET_MISC
string
default ",misc,"
config BLOWFISH
# depends on SET_BLOWFISH
string
default ",blowfish,"
#--- End HLFS specific params
#--- Custom Tools support #--- Custom Tools support
config CUSTOM_TOOLS config CUSTOM_TOOLS
bool "Add custom tools support" bool "Add custom tools support"
default n default n
# depends on !BOOK_BLFS
help help
#--- Activating this option additional packages you create #--- Activating this option additional packages you create
# will be installed after finished the xLFS system build. # will be installed after finished the xLFS system build.
@ -511,7 +436,6 @@ menu "--- BOOK Settings"
config BLFS_TOOL config BLFS_TOOL
bool "Add blfs-tool support" bool "Add blfs-tool support"
default n default n
# depends on !BOOK_BLFS && !BOOK_CLFS3
depends on !BOOK_CLFS3 depends on !BOOK_CLFS3
help help
#--- Activating this option will install additional #--- Activating this option will install additional
@ -541,12 +465,24 @@ menu "--- BOOK Settings"
help help
#-- Current development version as in trunk #-- Current development version as in trunk
config BLFS_WORKING_COPY
bool "BLFS working copy"
help
#-- A local working copy of the BLFS book.
config BLFS_BRANCH config BLFS_BRANCH
bool "BLFS Branch or stable book" bool "BLFS Branch or stable book"
help help
#-- A supported SVN branch or stable book release #-- A supported SVN branch or stable book release
endchoice endchoice
config BLFS_WC_LOCATION
string "Location of the local BLFS working copy (mandatory)"
default "**EDIT ME**"
depends on BLFS_WORKING_COPY
help
#-- Full path to the BLFS book working copy"
config BLFS_BRANCH_ID config BLFS_BRANCH_ID
string "BLFS Book Version (mandatory)" string "BLFS Book Version (mandatory)"
default "**EDIT ME**" default "**EDIT ME**"
@ -628,9 +564,7 @@ menu "--- BOOK Settings"
#--- BLFS specific params #--- BLFS specific params
config BLFS_ROOT config BLFS_ROOT
string "Directory root" string "Directory root"
# default "$HOME/blfs_root" if BOOK_BLFS default "/blfs_root"
default "/blfs_root" if BLFS_TOOL
# depends on BOOK_BLFS || BLFS_TOOL
depends on BLFS_TOOL depends on BLFS_TOOL
help help
#-- Full path to the directory where all required #-- Full path to the directory where all required
@ -639,7 +573,6 @@ menu "--- BOOK Settings"
config BLFS_XML config BLFS_XML
string "BLFS sources directory" string "BLFS sources directory"
default "blfs-xml" default "blfs-xml"
# depends on BOOK_BLFS || BLFS_TOOL
depends BLFS_TOOL depends BLFS_TOOL
help help
#-- The directory name under $BLFS_ROOT where the BLFS #-- The directory name under $BLFS_ROOT where the BLFS
@ -648,7 +581,6 @@ menu "--- BOOK Settings"
config TRACKING_DIR config TRACKING_DIR
string "Installed packages database directory" string "Installed packages database directory"
default "/var/lib/jhalfs/BLFS" default "/var/lib/jhalfs/BLFS"
# depends on BOOK_BLFS || BLFS_TOOL || CUSTOM_TOOLS
depends on BLFS_TOOL || CUSTOM_TOOLS depends on BLFS_TOOL || CUSTOM_TOOLS
help help
#-- Full path to the directory where the database of #-- Full path to the directory where the database of
@ -670,7 +602,6 @@ menu "--- BOOK Settings"
endmenu endmenu
menu "--- General Settings" menu "--- General Settings"
# depends on !BOOK_BLFS
#--- Set User Account #--- Set User Account
config CONFIG_USER config CONFIG_USER
@ -816,7 +747,6 @@ menu "--- General Settings"
endmenu endmenu
menu "--- Build Settings" menu "--- Build Settings"
# depends on !BOOK_BLFS
#--- Test Suites #--- Test Suites
config CONFIG_TESTS config CONFIG_TESTS
@ -1021,7 +951,6 @@ menu "--- Build Settings"
endmenu endmenu
menu "--- Advanced Features" menu "--- Advanced Features"
# depends on !BOOK_BLFS
config REPORT config REPORT
bool "Create SBU and disk usage report" bool "Create SBU and disk usage report"
@ -1071,23 +1000,29 @@ menu "--- Advanced Features"
#--- Optimizations #--- Optimizations
if !BOOK_CLFS2 && !BOOK_CLFS3 if !BOOK_CLFS2 && !BOOK_CLFS3
config CONFIG_OPTIMIZE config CONFIG_OPTIMIZE
bool "Use optimization (see help)" bool "Optimization and parallelization"
default n default n
help help
#-- Actual optimization flags MUST be defined in ./optimize/* # Opens a menu for various optimization settings:
# files before activating this option. # Actual optimization flags MUST be defined in ./optimize/*
# before activating this option.
# #
# WARNING: The use of build optimizations may be dangerous. # WARNING: The use of build optimizations may lead to build issues.
# You should know what you are doing and be sure that the # If the system doesn't work as expected, please rebuild
# optimization settings listed below are what you want. # without optimizations before asking for support.
# It there are build issues or the system doesn't work as menu "Optimization settings"
# expected, please rebuild without optimizations before depends on CONFIG_OPTIMIZE
# asking for support.
config N_PARALLEL
int "Number of parallel `make' jobs"
default 1
help
#-- The usual recommandation is (number of CPU cores)+1
# Do not set for meaningful SBU calculations.
choice choice
prompt "Optimization level " prompt "Optimization level "
default OPT_1 default OPT_1
depends CONFIG_OPTIMIZE
help help
#-- Optimization values are set in optimize/* files #-- Optimization values are set in optimize/* files
@ -1100,7 +1035,7 @@ if !BOOK_CLFS2 && !BOOK_CLFS3
config OPT_3 config OPT_3
bool "Cross tools (only MAKEFLAGS), temp tools and final system" if BOOK_CLFS bool "Cross tools (only MAKEFLAGS), temp tools and final system" if BOOK_CLFS
endchoice endchoice
endmenu
config OPTIMIZE config OPTIMIZE
int int
default "0" if !CONFIG_OPTIMIZE default "0" if !CONFIG_OPTIMIZE
@ -1111,7 +1046,7 @@ endif
#--- End Optimizations #--- End Optimizations
#-- Internal Settings #-- Internal Settings
menu "--- Internal Settings (WARNING: for jhalfs developers only)" menu "Internal Settings (WARNING: for jhalfs developers only)"
config SCRIPT_ROOT config SCRIPT_ROOT
string "Scripts root" string "Scripts root"
@ -1174,7 +1109,6 @@ endmenu
config REBUILD_MAKEFILE config REBUILD_MAKEFILE
bool "Rebuild the Makefile (see help)" bool "Rebuild the Makefile (see help)"
default n default n
# depends on !BOOK_BLFS
help help
#-- Rebuild the Makefile #-- Rebuild the Makefile
# #

View file

@ -26,7 +26,12 @@ sed -i s@tracking-dir@$TRACKING_DIR@ \
sed -i s@trunk/BOOK@$BLFS_TREE@ \ sed -i s@trunk/BOOK@$BLFS_TREE@ \
${BUILDDIR}${BLFS_ROOT}/Makefile ${BUILDDIR}${BLFS_ROOT}/Makefile
# Downloads the book, initialize the tracking file and the package database # If we have a working copy, copy it:
if [[ "$BLFS_WORKING_COPY" = "y" ]]; then
cp -r $BLFS_WC_LOCATION ${BUILDDIR}${BLFS_ROOT}/blfs-xml
fi
# Downloads the book if necessary, initialize the tracking file and the
# package database.
# sudo is needed if $BUILDDIR/var/lib is owned by root and /var/lib/jhalfs # sudo is needed if $BUILDDIR/var/lib is owned by root and /var/lib/jhalfs
# has to be created # has to be created
sudo make -j1 -C $BUILDDIR$BLFS_ROOT TRACKING_DIR=$BUILDDIR$TRACKING_DIR \ sudo make -j1 -C $BUILDDIR$BLFS_ROOT TRACKING_DIR=$BUILDDIR$TRACKING_DIR \

View file

@ -53,13 +53,13 @@ inline_doc
local -r clfs_PARAM_LIST="$CLFS_book $GENERAL_common $CLFS_build $ADVANCED_chroot $ADVANCED_common" local -r clfs_PARAM_LIST="$CLFS_book $GENERAL_common $CLFS_build $ADVANCED_chroot $ADVANCED_common"
local -r clfs2_PARAM_LIST="$CLFS2_book $GENERAL_common $CLFS2_build $ADVANCED_common" local -r clfs2_PARAM_LIST="$CLFS2_book $GENERAL_common $CLFS2_build $ADVANCED_common"
local -r clfs3_PARAM_LIST="$CLFS3_book $GENERAL_common $CLFS3_build $ADVANCED_common" local -r clfs3_PARAM_LIST="$CLFS3_book $GENERAL_common $CLFS3_build $ADVANCED_common"
local -r blfs_PARAM_LIST="BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR" # local -r blfs_PARAM_LIST="BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR"
# Additional variables (add DEP_DBXSL when required again) # Additional variables
local -r blfs_tool_PARAM_LIST="BLFS_BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR \ local -r blfs_tool_PARAM_LIST="\
DEP_LIBXML DEP_LIBXSLT DEP_TIDY \ BLFS_TREE BLFS_BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR \
DEP_DBXML DEP_LYNX DEP_SUDO DEP_WGET \ DEP_LIBXML DEP_LIBXSLT DEP_TIDY DEP_DBXML DEP_LYNX DEP_SUDO DEP_WGET \
DEP_SVN DEP_GPM DEP_OPENSSL DEP_PYTHON" DEP_SVN DEP_GPM DEP_OPENSSL DEP_PYTHON"
local -r custom_tool_PARAM_LIST="TRACKING_DIR" local -r custom_tool_PARAM_LIST="TRACKING_DIR"
# Internal variables # Internal variables
@ -184,10 +184,6 @@ inline_doc
echo echo
;; ;;
# BLFS params.
BRANCH_ID | BLFS_ROOT | BLFS_XML ) echo "`eval echo $PARAM_VALS`" ;;
TRACKING_DIR ) validate_dir -z -d -w ;;
# Display non-validated envars found in ${PROGNAME}_PARAM_LIST # Display non-validated envars found in ${PROGNAME}_PARAM_LIST
* ) echo -e "`eval echo $PARAM_VALS`" ;; * ) echo -e "`eval echo $PARAM_VALS`" ;;

41
jhalfs
View file

@ -200,7 +200,6 @@ BOOK=${BOOK:=$JHALFSDIR/$PROGNAME-$LFSVRS}
#--- Envars not sourced from configuration #--- Envars not sourced from configuration
case $PROGNAME in case $PROGNAME in
# TODO: clfs is now on git
clfs ) declare -r GIT="git://git.cross-lfs.org/cross-lfs" ;; clfs ) declare -r GIT="git://git.cross-lfs.org/cross-lfs" ;;
clfs2 ) declare -r GIT="git://git.cross-lfs.org/clfs-sysroot" ;; clfs2 ) declare -r GIT="git://git.cross-lfs.org/clfs-sysroot" ;;
clfs3 ) declare -r GIT="git://git.cross-lfs.org/clfs-embedded" ;; clfs3 ) declare -r GIT="git://git.cross-lfs.org/clfs-embedded" ;;
@ -251,15 +250,35 @@ source $COMMON_DIR/libs/func_custom_pkgs
# blfs-tool envars # blfs-tool envars
BLFS_TOOL=${BLFS_TOOL:-n} BLFS_TOOL=${BLFS_TOOL:-n}
if [[ "${BLFS_TOOL}" = "y" ]] ; then if [[ "${BLFS_TOOL}" = "y" ]] ; then
BLFS_BRANCH_ID=${BLFS_BRANCH_ID:=development} BLFS_SVN=${BLFS_SVN:-n}
case $BLFS_BRANCH_ID in BLFS_WORKING_COPY=${BLFS_WORKING_COPY:-n}
development ) BLFS_TREE=trunk/BOOK ;; BLFS_BRANCH=${BLFS_BRANCH:-n}
*EDIT* ) echo " You forgot to set the BLFS branch or stable book version." if [[ "${BLFS_SVN}" = "y" ]]; then
echo " Please rerun make and fix the configuration." BLFS_BRANCH_ID=development
exit 2 ;; BLFS_TREE=trunk/BOOK
branch-* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-} ;; elif [[ "${BLFS_WORKING_COPY}" = "y" ]]; then
* ) BLFS_TREE=tags/${BLFS_BRANCH_ID} ;; [[ -d "$BLFS_WC_LOCATION" ]] &&
esac [[ -d "$BLFS_WC_LOCATION/postlfs" ]] || {
echo " BLFS tools: This is not a working copy: $BLFS_WC_LOCATION."
echo " Please rerun make and fix the configuration."
exit 2
}
BLFS_TREE=$(cd $BLFS_WC_LOCATION; svn info | grep URL | sed 's@.*BLFS/@@')
BLFS_BRANCH_ID=$(echo $BLFS_TREE | sed -e 's@trunk/BOOK@development@' \
-e 's@branches/@branch-@' \
-e 's@tags/@@' \
-e 's@/BOOK@@')
elif [["${BLFS_BRANCH}" = "y" ]] ; then
case $BLFS_BRANCH_ID in
*EDIT* ) echo " You forgot to set the BLFS branch or stable book version."
echo " Please rerun make and fix the configuration."
exit 2 ;;
branch-systemd ) BLFS_TREE=branches/systemd ;;
branch-* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-}/BOOK ;;
6.2* | 7.4* ) BLFS_TREE=tags/${BLFS_BRANCH_ID} ;;
* ) BLFS_TREE=tags/${BLFS_BRANCH_ID}/BOOK ;;
esac
fi
[[ $VERBOSITY > 0 ]] && echo -n "Loading blfs tools installation function..." [[ $VERBOSITY > 0 ]] && echo -n "Loading blfs tools installation function..."
source $COMMON_DIR/libs/func_install_blfs source $COMMON_DIR/libs/func_install_blfs
[[ $? > 0 ]] && echo "function module did not load.." && exit 1 [[ $? > 0 ]] && echo "function module did not load.." && exit 1
@ -302,6 +321,8 @@ if [[ "$OPTIMIZE" != "0" ]]; then
source optimize/opt_config source optimize/opt_config
[[ $? > 0 ]] && echo " optimize/opt_config did not load.." && exit [[ $? > 0 ]] && echo " optimize/opt_config did not load.." && exit
[[ $VERBOSITY > 0 ]] && echo "OK" [[ $VERBOSITY > 0 ]] && echo "OK"
# The number of parallel jobs is taken from configuration now
MAKEFLAGS="-j${N_PARALLEL}"
# Validate optimize settings, if required # Validate optimize settings, if required
validate_opt_settings validate_opt_settings
fi fi

View file

@ -7,15 +7,8 @@
#$Id$ #$Id$
# #
#--- Extra flags passed to the packages make commands #--- List of packages that have issues with parallelization.
# "unset" will cause the variable to be not set
# instead of just set to null.
MAKEFLAGS="-j3"
#--- List of packages that have issues with jobs control.
# This list may be different for you. # This list may be different for you.
# If your MAKEFLAGS don't contains a -jX option, you can set
# a empty list here.
BLACK_LIST="attr autoconf coreutils dejagnu gettext gperf groff man-db vim" BLACK_LIST="attr autoconf coreutils dejagnu gettext gperf groff man-db vim"
# Rationale for attr, coreutils, gperf: the tests do not pass with -jX # Rationale for attr, coreutils, gperf: the tests do not pass with -jX
# CLFS packages # CLFS packages

View file

@ -1,5 +1,3 @@
binutils noOpt
gcc noOpt gcc noOpt
glibc noOpt
grub noOpt grub noOpt
zlib defOpt_fPIC zlib defOpt_fPIC