Makefile issue

James Yates j.yates at quartzuk.com
Fri Oct 1 10:49:31 UTC 2004


> On Fri, 2004-10-01 at 11:38, James Yates wrote:
> > I am building an application, linking it with a build of 
> rtems. I list 
> > all of my source files in the makefile using:
> > 
> > C_PIECES= 	global uidata \
> >             	dataproc setup
> > 
> > C_FILES=$(C_PIECES:%=%.c)
> > 
> > 
> > My makefile is based upon one of the standard contribution 
> makefiles.
> > When I want to build I run make VARIANT=debug.
> > My code development is done under Windows XP, so I am using cygwin 
> > provide the environment for the builds to happen. I have a problem 
> > where some source files seem to get the Windows/Dos CR/LF line ends 
> > which I don't want to be present. I have added a rule to 
> the makefile 
> > so that I can run dos2unix on the source files so that when 
> I build, 
> > the line ends are adjusted to Unix style:
> > 
> > dos2unix:
> > 	 d2u -U $(C_FILES)
> > 
> > So when I call make VARIANT=debug dos2unix, this is run with the 
> > source files passed. The problem I have is that at build, 
> some source 
> > files are read-only. As soon as d2u encounters a file that is 
> > read-only it gives up and doesn't process the others in the 
> list. Can 
> > anyone tell me the format I need to get this rule in the 
> makefile to 
> > call d2u -U for every file rather than calling it once with 
> all the files passed at once?
> Well, ... there is no proper way to what you want with make, 
> or at least it would be of very doubtful wealth.
> 
> As far as permissions are concerned, the most simple work-around would
> be:
> chmod -R +w <sourcedir>
> 
> As far as dos textfiles are concerned:
> find <sourcedir> -type f -exec dos2unix {} \;
> 
> >  Or
> > can anyone point me in the direction of a different version of d2u 
> > that can cope with read-only files and ignore them?
> 
> IMO, you are playing with symptoms. The actual fix to issues 
> like these is to use editors which do not store unix-files in 
> DOS mode.
> 
> IIRC, you also should mount the partition containing the 
> sources binary, otherwise some Cygwin text-utils will convert 
> them to DOS-text-files.
> 
> Ralf
> 
> 
Cheers Ralf, I tried the find <sourcedir> -type f -exec dos2unix {} \;
by putting it as the build rule dos2unix:  and calling make
VARIANT=debug dos2unix.

Unfortunately, while I use a personel copy of a code editor that allows
unix style line ends, other people that work on my code are stuck with
MS DevStudio. There has been many occasions where I have picked the
latest copy of my software and some files are full of CR/LF line ends. I
was looking for a solution that would stop source files from ever having
this. This is the exact solution I need.

  Many thanks for your help.

	James




More information about the users mailing list