No rule to make target

make bufr_decode

shell command brings the error:

make: *** No rule to make target `…/config/fortran2c’. Stop.

Makefile.in :

#
#                                 Makefile for example programs
R64 = reals
ARCH = arch
CNAME = comp
#
PLACE = ../../
LIB = emos
#
include $(PLACE)config/config.$(ARCH)$(CNAME)$(R64)
#
include $(PLACE)options/options_$(ARCH)
#
TARGDIR  = ./

CC = gcc
#
#
TARGETS  = all clean
EXECS    = decode_bufr bufr_decode bufr2crex crex2bufr
#
#
all :$(EXECS)

decode_bufr: decode_bufr.o 
	$(FC) $(FFLAGS) -o $@ decode_bufr.o -L$(PLACE) -l$(LIB)$(R64)

bufr_decode: bufr_decode.o 
	$(FC) $(FFLAGS) -o $@ bufr_decode.o -L$(PLACE) -l$(LIB)$(R64) $(FORTRAN2C)

bufr2crex   : bufr2crex.o
	$(FC) $(FFLAGS) -o $@ bufr2crex.o -L$(PLACE) -l$(LIB)$(R64)

crex2bufr   : crex2bufr.o
	$(FC) $(FFLAGS) -o $@ crex2bufr.o -L$(PLACE) -l$(LIB)$(R64)

clean   :
	@for name in $(EXECS); do\
	(rm -f $$name *.o ); \
	done

Makefile:

#
#                                 Makefile for example programs
R64 = 
ARCH = linux
CNAME = 
#
PLACE = ../../
LIB = emos
#
include $(PLACE)config/config.$(ARCH)$(CNAME)$(R64)
#
include $(PLACE)options/options_$(ARCH)
#
TARGDIR  = ./
#
#
TARGETS  = all clean
EXECS    = decode_bufr bufr_decode bufr2crex crex2bufr
#
#
all :$(EXECS)

decode_bufr: decode_bufr.o 
	$(FC) $(FFLAGS) -o $@ decode_bufr.o -L$(PLACE) -l$(LIB)$(R64)

bufr_decode: bufr_decode.o 
	$(FC) $(FFLAGS) -o $@ bufr_decode.o -L$(PLACE) -l$(LIB)$(R64) $(FORTRAN2C)

bufr2crex   : bufr2crex.o
	$(FC) $(FFLAGS) -o $@ bufr2crex.o -L$(PLACE) -l$(LIB)$(R64)

crex2bufr   : crex2bufr.o
	$(FC) $(FFLAGS) -o $@ crex2bufr.o -L$(PLACE) -l$(LIB)$(R64)

clean   :
	@for name in $(EXECS); do\
	(rm -f $$name *.o ); \
	done

why am i getting the error?

thanx.

Hi asilter,

While I don’t know, my best guess is that in one of your included makefiles you have a rule for “bufr_decode.o” which has a dependency on"…/config/fortran2c.c". This file most likely does not exist or is not in the “…/config” directory.

  • Mat