ordering of face modification
[OpenFOAM-1.5.x.git] / wmake / wmakeLnInclude
blobfcf3bfbf50acab0a0399ab1f2cc197e36151cfc1
1 #!/bin/sh
2 #------------------------------------------------------------------------------
3 # ========= |
4 # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 # \\ / O peration |
6 # \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
7 # \\/ M anipulation |
8 #-------------------------------------------------------------------------------
9 # License
10 # This file is part of OpenFOAM.
12 # OpenFOAM is free software; you can redistribute it and/or modify it
13 # under the terms of the GNU General Public License as published by the
14 # Free Software Foundation; either version 2 of the License, or (at your
15 # option) any later version.
17 # OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
18 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 # for more details.
22 # You should have received a copy of the GNU General Public License
23 # along with OpenFOAM; if not, write to the Free Software Foundation,
24 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 # Script
27 # wmakeLnInclude
29 # Description
30 # Link all the source files in the <dir> directory into <dir>/lnInclude
32 # Usage: wmakeLnInclude [-f] <dir> [-lnOption]
34 # The desired source files:
35 # *.C *.H *.h *.cpp *.cxx *.hpp *.hxx
37 # Avoid
38 # *.c (C source)
39 # .#* (cvs recovered files)
40 #------------------------------------------------------------------------------
41 Script=${0##*/}
43 usage() {
44 while [ "$#" -ge 1 ]; do echo "$1"; shift; done
45 cat<<USAGE
47 usage: $Script [-f] <dir> [-lnOption]
49 Link all the source files in the <dir> into <dir>/lnInclude
50 * Use '-f' to force an update when the lnInclude directory already exists.
52 USAGE
53 exit 1
56 #------------------------------------------------------------------------------
58 # simple option parsing
59 unset forceUpdate
60 unset findOpt
62 # simple parse options
63 while [ "$#" -gt 0 ]
65 case "$1" in
66 -h | -help) # provide immediate help
67 usage
69 -f)
70 shift
71 forceUpdate=1
73 -*)
74 usage "unknown option/argument: '$*'"
77 break
79 esac
80 done
82 baseDir=$1
83 incDir=$baseDir/lnInclude
85 if [ $# -eq 1 ]
86 then
87 lnOpt="-s"
88 elif [ $# -eq 2 ]
89 then
90 lnOpt="$2"
91 else
92 usage "ERROR: wrong number of arguments"
96 if [ ! -d $baseDir ]
97 then
98 echo $Script: Base directory $baseDir does not exist, exiting.
99 exit 2
102 if [ -d $incDir ]
103 then
104 # could change force to remove lnInclude first
105 if [ ! "$forceUpdate" ]
106 then
107 # echo $Script: include directory $incDir already exists, exiting.
108 exit 0
110 else
111 mkdir $incDir
114 if [ ! -d $incDir ]
115 then
116 echo $Script: failed to create include directory $incDir
117 exit 0
121 # Link include files
122 # ~~~~~~~~~~~~~~~~~~
123 echo $Script: linking include files to $incDir
124 echo
126 cd $incDir
128 find .. $findOpt \
129 \( -name lnInclude -o -name -Make -o -name config \) -prune \
130 -o \( -name '*.[CHh]' -o -name '*.[ch]xx' -o -name '*.[ch]pp' -o -name '*.type' \) \
131 -a ! -name ".#*" \
132 -exec ln $lnOpt {} . \;
136 # remove any broken links
138 find -L . -type l -exec rm \{\} \;
140 #------------------------------------------------------------------------------