On Feb 9, 2012, at 9:54 AM, David L Lorenz wrote:

> 
> 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. 

I'm not talking about R Makeconf, but the one in your package (in src). What 
are your settings there? And what are the files?

Thanks,
Simon



> 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
> 
> 
> 
> 

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to