Kasper, On May 11, 2006, at 12:37 AM, Kasper Daniel Hansen wrote:
> Thank you Simon, a little comment below > > On May 9, 2006, at 2:49 PM, Simon Urbanek wrote: > >> On May 9, 2006, at 1:11 PM, Kasper Daniel Hansen wrote: >> >>> It is indeed the case that after updating to GCC 4 the package >>> gets broken using -O2. I agree this needs to be fixed, but the >>> error >>> [...] >>> unfortunately), but reading your comment about CPPFLAGS and >>> CXXFLAGS makes me think I can indeed override it using the >>> package Makevars file. The flags I was passing to the compiler >>> were library locations anyway which was for the preprocessor. >>> >> >> AFAIR you cannot override CPPFLAGS/CXXFLAGS in Makevars, because >> it gets included first. You can, however, use something like this: >> >> all: $(SHLIB) >> >> MYCFLAGS=-O0 >> >> %.o: %.c >> $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(MYCFLAGS) -c $< -o $@ >> >> for C, or for C++ accordingly: >> >> %.o: %.cc >> $(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) $(MYCXXFLAGS) -c $< >> -o $@ > > Actually you do not need the all: line, and since I use .cpp as C++ > extension, all I needed was > > %.o: %.cpp > <TAB>$(CXX) $(ALL_CPPFLAGS) -O0 -c $< -o $@ > If it worked for you, fine ... but it doesn't for me (using plain SHLIB), because you're replacing the first target, the .so doesn't get built. > Note that I needed to delete the $(ALL_CXXFLAGS) which basically > reads R's flags. > Well actually the point was that you *don't* need to do that and you should not. Most compilers (including gcc) ignore preceding conflicting flags, so -O3 -O0 will give you simply -O0 and that's what you wanted. > Now, is there any way to (in the Makevars file) operate on $ > (ALL_CXXFLAGS), since all I want is to delete any -O* flag? Or is > defining rules and variables all I can do? > Yes. Again, I'm talking GNU make now, so I suspect this is not portable (so kids, don't do this at home), but you should be able to use MYCXXFLAGS=$(filter-out -O3,$(ALL_CXXFLAGS)) However as stated above I don't think you want to do that - just append -O0 and you're safe. Cheers, Simon ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel