PR# 19853 Makefile.SH incorrectly uses a '\' character in a -I directive
Problem Report Summary
Submitter: HowardThomsonSurrey
Category: EiffelStudio
Priority: Low
Date: 2022/03/30
Class: Bug
Severity: Non-critical
Number: 19853
Release: 21.11
Confidential: No
Status: Open
Responsible:
Environment: linux
Synopsis: Makefile.SH incorrectly uses a '\' character in a -I directive
Description
I have an Include Path in my Project Settings, for which the Location starts with an Environment variable, currently $GIT_EIFFEL In the generated Makefile.SH is a line: INCLUDE_PATH = -I"/home_fs/data/git/nng/include/nng" -I"/\$GIT_EIFFEL/eiffel-nng/wrapc" -I"/usr/lib/x86_64-linux-gnu/glib-2.0/include" in which the extraneous \ has been inserted before the $GIT_EIFFEL. There may be some rationale for escaping the $, but the net result, at the moment, is that compilation fails to find my .h file as a result. Previously, I had an explicit path, not using an environment variable, but that was not portable to my MacPro, and I thought that an environment variable would solve that portability issue ...
To Reproduce
Ensure that a test Project has a C external that uses an #include <xxx.h> for which an external #include path is needed in the project settings
Problem Report Interactions
On directly editing the .ecf file, it appears that <external_include location="...."/> does not provide for environment expansion. The attached eiffel_accounts-OK.ecf compiles OK, the eiffel_accounts-FAIL.ecf does not, with GIT_EIFFEL=/data/git/eiffel