#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | foam-extend: Open Source CFD # \\ / O peration | Version: 4.0 # \\ / A nd | Web: http://www.foam-extend.org # \\/ M anipulation | For copyright notice see file Copyright #------------------------------------------------------------------------------ # License # This file is part of foam-extend. # # foam-extend 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. # # foam-extend 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 foam-extend. If not, see . # # 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 .. #------------------------------------------------------------------------------