#----------------------------*- makefile-gmake -*------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation # Copyright (C) 2018-2022 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. # # 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 sinclude $(OPTIONS) #------------------------------------------------------------------------------ # Directory containing the wmake scripts #------------------------------------------------------------------------------ WM_SCRIPTS = $(WM_DIR)/scripts #------------------------------------------------------------------------------ # Declare dependency of all make system files on FILES # Causes all derived files to be remade if any are changed or missing #------------------------------------------------------------------------------ # Process 'Make/{files,options}' via cpp, but undefine linux,unix,... to avoid # inadvertent replacements (Eg, leave /usr/lib/x86_64-linux-gnu/... intact) define PREFILTER_MAKE_OPTIONS @$(CPP) -Ulinux -Uunix $(GFLAGS) $1 | sed -e 's@ *@ @g' > $2 endef all : $(OPTIONS) $(SFILES) $(VARS) # Make/options # ~~~~~~~~~~~~ $(OPTIONS) : $(MAKE_DIR)/options $(call PREFILTER_MAKE_OPTIONS,$<,${OPTIONS}) ifneq (,$(findstring windows,$(WM_OSTYPE))) @$(WM_SCRIPTS)/wmakeWindowsDlOpenLibs $(OPTIONS) >> $(OPTIONS) endif # Ensure final line is followed by newline. Extra comment for safety. @echo >> $(OPTIONS) @echo "# options" >> $(OPTIONS) # Make/files # ~~~~~~~~~~ $(SFILES): $(MAKE_DIR)/files $(call PREFILTER_MAKE_OPTIONS,$<,${FILES}) # Extracted macro definitions. @sed -n -e '/=/p' $(FILES) > $(VARS) @echo "SOURCE = \\" > $(SFILES) # Remove macros, comments, blank lines, trailing space. Add backslash continuation @sed -e '/=/d; /^#/d; /^[ \t]*$$/d' -e 's@[ \t]*$$@ \\@' $(FILES) >> $(SFILES) @rm -f $(FILES) # Ensure final line is followed by newline. Extra comment for safety. @echo >> $(SFILES) @echo "# sources" >> $(SFILES) $(VARS): $(SFILES) #------------------------------------------------------------------------------