0

I was trying to install libcurl libraries on my remote desktop following the steps mentioned in this post : How do you properly install libcurl for use in visual studio 2017?

But when I was running this command line nmake /f Makefile.vc mode=static , I was getting this error : make-3.80:*** No rule to make target '/NOLOGO'. Stop

This error was coming from this line in Makefile.vc :

@$(MAKE) /NOLOGO /F MakefileBuild.vc

After googling about the issue and going through the Visual studio documentation , I found that /NOLOGO is just an option , but somehow was being treated as a file (as can be seen from the above error).

So I tried to follow the same steps on my local machine , and I was able to install libcurl libraries. Then I tried to see what $(MAKE) evaluates to on my local machine and on my remote desktop and I found the following:

On my local machine , $MAKE is "C:\ProgramFiles(x86)\MicrosoftVisualStudio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe"

On my remote desktop , $MAKE is make-3.80

Can anyone suggest as to what could be the issue here ? (In both cases I am running the same command using nmake )

sai56
  • 5
  • 2
  • Sounds vaguely like the remote machine is not even a Windows box. You can override the variable on the command line, like `make MAKE=c:\horrible\windows\cruft` ` – tripleee Jun 12 '20 at 04:47
  • @tripleee It is infact a Windows system . Regarding the command line you provided, I tried executing it, but it gives an error stating make: *** empty variable name. Stop. – sai56 Jun 12 '20 at 05:27
  • But don't you think, as nmake is being called $(MAKE) should have been referring to nmake.exe and not make-3.80 , and there shouldn't be any need to override the variable explicitly, or is there some setting that I am missing ? – sai56 Jun 12 '20 at 05:47

2 Answers2

1

According to the documentation, environment variables have precedence over built-in ones:

If a macro has multiple definitions, NMAKE uses the highest-precedence definition. The following list shows the order of precedence, from highest to lowest:

  • A macro defined on the command line
  • A macro defined in a makefile or include file
  • An inherited environment-variable macro
  • A macro defined in the Tools.ini file
  • A predefined macro, such as CC and AS

When MAKE environment variable is defined, it will take over built-in value.

raspy
  • 3,995
  • 1
  • 14
  • 18
0

Actually the remote desktop had a MAKE environment variable set to make-3.80 , and this was actually causing make to be executed instead of nmake. Deleting the environment variable I was successfully able to build the libraries.

sai56
  • 5
  • 2