makefile - GNU make is adding white space after -I (shared directory) option -
i'm trying use armclang compiler through gnu makefile, there clash between both tools when using -i option.
for armclang compiler, -i means "adds specified directory list of places searched find included files.syntax -idir" without space.
for gnu makefile ‘-i dir’ has same meaning (but space).
in makefile have following:
$(aarch32_bootobj): %.o: %.s @echo " [asm ] $<" @armclang --target=armv8a-arm-none-eabi -icommon/shared -c $< -o $@ when running makefile, i'm getting following warning , error :
armclang: warning: argument unused during compilation: '-i common/shared' aarch32/shared/bootcode.s:32:10: error: not find include file 'boot_defs.hs' where boot_defs.hs exists under common/shared
when running same armclang command outside makefile, works. therefore i'm assuming makefile has formatted -icommon/share option , added automatic space after -i.
is there way run armclang command correctly? in other worlds, possible let makefile parse -icommon/shared without automatic formatting?
i have been trying lot of tricks workaround without success.
thanks lot in advance.
gnu make doesn't split -icommon/shared option, , if did armclang able parse that. if remove @ armclang call in makefile, you'll see make , -icommon/shared parameter remains intact.
your problem armclang; see this bug on tracker. doesn't pass -i flags integrated assembler. workaround, then, should pass -no-integrated-as armclang:
@armclang -no-integrated-as --target=armv8a-arm-none-eabi -icommon/shared -c $< -o $@ if doesn't work, replace .include directive #include , either rename asm files .s (upper-case s), indicates need c preprocessing, or pass armclang -x assembler-with-cpp flag. behavior of documented here.
Comments
Post a Comment