diff --git a/wmake/wdep b/wmake/wdep index 676783da5f..de5db8d5c7 100755 --- a/wmake/wdep +++ b/wmake/wdep @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------- # License @@ -36,6 +36,9 @@ #------------------------------------------------------------------------------ Script=${0##*/} +# Source the wdep functions +. ${0%/*}/wdepFunctions + usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -70,6 +73,9 @@ do esac done +# Check environment variables +checkEnv + #------------------------------------------------------------------------------ # Check is is the current directory @@ -83,69 +89,14 @@ fi #------------------------------------------------------------------------------ -# Check environment variables +# Search up directories tree for the Make sub-directory containing dep files +# and echo path for the dep file corresponding to the specified source file #------------------------------------------------------------------------------ -for envar in WM_OPTIONS WM_DIR WM_PROJECT_DIR -do - eval test "\$$envar" || { - echo "$Script error: environment variable \$$envar not set" 1>&2 - exit 1 - } -done - - -#------------------------------------------------------------------------------ -# Search up directories tree for the Make sub-directory -#------------------------------------------------------------------------------ - -expandPath() -{ - dir=$(dirname $1) - cwd=$PWD - cd $dir - exPath=$PWD - cd $cwd -} - -findTarget() -{ - expandPath $1 - - if [ "$exPath" = "$WM_PROJECT_DIR" \ - -o "$exPath" = "$HOME" \ - -o "$exPath" = "/" \ - ] - then - echo "$Script error: could not find Make directory" 1>&2 - exit 1 - elif [ -d "$1/Make" ]; then - dir=$1 - else - findTarget "$1/.." - fi -} +findObjectDir $1 fileName=${1##*/} -expandPath $1 - -if echo $exPath | grep "$WM_PROJECT_DIR" > /dev/null -then - platformPath=$WM_PROJECT_DIR/platforms/${WM_OPTIONS} - objectsDir=$platformPath$(echo $exPath | sed s%$WM_PROJECT_DIR%% ) -else - path=$exPath - dir=. - if [ ! -d Make ] - then - findTarget . - fi - appDir=$dir - expandPath $appDir/. - objectsDir=$appDir/Make/${WM_OPTIONS}$(echo $path | sed s%$exPath%% ) -fi - echo $objectsDir/$fileName.dep @@ -153,7 +104,7 @@ echo $objectsDir/$fileName.dep # Cleanup local variables and functions #------------------------------------------------------------------------------ -unset Script usage expandPath findTarget +unset Script usage #------------------------------------------------------------------------------ diff --git a/wmake/wdepFunctions b/wmake/wdepFunctions new file mode 100755 index 0000000000..2007467ae7 --- /dev/null +++ b/wmake/wdepFunctions @@ -0,0 +1,101 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation +# \\/ M anipulation | +#------------------------------------------------------------------------------- +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see . +# +# Script +# wdepFunctions +# +# Description +# Functions to check wmake environment and find dep files +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# Check environment variables +#------------------------------------------------------------------------------ + +checkEnv() +{ + for envar in WM_OPTIONS WM_DIR WM_PROJECT_DIR + do + eval test "\$$envar" || { + echo "$Script error: environment variable \$$envar not set" 1>&2 + exit 1 + } + done +} + + +#------------------------------------------------------------------------------ +# Search up directories tree for the Make sub-directory +#------------------------------------------------------------------------------ + +expandPath() +{ + dir=$(dirname $1) + cwd=$PWD + cd $dir + exPath=$PWD + cd $cwd +} + +findTarget() +{ + expandPath $1 + + if [ "$exPath" = "$WM_PROJECT_DIR" \ + -o "$exPath" = "$HOME" \ + -o "$exPath" = "/" \ + ] + then + echo "$Script error: could not find Make directory" 1>&2 + exit 1 + elif [ -d "$1/Make" ]; then + dir=$1 + else + findTarget "$1/.." + fi +} + +findObjectDir() +{ + expandPath $1 + + if echo $exPath | grep "$WM_PROJECT_DIR" > /dev/null + then + platformPath=$WM_PROJECT_DIR/platforms/${WM_OPTIONS} + objectsDir=$platformPath$(echo $exPath | sed s%$WM_PROJECT_DIR%% ) + else + path=$exPath + dir=. + if [ ! -d Make ] + then + findTarget . + fi + appDir=$dir + expandPath $appDir/. + objectsDir=$appDir/Make/${WM_OPTIONS}$(echo $path | sed s%$exPath%% ) + fi +} + + +#------------------------------------------------------------------------------ diff --git a/bin/rmdepall b/wmake/wrmdep similarity index 58% rename from bin/rmdepall rename to wmake/wrmdep index e4880fc59c..531f08590f 100755 --- a/bin/rmdepall +++ b/wmake/wrmdep @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation +# \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------- # License @@ -23,16 +23,24 @@ # along with OpenFOAM. If not, see . # # Script -# rmdepall +# wrmdep [file] # # Description -# Remove all .dep files or remove .dep files referring to +# Remove all .dep files from the object directory tree corresponding to the +# current source derectory or remove only the .dep files referring to the +# optionally specified [file]. +# #------------------------------------------------------------------------------ +Script=${0##*/} + +# Source the wdep functions +. ${0%/*}/wdepFunctions + usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat< @@ -40,7 +48,11 @@ USAGE exit 1 } -# parse options + +#------------------------------------------------------------------------------ +# Parse arguments and options +#------------------------------------------------------------------------------ + while [ "$#" -gt 0 ] do case "$1" in @@ -56,14 +68,31 @@ do esac done +# Check environment variables +checkEnv + + +#------------------------------------------------------------------------------ +# Remove the selected .dep files from the object tree +#------------------------------------------------------------------------------ + +findObjectDir . if [ "$#" -eq 0 ] then echo "removing all .dep files ..." - find . -name '*.dep' -print | xargs -t rm 2>/dev/null + find $objectsDir -name '*.dep' -print | xargs -t rm 2>/dev/null else echo "removing .dep files referring to $1 ..." - find . -name '*.dep' -exec grep "$1" '{}' \; -exec rm '{}' \; + find $objectsDir -name '*.dep' -exec grep "$1" '{}' \; -exec rm '{}' \; fi + +#------------------------------------------------------------------------------ +# Cleanup local variables and functions +#------------------------------------------------------------------------------ + +unset Script usage + + #------------------------------------------------------------------------------