On Dec 20, 2007 11:23 PM, Prof Brian Ripley <[EMAIL PROTECTED]> wrote: > On Thu, 20 Dec 2007, Iago Mosqueira wrote: > > > Hi, > > > > I need to create a Makefile.win for a given package so as to fiddle > > slightly with the compilation process. My Makefile works fine in Linux > > That's rather dangerous: we have had lots of trouble with packages for > which the Makefile works on the maintainer's Linux, but not on other > people's systems (even Linux ones). > > Do you really, really need a Makefile.win?: I would be surprised if you > did. Only 9 CRAN packages have a Makefile.win, and two of those are > dummies and one other we have asked the maintainers to replace by > Makevars.win as it is not portable. > > > but I am having trouble creating Makefile.win for MinGW. I first > > looked at the commands that Rcmd SHLIB appeared to be running and > > copied those onto the Makefile. But one step seems to be missing, the > > creation of the _res.rc file needed by windres > > > > g++-sjlj -I$(RHOME)/include -I../inst/include/ -O2 -Wall -c pkg.cpp > > -o pkg.o > > windres --preprocessor="gcc-sjlj -E -xc -DRC_INVOKED" > > -I$(RHOME)/include -I../inst/include -i pkg_res.rc -o pkg_res.o > > g++-sjlj -shared -s -o pkg.dll pkg.def pkg.o FL pkg_res.o > > -L$(RHOME)/bin -lR > > > > This might be fairly obvious, but it is my first attempt at compiling > > with MinGW and my search has been fruitless. > > > > What is it that I need to add to replicate what Rcmd SHLIB does? > > Adding the resources is not essential: they add identification to the > DLL which can be very useful but are icing on the cake. So I would not > try to emulate that step. > > But the Makefile in use is src/gnuwin32/MakeDll and that contains > > $(DLLNAME)_res.rc: > @PERL5LIB=$(RHOME)/share/perl $(PERL) > $(RHOME)/src/gnuwin32/makeDllRes.pl $(DLLNAME) > $@ > > $(DLLNAME)_res.o: $(DLLNAME)_res.rc $(RHOME)/include/Rversion.h >
Many thanks for the information. I am trying to make a package C code compile against a DLL already present in another package, so I need to include its location in the call to gcc. I'll see what the most portable system could be and will test widely. Regards, Iago Mosqueira ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel