From: <ef...@gm...> - 2003-05-02 13:01:16
|
Hi all, I have to generate linker def files with make; and I want to use the same = Makefile on Linux and Win32; however I've problems with 'echo', on Linux I= have to use: @echo '# Do not edit this file - it is created by make!' >> $@ @echo '# All your changes will be lost!!' >> $@ @echo '#' >> $@ while on Win32 this doesnt work; the ' goes also into the def file which i= s wrong. So I want to suggest that we get an additional check into make fo= r Win32 which removes the surrounded ' characters before passing the strin= g to the OS; is this possible? Or maybe its better to include an own echo = function for Win32 which behaves the same as on Linux?? comments? Guenter. |
From: Greg C. <chi...@mi...> - 2003-05-02 16:16:48
|
[Please set word wrap to about 70 characters or less--thanks] Günter Knauf wrote: > > I have to generate linker def files with make; and I want to use the same Makefile on Linux and Win32; however I've problems with 'echo', on Linux I have to use: > @echo '# Do not edit this file - it is created by make!' >> $@ > @echo '# All your changes will be lost!!' >> $@ > @echo '#' >> $@ > while on Win32 this doesnt work; the ' goes also into the def file which is wrong. The problem isn't 'make'--it's the ms shell. And different ms shells behave differently. Use a *nix shell like MSYS's bash instead: Administrator@ILUVATAR /tmp $ cat GNUmakefile .PHONY: all all: @echo '# Do not edit this file - it is created by make!' >> $@ Administrator@ILUVATAR /tmp $ make Administrator@ILUVATAR /tmp $ cat all # Do not edit this file - it is created by make! > So I want to suggest that we get an additional check into make for Win32 which removes the surrounded ' characters before passing the string to the OS; is this possible? I fear it would break commands that should work, for instance, if this script that uses triple quoting were made into a makefile command: for f in $*; do new="`$(ECHO) $f | tr ' ' _`" [ "$f" = "$new" ] || $(MV) $f $new || exit 1 done > Or maybe its better to include an own echo function for Win32 which behaves the same as on Linux?? Build 'echo' from gnu shellutils, then write makefiles like this: ECHO = /wherever/shellutils/echo @$(ECHO) 'quoted string' |