diff --git a/wmake/rules/General/general b/wmake/rules/General/general index 20a452d3f2c02c407120115ad07821492b09e1b2..b020887f3cda6cc64426366be56d70797e008d38 100644 --- a/wmake/rules/General/general +++ b/wmake/rules/General/general @@ -17,7 +17,7 @@ GLIB_LIBS = COMPILER_TYPE = $(shell echo "$(WM_COMPILER)" | sed -e 's/[0-9].*//') DEFAULT_RULES = $(WM_DIR)/rules/$(WM_ARCH)$(COMPILER_TYPE) RULES = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER) -WMAKE_BIN = $(WM_DIR)/platforms/$(WM_ARCH)$(WM_COMPILER) +WMAKE_BIN = $(WM_PROJECT_DIR)/platforms/tools/$(WM_ARCH)$(WM_COMPILER) ifeq ($(WM_SCHEDULER),) AND = && diff --git a/wmake/src/Allmake b/wmake/src/Allmake index 8e164107e2b1c87e4db901a4e61cd68e55b215db..9e78c5eb5284847bdb6acf6f07914ec6c403f673 100755 --- a/wmake/src/Allmake +++ b/wmake/src/Allmake @@ -1,23 +1,38 @@ #!/bin/sh -cd "${0%/*}" || exit 1 # Run from this directory +cd "${0%/*}" || exit # This directory (/path/project/wmake/src) -if [ -z "$WM_DIR" ] # Require WM_DIR +if [ -z "$WM_DIR" ] # Require WM_DIR (/path/project/wmake) then - WM_DIR="$(\cd $(dirname $0)/.. && \pwd -L)" + WM_DIR="$(dirname "$(pwd -L)")" export WM_DIR fi +if [ -z "$WM_PROJECT_DIR" ] # Expect WM_PROJECT_DIR (/path/project) +then + echo "Warning (${0##*/}) : No WM_PROJECT_DIR set" 1>&2 + WM_PROJECT_DIR="${WM_DIR%/*}" + export WM_PROJECT_DIR +fi + +if [ -z "$WM_ARCH" ] || [ -z "$WM_COMPILER" ] +then + echo "Error (${0##*/}) : No WM_ARCH or WM_COMPILER set" + echo " Check your OpenFOAM environment and installation" + exit 1 +fi + case "$WM_COMPILER" in Mingw*) # Host wmake toolchain with system gcc (when cross-compiling) make \ WM_COMPILER=Gcc WM_COMPILER_TYPE=system \ - WMAKE_BIN="${WM_DIR}/platforms/${WM_ARCH}${WM_COMPILER}" + WMAKE_BIN="${WM_PROJECT_DIR}/platforms/tools/${WM_ARCH}${WM_COMPILER}" \ + "$@" ;; *) - # Compile wmake toolchain - make + # Regular wmake toolchain + make "$@" ;; esac diff --git a/wmake/src/Makefile b/wmake/src/Makefile index 1eea9ecac13af3186e3a6c651ff22773c9c1ca1f..d62cb9f804add6a64a1a2d4068ec91c01f5566fd 100644 --- a/wmake/src/Makefile +++ b/wmake/src/Makefile @@ -6,7 +6,7 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2017-2019 OpenCFD Ltd. +# Copyright (C) 2017-2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM. @@ -63,10 +63,13 @@ archTarget := $(shell basename $(WMAKE_BIN)) # Targets #------------------------------------------------------------------------------ -.PHONY: all clean message +.PHONY: all clean message old all: $(WMAKE_BIN)/wmkdepend$(EXT_EXE) message +# Flex-based processing +old: $(WMAKE_BIN)/wmkdep$(EXT_EXE) + message: ifneq ($(archHost),$(archTarget)) @echo "built wmake-bin ($(archTarget)) for $(archHost) host" @@ -76,14 +79,14 @@ endif clean: @echo "clean wmake-bin ($(archTarget))" - @rm -rf $(WMAKE_BIN) 2>/dev/null + @rm -rf $(WMAKE_BIN) @rmdir $(shell dirname $(WMAKE_BIN)) 2>/dev/null || true $(WMAKE_BIN)/wmkdep$(EXT_EXE): wmkdep.l @mkdir -p $(WMAKE_BIN) $(call QUIET_MESSAGE,flex,$(<F)) $E flex -o $@.c $(<F) && $(cc) $(cFLAGS) $@.c -o $@ - @rm -f $@.c 2>/dev/null + @rm -f $@.c $(WMAKE_BIN)/wmkdepend$(EXT_EXE): wmkdepend.cpp @mkdir -p $(WMAKE_BIN) @@ -94,6 +97,6 @@ $(WMAKE_BIN)/wmkdepend$(EXT_EXE): wmkdepend.cpp # @mkdir -p $(WMAKE_BIN) # $(call QUIET_MESSAGE,ragel,$(<F)) # $E ragel -G2 -o $@.cpp $(<F) && $(CC) $(c++FLAGS) $(c++LESSWARN) $@.cpp -o $@ -# @rm -f $@.cpp 2>/dev/null +# @rm -f $@.cpp #------------------------------------------------------------------------------