Quite clearly, you did not read the page you downloaded it from, nor
the header-comment of the Makefile itself. And also quite clearly
the "gcc" language manual specifies a space between the "-o" and
the output-file name.
Nor does this explain why the very same compile command-line
options work perfectly-well with just a ".f" but do
NOT work for SOME files when invoked from a different directory
and an absolute path name for the source file.
-- Carlie
#.........................................................................
# VERSION "@(#)$Header$"
# EDSS/Models-3 I/O API Version 3.
#.........................................................................
# COPYRIGHT
# (C) 1992-2002 MCNC and Carlie J. Coats, Jr., and
# (C) 2003-2004 by Baron Advanced Meteorological Systems.
# Distributed under the GNU Lesser PUBLIC LICENSE version 2.1
# See file "LGPL.txt" for conditions of use.
#.........................................................................
# Environment Variables:
# BIN machine/OS/compiler/mode type. Shows up as suffix
# for "Makeinclude.${BIN}" to determine compilation
# flags, and in ${OBJDIR} and $(INSTALL) to determine
# binary directories
# INSTALL installation-directory root, used for "make install":
# "libioapi.a" and the tool executables will be installed
# in $(INSTDIR) = $(INSTALL)/${BIN}
#.........................................................................
# Directories:
# BASEDIR serves as a root directory for the I/O API library
# source, M3Tools source, HTML documentation, and
# (machine-specific) object/library/executable
# directories.
# SRCDIR is where the I/O API source "lives"
# OBJDIR is where the ".o" and "libioapi.a" files will be built.
# Note that its default depends upon the machine/compiler
# architecture type, specified by environment variable BIN
# INSTDIR = $(INSTALL)/${BIN} is where the "libioapi.a" files will be
# copied--must be a user-supplied environment variable
# FIXDIR is the directory in which to build extended-source-line
# fixed-source-form INCLUDE files (these files are so
# coded as to work correctly with both f90 free-form and
# standard (f77 and f90) fixed source forms.)
#.........................................................................
# Special Make-targets
# all: OBJDIR and libioapi.a
# clean: remove .o's and libioapi.a from OBJDIR
# install: copy "libioapi.a" (and "m3tools" executables) to
$(INSTDIR)
# gtar: GZipped tar-file of the source
# fixed_src: FIXDIR and extended-fixed-source INCLUDE-files
#.........................................................................
# Library Versions:
# Environment variable "BIN" specifies library version up to
# link- and compile-flag compatibility. Dependecies upon machine,
# OS, and compiler are found in file "Makeinclude.${BIN}.
# In particular, pay attention to the notes for various versions
# that may be built for Linux x86 with the Portland Group
# compilers: see comments in Makeinclude.Linux2_x86pg
#
# The following options are NOT library- nor object-compatible;
# versions with distinct combinations of these options should be
# built in *distinct* ${OBJDIR}s:
#
# Defining IOAPICPL turns on "coupling mode."
#
# Defining IOAPI_NO_STDOUT suppresses WRITEs to the screen in
# routines INIT3(), M3MSG2(), M3MESG(), and M3ABORT().
#
# Defining IO_360 creates the 360-day "global climate" version
# of the library.
#
# DEFINEFLAGS = $(ARCHFLAGS) $(PARFLAGS) \
# -DIOAPICPL=1 -DIOAPI_NO_STDOUT=1 -DIO_360=1
#
######################################################################
...
Steven G. Kargl wrote:
> In article ,
> "Carlie J. Coats" jyarborough.com> writes:
>>>> The Makefile system does *NOT* work with "gfortran" -- I've tried
>
> Actually the Makefile system does not work at all with either
> FreeBSD's make or GNU make.
>
>
> REMOVE:kargl[30] make
> "Makefile", line 234: warning: duplicate script for target "/SOMEWHERE/" ignored
> mkdir /env/proj/coats/ioapi_3/
> mkdir: /env/proj/coats: No such file or directory
> *** Error code 1
>
> Stop in /usr/home/kargl/tmp/iop.
> REMOVE:kargl[31] gmake
> Makefile:234: warning: overriding commands for target `/SOMEWHERE'
> Makefile:231: warning: ignoring old commands for target `/SOMEWHERE'
> mkdir /env/proj/coats/ioapi_3/
> mkdir: /env/proj/coats: No such file or directory
> gmake: *** [/env/proj/coats/ioapi_3] Error 1
>
>
> Of course, the complete lack of installation instruction in the
> tarball might be considered a bug.
>
>>>> several versions, the most recent being from the Mandriva RPM
>>>>
gcc-gfortran-4.2.3-6mnb1. For a seemingly random set of the source
>>>> files, the make-log seems to indicate success, but the object file
>>>> is nowhere to be found, e.g.
>>>>
>>>> ...
>>>> cd /home/coats/Work/Linux2_x86_64gfort; gfortran -c -DIOAPICPL=1
>>>> -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1
>>>> -DAVOID_FLUSH=1 -O3 -ffast-math -funroll-loops -m64 -Wall -Wsurprising
>>>> -openmp -I/home/coats/Work/ioapi /home/coats/Work/ioapi/bilin.f
>>>> Warning: Nonconforming tab character in column 1 of line 22
>
> If you actually use the correct name for the options you want, you
> might have better luck. Please read the GCC manual about the -o
> option and the -fopenmp option.
>
> REMOVE:kargl[59] rm bilin.o
> REMOVE:kargl[60] ~/work/bin/gfortran -c -DIOAPICPL=1 -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DAVOID_FLUSH=1 -O3 -ffast-math -funroll-loops -Wall -Wsurprising -fopenmp bilin.f
> Warning: Nonconforming tab character in column 2 of line 22
> REMOVE:kargl[61] ls bilin*
> bilin.f bilin.o
>