#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright held by original author # \\/ 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 2 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, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # Script # wmakeDerivedFiles # # Description # Constructs all the file list for make given the source file list # (which written by hand or using makeFilesAndDirectories.) # #------------------------------------------------------------------------------ if [ ! -d "$WM_OPTIONS" ] then echo "The $WM_OPTIONS directory does not exist, exiting" 1>&2 exit 1 fi # change to the $WM_OPTIONS directory cd $WM_OPTIONS 2>/dev/null || { echo "Could not change to directory '$WM_OPTIONS'" 1>&2 exit 1 } # Find and keep macro definitions in files list grep "=" files > filesMacros # Remove all macro definitions from the files list grep -v "=" files > filesPlusBlank # Add a newline to files to make sure the last line is followed by a newline echo "" >> filesPlusBlank # Remove commented lines blank lines, and trailing blanks from files # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sed -e '/^#/ d' \ -e '/^[ \t]*$/ d' \ -e 's/[ \t]*$//' \ filesPlusBlank > files.$$ rm filesPlusBlank # make sourceFiles # ~~~~~~~~~~~~~~~~ echo "SOURCE = " > tmpSourceFile cat files.$$ >> tmpSourceFile sed -e 's/$/\\/' \ -e '$s/\\//' \ tmpSourceFile > sourceFiles rm tmpSourceFile # make objectFiles # ~~~~~~~~~~~~~~~~ sed -e 's%.*/%%' \ -e 's%^%$(OBJECTS_DIR)/%' \ -e 's%\.[a-zA-Z]*$%\.o%' \ files.$$ > tmpObjectFiles echo "OBJECTS = " > tmpObjectFiles2 cat tmpObjectFiles >> tmpObjectFiles2 sed -e 's/$/\\/' \ -e '$s/\\//' \ tmpObjectFiles2 > objectFiles rm tmpObjectFiles tmpObjectFiles2 # make localObjectFiles # ~~~~~~~~~~~~~~~~~~~~~ sed -e 's%.*/%%' \ -e 's%\.[a-zA-Z]*$%\.o%' \ files.$$ > tmpLocalObjectFiles echo "LOCAL_OBJECTS = " > tmpLocalObjectFiles2 cat tmpLocalObjectFiles >> tmpLocalObjectFiles2 sed -e 's/$/\\/' \ -e '$s/\\//' \ tmpLocalObjectFiles2 > localObjectFiles rm tmpLocalObjectFiles tmpLocalObjectFiles2 # make dependencyFiles # ~~~~~~~~~~~~~~~~~~~~ sed 's/\.[a-zA-Z]*$/\.dep/' \ files.$$ > tmpDependencyFiles echo "DEPENDENCIES = " > tmpDependencyFiles2 cat tmpDependencyFiles >> tmpDependencyFiles2 sed -e 's/$/\\/' \ -e '$s/\\//' \ tmpDependencyFiles2 > dependencyFiles rm tmpDependencyFiles tmpDependencyFiles2 # make includeDeps # ~~~~~~~~~~~~~~~~ sed -e 's/\.[a-zA-Z]*$/.dep/' \ -e 's/^/include /' \ files.$$ > includeDeps rm files.$$ cd .. #------------------------------------------------------------------------------