* Modified AddVariableToScript to support multi-element arrays.
* Added rule AddSourceDirectoryToHaikuImage to copy source directories onto the image. They will be placed in /boot/home/HaikuSource/... according to their relative path. This should make it a bit more comfortable to use gdb as a source level debugger. Alas, the directories have to be made known to gdb individually (with the "directory" command). I guess we should update to 6.6... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20415 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -336,6 +336,7 @@ AddTargetVariableToScript $(script) : <build>resattr ;
|
|||||||
# causes a cyclic dependency
|
# causes a cyclic dependency
|
||||||
AddVariableToScript $(script) : imagePath
|
AddVariableToScript $(script) : imagePath
|
||||||
: [ FDirName $(HAIKU_IMAGE_DIR) $(HAIKU_IMAGE_NAME) ] ;
|
: [ FDirName $(HAIKU_IMAGE_DIR) $(HAIKU_IMAGE_NAME) ] ;
|
||||||
|
AddVariableToScript $(script) : sourceDirsToCopy : $(HAIKU_INSTALL_SOURCE_DIRS) ;
|
||||||
|
|
||||||
# create the other scripts
|
# create the other scripts
|
||||||
HAIKU_IMAGE_MAKE_DIRS_SCRIPT = <HaikuImage>haiku.image-make-dirs ;
|
HAIKU_IMAGE_MAKE_DIRS_SCRIPT = <HaikuImage>haiku.image-make-dirs ;
|
||||||
|
|||||||
+22
-6
@@ -41,17 +41,26 @@ actions InitScript1
|
|||||||
echo -n > $(1)
|
echo -n > $(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
rule AddVariableToScript
|
rule AddVariableToScript script : variable : value
|
||||||
{
|
{
|
||||||
# AddVariableToScript <script> : <variable> : <value> ;
|
# AddVariableToScript <script> : <variable> : <value> ;
|
||||||
#
|
|
||||||
local script = $(1) ;
|
# interpret an empty variable value as empty string
|
||||||
local variable = $(2) ;
|
if ! $(value) {
|
||||||
local value = $(3) ;
|
value = "" ;
|
||||||
|
}
|
||||||
|
|
||||||
InitScript $(script) ;
|
InitScript $(script) ;
|
||||||
|
|
||||||
VARIABLE_DEFS on $(script) += "echo $(variable)=\\\"$(value)\\\" >> " ;
|
VARIABLE_DEFS on $(script) += "echo $(variable)=\\\"$(value[1])\\\" >> " ;
|
||||||
|
|
||||||
|
# if the value is an array, add the other array elements
|
||||||
|
value = $(value[2-]) ;
|
||||||
|
while $(value) {
|
||||||
|
VARIABLE_DEFS on $(script)
|
||||||
|
+= "echo $(variable)+=\\\" $(value[1])\\\" >> " ;
|
||||||
|
value = $(value[2-]) ;
|
||||||
|
}
|
||||||
|
|
||||||
AddVariableToScript1 $(script) ;
|
AddVariableToScript1 $(script) ;
|
||||||
}
|
}
|
||||||
@@ -155,6 +164,13 @@ rule AddSymlinkToHaikuImage
|
|||||||
SYMLINKS_TO_INSTALL on $(directory) += $(link) ;
|
SYMLINKS_TO_INSTALL on $(directory) += $(link) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rule AddSourceDirectoryToHaikuImage dirTokens
|
||||||
|
{
|
||||||
|
# AddSourceDirectoryToHaikuImage <dirTokens> ;
|
||||||
|
|
||||||
|
HAIKU_INSTALL_SOURCE_DIRS += [ FDirName $(HAIKU_TOP) $(dirTokens) ] ;
|
||||||
|
}
|
||||||
|
|
||||||
rule AddDriversToHaikuImage
|
rule AddDriversToHaikuImage
|
||||||
{
|
{
|
||||||
# AddDriversToHaikuImage <relative directory> : <targets> ;
|
# AddDriversToHaikuImage <relative directory> : <targets> ;
|
||||||
|
|||||||
@@ -43,6 +43,10 @@ AddFilesToHaikuImage beos bin : crashing_app ;
|
|||||||
# Make a symlink to home/config/bin/crash.
|
# Make a symlink to home/config/bin/crash.
|
||||||
AddSymlinkToHaikuImage home config bin : /beos/bin/crashing_app : crash ;
|
AddSymlinkToHaikuImage home config bin : /beos/bin/crashing_app : crash ;
|
||||||
|
|
||||||
|
# Adds the source directory src/kits/storage (recursively) to the image
|
||||||
|
# (as /boot/home/HaikuSources/src/kits/storage).
|
||||||
|
AddSourceDirectoryToHaikuImage src kits storage ;
|
||||||
|
|
||||||
# Specify scripts that shall be run when populating the image/installation
|
# Specify scripts that shall be run when populating the image/installation
|
||||||
# directory. The "early" script is run before anything has been copied onto
|
# directory. The "early" script is run before anything has been copied onto
|
||||||
# the image/into the installation directory. The "late" script is run after
|
# the image/into the installation directory. The "late" script is run after
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
# imagePath
|
# imagePath
|
||||||
# imageSize
|
# imageSize
|
||||||
# addBuildCompatibilityLibDir
|
# addBuildCompatibilityLibDir
|
||||||
|
# sourceDirsToCopy
|
||||||
#
|
#
|
||||||
# bfsShell
|
# bfsShell
|
||||||
# copyattr
|
# copyattr
|
||||||
@@ -122,6 +123,36 @@ done
|
|||||||
# cleanup tmp dir
|
# cleanup tmp dir
|
||||||
rm -rf $mimeTmpDir
|
rm -rf $mimeTmpDir
|
||||||
|
|
||||||
|
|
||||||
|
# install sources
|
||||||
|
|
||||||
|
sourcesDest=${tPrefix}home/HaikuSources
|
||||||
|
|
||||||
|
# create sources directory
|
||||||
|
if [ -n "${sourceDirsToCopy}" ]; then
|
||||||
|
echo "Installing Haiku Sources ..."
|
||||||
|
|
||||||
|
$mkdir -p ${sourcesDest}
|
||||||
|
fi
|
||||||
|
|
||||||
|
for sourcesDir in ${sourceDirsToCopy}; do
|
||||||
|
echo " sources dir: ${sourcesDir}"
|
||||||
|
|
||||||
|
# create all subdirectories
|
||||||
|
subDirs=$(find ${sourcesDir} -type d | grep -v '.svn' |
|
||||||
|
sed -e "s@^${sourceDir}@${sourcesDest}@")
|
||||||
|
$mkdir -p ${subDirs}
|
||||||
|
|
||||||
|
# get all files and copy each one individually
|
||||||
|
sourceFiles=$(find $sourcesDir -type f | grep -v '.svn')
|
||||||
|
for sourceFile in $sourceFiles; do
|
||||||
|
destSourceFile=$(echo $sourceFile |
|
||||||
|
sed -e "s@^${sourceDir}@${sourcesDest}@")
|
||||||
|
$cp ${sPrefix}$sourceFile $destSourceFile
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
# unmount
|
# unmount
|
||||||
if [ $isImage ]; then
|
if [ $isImage ]; then
|
||||||
echo "Unmounting ..."
|
echo "Unmounting ..."
|
||||||
|
|||||||
Reference in New Issue
Block a user