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

Reply via email to