I should also have explained that I was using the default Makeconf file in R-2.14.1\etc\i386. it is reproduced below. I've tried it on other packages and it inserts a z in front of the object files. Dave
#-*- Makefile -*- # $(R_HOME}/etc$(R_ARCH)/Makeconf # Hand-edited version for gnuwin32. ifdef DEBUG DLLFLAGS= DEBUGFLAG=-gdwarf-2 else DLLFLAGS=-s DEBUGFLAG= endif DLLFLAGS+= -static-libgcc LINKFLAGS+= -static-libgcc ## Things which are substituted by fixed/Makefile (and also -O3 -> -O2) WIN = 32 BINPREF = # SYMPAT = 's/^.* [BCDRT] _/ /p' for 32-bit # SYMPAT = 's/^.* [BCDRT] / /p' for 64-bit SYMPAT = 's/^.* [BCDRT] _/ /p' IMPDIR = bin/i386 # flags for multilib builds, for compilers, dlltool and windres M_ARCH = DT_ARCH = RC_ARCH = # Used by packages tcltk and tkrplot TCL_HOME = $(R_HOME)/Tcl LOCAL_SOFT = d:/RCompile/CRANpkg/extralibs/local ifneq ($(strip $(LOCAL_SOFT)),) LOCAL_CPPFLAGS = -I"$(LOCAL_SOFT)/include" LOCAL_LIBS = -L"$(LOCAL_SOFT)/lib$(R_ARCH)" -L"$(LOCAL_SOFT)/lib" endif DLLTOOL = $(BINPREF)dlltool --as $(BINPREF)as $(DT_ARCH) DLLTOOLFLAGS = -k NM = $(BINPREF)nm RESCOMP = $(BINPREF)windres $(RC_ARCH) ## MAIN_LD needs to be set by the package LINKER = $(MAIN_LD) ## as a default DLL = $(CC) ## Things defined in Renviron on Unix SED = sed TAR = tar ## Things defined in MkRules CAT = cat CP = cp MKDIR = mkdir RM = rm -f SORT = sort ## For use in packages GRAPHAPP_LIB = -lRgraphapp TCL_VERSION = 85 ZLIB_LIBS = -lRzlib AR = $(BINPREF)ar ## Used by packages 'maps' and 'mapdata' AWK = gawk BLAS_LIBS = -L"$(R_HOME)/$(IMPDIR)" -lRblas C_VISIBILITY = CC = $(BINPREF)gcc $(M_ARCH) CFLAGS = -O3 -Wall $(DEBUGFLAG) -std=gnu99 -mtune=core2 CPICFLAGS = CPPFLAGS = CXX = $(BINPREF)g++ $(M_ARCH) CXXCPP = $(CXX) -E CXXFLAGS = -O2 -Wall $(DEBUGFLAG) -mtune=core2 CXXPICFLAGS = DYLIB_EXT = .dll DYLIB_LD = $(DLL) DYLIB_LDFLAGS = -shared DYLIB_LINK = $(DYLIB_LD) $(DYLIB_LDFLAGS) $(LDFLAGS) ECHO = echo ECHO_C = ECHO_N = -n ECHO_T = FC = $(BINPREF)gfortran $(M_ARCH) FCFLAGS = -O3 $(DEBUGFLAG) -mtune=core2 # additional libs needed when linking with $(FC), e.g. on Solaris FCLIBS = F77 = $(BINPREF)gfortran $(M_ARCH) F77_VISIBILITY = FFLAGS = -O3 $(DEBUGFLAG) -mtune=core2 FLIBS = -lgfortran FCPICFLAGS = FPICFLAGS = FOUNDATION_CPPFLAGS = FOUNDATION_LIBS = JAR = JAVA = JAVAC = JAVAH = # JAVA_HOME = # JAVA_LD_LIBRARY_PATH = JAVA_LIBS = -L"$(JAVA_HOME)/bin/client" -ljvm -ljvm-w32 JAVA_CPPFLAGS = -I"$(JAVA_HOME)/../include" -I"$(JAVA_HOME)/../include/win32" LAPACK_LIBS = -L"$(R_HOME)/$(IMPDIR)" -lRlapack ## we only need this is if it is external, as otherwise link to R LIBINTL= LIBM = -lm LIBR = -L"$(R_HOME)/$(IMPDIR)" -lR LIBS = -lm ## needed by R CMD config LIBnn = lib LIBTOOL = LDFLAGS = ## needed to build applications linking to static libR # MAIN_LD = # MAIN_LDFLAGS = # MAIN_LINK = $(MAIN_LD) $(MAIN_LDFLAGS) $(LDFLAGS) # don't have this: would 'mkdir -p' do? # MKINSTALLDIRS = $(R_HOME)/bin/mkinstalldirs OBJC = $(CC) OBJCFLAGS = -O2 OBJC_LIBS = -lobjc OBJCXX = R_ARCH = /i386 RANLIB = $(BINPREF)ranlib SAFE_FFLAGS = -O3 -ffloat-store SED = sed ## it seems some makes (but not ours) get upset if SHELL is set. # SHELL = /bin/sh SHLIB_CFLAGS = SHLIB_CXXFLAGS = SHLIB_CXXLD = $(CXX) ## ideally -shared -static-libstdc++, but not for gcc 4.2.1 SHLIB_CXXLDFLAGS = -shared SHLIB_EXT = .dll SHLIB_FCLD = $(FC) ## ideally -shared -static-libgfortran, but not for gcc 4.2.1 SHLIB_FCLDFLAGS = -shared SHLIB_FFLAGS = SHLIB_LD = $(CC) SHLIB_LDFLAGS = -shared SHLIB_LIBADD = SHLIB_LINK = $(SHLIB_LD) -Wl,--export-all-symbols $(SHLIB_LDFLAGS) $(LDFLAGS) # not implemented in current toolchain SHLIB_OPENMP_CFLAGS = SHLIB_OPENMP_CXXFLAGS = SHLIB_OPENMP_FCFLAGS = SHLIB_OPENMP_FFLAGS = STRIP_LIBS = $(BINPREF)strip --strip-unneeded STRIP_STATIC_LIBS = $(BINPREF)strip --strip-debug TCLTK_CPPFLAGS = -I "$(TCL_HOME)/include" -DWin32 TCLTK_LIBS = -L"$(TCL_HOME)/bin" -ltcl$(TCL_VERSION) -ltk$(TCL_VERSION) STATIC_LIBR = R_XTRA_CFLAGS = R_XTRA_CPPFLAGS = -I"$(R_HOME)/include" R_XTRA_CXXFLAGS = R_XTRA_FFLAGS = ALL_CFLAGS = $(R_XTRA_CFLAGS) $(PKG_CFLAGS) $(CPICFLAGS) $(SHLIB_CFLAGS) $(CFLAGS) ALL_CPPFLAGS = $(R_XTRA_CPPFLAGS) $(PKG_CPPFLAGS) $(CPPFLAGS) $($*-CPPFLAGS) $(CLINK_CPPFLAGS) $(LOCAL_CPPFLAGS) ALL_CXXFLAGS = $(R_XTRA_CXXFLAGS) $(PKG_CXXFLAGS) $(CXXPICFLAGS) $(SHLIB_CXXFLAGS) $(CXXFLAGS) ALL_OBJCFLAGS = $(PKG_OBJCFLAGS) $(CPICFLAGS) $(SHLIB_CFLAGS) $(OBJCFLAGS) ALL_OBJCXXFLAGS = $(PKG_OBJCXXFLAGS) $(CXXPICFLAGS) $(SHLIB_CXXFLAGS) $(OBJCXXFLAGS) ALL_FFLAGS = $(R_XTRA_FFLAGS) $(PKG_FFLAGS) $(FPICFLAGS) $(SHLIB_FFLAGS) $(FFLAGS) ALL_LIBS = $(LOCAL_LIBS) $(PKG_LIBS) $(SHLIB_LIBADD) $(LIBR) $(LIBINTL) .SUFFIXES: .SUFFIXES: .c .cc .cpp .d .f .f90 .f95 .m .mm .M .o .a .def .dll .exe .rc .c.o: $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c $< -o $@ .c.d: @echo "making $@ from $<" @$(CC) -std=gnu99 -MM $(ALL_CPPFLAGS) $< > $@ .cc.o: $(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@ .cpp.o: $(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@ .cc.d: @echo "making $@ from $<" @$(CXX) -M $(ALL_CPPFLAGS) $< > $@ .cpp.d: @echo "making $@ from $<" @$(CXX) -M $(ALL_CPPFLAGS) $< > $@ .m.o: $(OBJC) $(ALL_CPPFLAGS) $(ALL_OBJCFLAGS) -c $< -o $@ .m.d: @echo "making $@ from $<" @$(OBJC) -MM $(ALL_CPPFLAGS) $< > $@ .mm.o: $(OBJCXX) $(ALL_CPPFLAGS) $(ALL_OBJCXXFLAGS) -c $< -o $@ .M.o: $(OBJCXX) $(ALL_CPPFLAGS) $(ALL_OBJCXXFLAGS) -c $< -o $@ .f.o: $(F77) $(ALL_FFLAGS) -c $< -o $@ .f95.o: $(FC) $(PKG_FCFLAGS) $(FCPICFLAGS) $(FCFLAGS) -c $< -o $@ .f90.o: $(FC) $(PKG_FCFLAGS) $(FCPICFLAGS) $(FCFLAGS) -c $< -o $@ %.exe: $(LINKER) $(LINKFLAGS) $($*-LINKFLAGS) -o $@ $^ $($*-LIBS) $(LOCAL_LIBS) $(LIBS) %.dll: @echo EXPORTS > $*.def @$(NM) $^ | $(SED) -n $(SYMPAT) >> $*.def $(SHLIB_LD) -shared $(DLLFLAGS) -o $@ $*.def $^ $(ALL_LIBS) @$(RM) $*.def lib%.dll.a: %.def $(DLLTOOL) $(DLLTOOLFLAGS) $($*-DLLTOOLFLAGS) --dllname $*.dll --input-def $*.def --output-lib $@ %.a: @$(RM) $@ $(AR) crs $@ $^ %.o: %.rc $(RESCOMP) $(RESFLAGS) -i $< -o $@ From: Simon Urbanek <simon.urba...@r-project.org> To: David L Lorenz <lor...@usgs.gov> Cc: r-devel@r-project.org Date: 02/08/2012 07:13 PM Subject: Re: [Rd] FORTRAN compilation error On Feb 8, 2012, at 3:16 PM, David L Lorenz wrote: > I get an error when trying to compile a FORTRAN source file for use in a > package that I am developing. The error, reported in 00install.out is > below. > > * installing *source* package 'USGSstats' ... > ** libs > > *** arch - i386 > C:/PROGRA~1/R/R-214~1.1/etc/i386/Makeconf:194: warning: overriding recipe > for target `.m.o' > C:/PROGRA~1/R/R-214~1.1/etc/i386/Makeconf:187: warning: ignoring old > recipe for target `.m.o' > gfortran -O3 -mtune=core2 -c seakenF.f -o seakenF.o > "zseakenF.o" was unexpected at this time. > make: *** [USGSstats.dll] Error 255 > ERROR: compilation failed for package 'USGSstats' > > I am running R 2.14.1 on a Windows 7 pc. The gnu compilers are all > installed and work just fine. In fact, the .o file is created and I can > manually create the .dll file. > The error seems to be in the generation of the object name zseakenF.o. I > do not see where that might have been generated in the Makeconf file. > The problem is caused by your Makeconf which you didn't share, so there is not much we can help you with ... You should remove the offending Makeconf to start with ... Cheers, Simon [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel