Compile error from gmake: target pattern contains no `%'
When installing 2.0.0 on HECToR (www.hector.ac.uk), which requires the gnu compilers, I find the following in the compiler's std out:
wmakeLnInclude: linking include files to OpenFOAM/lnInclude
+ wmakeLnInclude OSspecific/POSIX
wmakeLnInclude: linking include files to OSspecific/POSIX/lnInclude
+ wmake libso dummy
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file UPstream.C
Making dependency list for source file UIPread.C
Making dependency list for source file UOPwrite.C
UPstream.dep:42: *** target pattern contains no `%'. Stop.
and line 42 of UPstream.dep reads
UPstream.dep: $(WM_PROJECT_DIR)/src/Open$(OBJECTS_DIR)/UPstream.o: $(EXE_DEP)
A 'google' suggests to me that gmake v3.81 no longer supports Window's PATHs and that any path+filename cannot have a ':' in the string; however, WM_PROJECT_DIR does not contain any offending characters, whilst OBJECTS_DIR and EXE_DEP appear to be blank.
I couldn't see this mentioned in the v2.0.1 release.
Apart from switching to gmake v3.80, any clues?
Anyway, the following details come to mind:
The issue is now resolved: the problem was that I was making OF on the front-end of an HPC system to be run on the back-end of the same system and, as such, had set the target arch to be the back-end.
Now, tthe two ends do not share the same arch and, as such, the 3 wmake tools where made with the back-end as the target archetecture; however, they must be run on the front-end as they are part of the compilation procedure.
The solution is to either make them separately or 'hack' the file wmake/src/Makefile by specifying the compilers to be employed.
For our case, after the lines
include $(RULES)/generalinclude $(RULES)/$(WM_LINK_LANGUAGE)
we added the following two new lines
cc = gccCC = g++This forces the associated wmake binaries, required during installation, to be compatible with the front end nodes, whilst keep all other binaries compatible with the target architecture (either the front- or back-end).
Many thanks for your rapid response.
|All times are GMT -4. The time now is 00:40.|