mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
wmake: General cleanup to improve consistency and maintainability
The Makefiles are now in the makefiles sub-directory The "-f | -force" option in wmakeLnInclude is now "-u | -update" for consistency with the other scripts. The "Usage" entry in the headers is now consistently formatted in all scripts.
This commit is contained in:
212
wmake/makefiles/general
Normal file
212
wmake/makefiles/general
Normal file
@ -0,0 +1,212 @@
|
||||
#-------------------------------*- makefile -*---------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
# \\ / O peration |
|
||||
# \\ / A nd | Copyright (C) 2011-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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# File
|
||||
# wmake/makefiles/general
|
||||
#
|
||||
# Description
|
||||
# Makefile used by wmake to make dependency files and libs and applications
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# The Makefile uses a POSIX shell
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Unset suffices list (suffix rules are not used)
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Set the directory containing the wmake scripts
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
WM_SCRIPTS = $(WM_DIR)/scripts
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Declare default paths
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
LIB_SRC = $(WM_PROJECT_DIR)/src
|
||||
LIB_PLATFORMS = $(WM_PROJECT_DIR)/platforms/$(WM_OPTIONS)/lib
|
||||
OBJECTS_DIR = $(MAKE_DIR)/$(WM_OPTIONS)
|
||||
|
||||
SYS_INC =
|
||||
SYS_LIBS =
|
||||
|
||||
PROJECT_INC = -I$(LIB_SRC)/$(WM_PROJECT)/lnInclude \
|
||||
-I$(LIB_SRC)/OSspecific/$(WM_OSTYPE)/lnInclude
|
||||
|
||||
PROJECT_LIBS = -l$(WM_PROJECT)
|
||||
|
||||
EXE_INC =
|
||||
EXE_LIBS =
|
||||
|
||||
LIB_LIBS =
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Declare default name of libraries and executables
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Library
|
||||
LIB = libNULL
|
||||
|
||||
# Shared library extension
|
||||
SO = so
|
||||
|
||||
# Project executable
|
||||
EXE = $(WM_PROJECT).out
|
||||
|
||||
# Standalone executable
|
||||
SEXE = a.out
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Set compilation and dependency building rules
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
GENERAL_RULES = $(WM_DIR)/rules/General
|
||||
RULES = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
|
||||
WMAKE_BIN = $(WM_DIR)/platforms/$(WM_ARCH)$(WM_COMPILER)
|
||||
|
||||
include $(GENERAL_RULES)/general
|
||||
include $(RULES)/general
|
||||
include $(RULES)/$(WM_LINK_LANGUAGE)
|
||||
include $(GENERAL_RULES)/transform
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Include PROJECT directory tree file and
|
||||
# source, object and dependency list files.
|
||||
# These are constructed by MakefileFiles
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
include $(OBJECTS_DIR)/options
|
||||
include $(OBJECTS_DIR)/variables
|
||||
include $(OBJECTS_DIR)/sourceFiles
|
||||
DEPENDENCIES=$(SOURCE:%=$(OBJECTS_DIR)/%.dep)
|
||||
BASENAMES=$(basename $(SOURCE))
|
||||
OBJECTS=$(BASENAMES:%=$(OBJECTS_DIR)/%.o)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Set header file include paths
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
LIB_HEADER_DIRS = \
|
||||
$(EXE_INC) \
|
||||
-IlnInclude \
|
||||
-I. \
|
||||
$(PROJECT_INC) \
|
||||
$(GINC) \
|
||||
$(SYS_INC)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Define link statements for executables
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
$(EXE): $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(EXE)
|
||||
$(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \
|
||||
$(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \
|
||||
$(LINK_LIBS) $(GLIBS) -o $(EXE)
|
||||
|
||||
exe: $(SEXE)
|
||||
@echo \'$(SEXE)\' is up to date.
|
||||
|
||||
$(SEXE):$(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(SEXE)
|
||||
$(LINKEXE) $(OBJECTS) $(EXE_LIBS) \
|
||||
$(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Define link statements for libraries
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
objects: $(OBJECTS)
|
||||
|
||||
libso: $(LIB).$(SO)
|
||||
@echo \'$(LIB).$(SO)\' is up to date.
|
||||
|
||||
$(LIB).$(SO): $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(LIB)
|
||||
$(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \
|
||||
$(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO)
|
||||
|
||||
lib: $(LIB).a
|
||||
@echo \'$(LIB).a\' is up to date.
|
||||
|
||||
$(LIB).a: $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(LIB)
|
||||
@rm -f $(LIB).a
|
||||
$(AR) $(ARFLAGS) $(LIB).a $(OBJECTS)
|
||||
$(RANLIB) $(LIB).a
|
||||
|
||||
libo: $(LIB).o
|
||||
@echo \'$(LIB).o\' is up to date.
|
||||
|
||||
$(LIB).o: $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(LIB)
|
||||
@rm -f $(LIB).o
|
||||
$(LD) -r -o $(LIB).o $(OBJECTS)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Set rule to create the include directory for libraries
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
lnInclude: $(MAKE_DIR)/files $(MAKE_DIR)/options
|
||||
@rm -rf lnInclude ; wmakeLnInclude .
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Declare all qbject files depend on $(OBJECTS_DIR)/options
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
$(OBJECTS) : $(OBJECTS_DIR)/options
|
||||
$(foreach S,$(SOURCE),$(eval $(OBJECTS_DIR)/$(basename $S).o : $(OBJECTS_DIR)/$S.dep))
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Set depedency rule and include dependency lists
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
.PHONY: dep
|
||||
dep: $(DEPENDENCIES)
|
||||
|
||||
ifeq ($(findstring lnInclude,$(MAKECMDGOALS)),)
|
||||
-include $(DEPENDENCIES)
|
||||
endif
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user