Author Topic: -M behaviour change in recent NASM versions ?  (Read 680 times)

Offline pahhur

  • New Member
  • Posts: 1
-M behaviour change in recent NASM versions ?
« on: June 29, 2022, 09:23:40 AM »

I have old projects (compiled with older NASM version) that I wanted to compile
on my up-to-date Arch installation with g++ 12.1 and nasm 2.15.05

Given an x.asm and a ../include/macros.h

Code: [Select]
|->source->x.asm
|->include->macros.h

the older nasm versions when called like

Code: [Select]
nasm -M -felf64 -D__BITS__=64 -Ox -Dlinux -I../include x.asm
inside the source directory, generated correct Makefile dependencies, i.e. something like

Code: [Select]
x.o : x.asm ../include/macros.h
The current version generates dependencies like

Code: [Select]
x.o : x.asm macros.h
which of course leads to the problem that a make in the source direcory claims about missing dependencies:

Code: [Select]
make[1]: *** No rule to make target 'macros.h', needed by 'x.o'.  Stop.

Can anyone enlighten me, why this is the case, and what new command line options might be missing now?