which may be optionally overridden by version-specific rules. For example the default rules for gcc on GNU/Linux x86_64 are in the wmake/rules/linux64Gcc directory. If there is a need to change any of the rules for a specific version of gcc, e.g. gcc-4.8.4 the directory wmake/rules/linux64Gcc48 may be created into which any of the language files may be provided containing the rules to override the defaults.
78 lines
2.9 KiB
Makefile
78 lines
2.9 KiB
Makefile
#-------------------------------*- makefile -*---------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 2011-2016 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 <http://www.gnu.org/licenses/>.
|
|
#
|
|
# File
|
|
# wmake/makefiles/files
|
|
#
|
|
# Description
|
|
# A Makefile for the 'options' and 'files' files, used by wmake
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
|
|
GENERAL_RULES = $(WM_DIR)/rules/General
|
|
include $(GENERAL_RULES)/general
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# declare names of make system control files derived from file 'files'
|
|
#------------------------------------------------------------------------------
|
|
|
|
OBJECTS_DIR = $(MAKE_DIR)/$(WM_OPTIONS)
|
|
OPTIONS = $(OBJECTS_DIR)/options
|
|
FILES = $(OBJECTS_DIR)/files
|
|
VARS = $(OBJECTS_DIR)/variables
|
|
SFILES = $(OBJECTS_DIR)/sourceFiles
|
|
|
|
-include $(OPTIONS)
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Declare dependecy of all make system files on FILES
|
|
# Causes all derived files to be remade if any are changed or missing
|
|
#------------------------------------------------------------------------------
|
|
|
|
all : $(OPTIONS) $(SFILES) $(VARS)
|
|
|
|
$(OPTIONS) : $(MAKE_DIR)/options
|
|
@$(CPP) $(GFLAGS) $(MAKE_DIR)/options | sed -e 's@ *@ @g' > $(OPTIONS)
|
|
|
|
$(SFILES): $(MAKE_DIR)/files
|
|
@$(CPP) $(GFLAGS) $(MAKE_DIR)/files | sed -e 's@ *@ @g' > $(FILES)
|
|
# Find all macro definitions in the files
|
|
@grep "=" $(FILES) > $(VARS)
|
|
echo "SOURCE = " > $(SFILES)
|
|
# Remove all macro definitions from the files list
|
|
@grep -v "=" $(FILES) >> $(SFILES)
|
|
@rm -f $(FILES)
|
|
# Add a newline to files to ensure the last line is followed by a newline
|
|
@echo "" >> $(SFILES)
|
|
# Remove commented lines, blank lines, and trailing blanks from files
|
|
@sed -i -e '/^#/ d' -e '/^[ \t]*$$/ d' -e 's,[ \t]*$$,,' $(SFILES)
|
|
# Add backslashes
|
|
@sed -i -e 's,$$, \\,' -e '$$s,\\,,' $(SFILES)
|
|
|
|
$(VARS): $(SFILES)
|
|
|
|
|
|
#------------------------------------------------------------------------------
|