# --------------------------------------------------------------------
#
# MINC fortran Makefile
#
ROOT = ..
include $(ROOT)/Make_machine_specific
include $(ROOT)/Make_configuration
# Executable names
PROGS = minc_ftest
JACKETS_SRC = minc_jackets.src
CDEFINES = # cpp defines
LDOPT = $(MINC_LDOPT:-lc_s=)
# --------------------------------------------------------------------
CFLAGS = $(CDEFINES) $(INCLUDES) $(OPT)# CFLAGS and LINTFLAGS should
LINTFLAGS = $(CDEFINES) $(INCLUDES)# be same, except for -g/-O
FFLAGS = $(INCLUDES) -O
JACKETS_C = $(JACKETS_SRC:.src=.c)
JACKETS_OBJ = $(JACKETS_SRC:.src=.o)
JACKETS_LN = $(JACKETS_SRC:.src=.ln)
PROG_OBJ = $(PROGS:=.o)# list of objects
# --------------------------------------------------------------------
default: build
all: build lint library test
# Make sure that we build the jackets first
build : $(JACKETS_OBJ) $(PROGS) library
#Dependency on Makefile
$(JACKETS_OBJ) $(JACKETS_LN) $(PROG_OBJ) : Makefile
.c.ln:# defines the rule for creating .ln
$(LINT) $(LINTFLAGS) -c $< -o $@
.c.o:# defines the rule for creating .o
$(CC) $(CFLAGS) -c $< -o $@
.f.o:# defines the rule for creating .o
$(FC) $(FFLAGS) -c $< -o $@
# How to make executables
$(PROGS) : $(TARGET_IN_DEPENDENCY).o $(CC_MINC_LIB)
$(FC) -o $@ $@.o $(JACKETS_OBJ) $(FFLAGS) $(LDOPT)
# How to run test
test: $(PROGS)
minc_ftest
# We no longer derive the C code from the .src file since the
# m4 interface is not used by NetCDF 3.x and beyond
#$(JACKETS_C): $(JACKETS_SRC)
# $(NETCDF_FORTRAN_DIR)/fortc -L $(NETCDF_FORTRAN_DIR) -O $(OS_TYPE) \
# $(JACKETS_SRC) > $@.new && mv $@.new $@
# how to lint the executable source
lint: $(JACKETS_LN)
# name of library
library: $(CC_MINC_LIB)
# how to update library
$(CC_MINC_LIB): $(JACKETS_OBJ)
$(AR) $(AR_FLAGS) $(CC_MINC_LIB) $(JACKETS_OBJ)
$(RANLIB) $(CC_MINC_LIB)
# Remove most derived files in this directory - leave jacket obj for library
mostlyclean:
$(RM) $(RM_FLAGS) $(JACKETS_LN) \
$(PROGS) $(PROG_OBJ)
# Remove all derived files in this directory
clean:
$(RM) $(RM_FLAGS) $(JACKETS_OBJ) $(JACKETS_LN) \
$(PROGS) $(PROG_OBJ)
install:
$(CP) $(CP_FLAGS) minc.inc $(INSTALL_INCDIR)
$(CHMOD) $(CHMOD_FLAGS) $(INSTALL_INCDIR)/minc.inc
syntax highlighted by Code2HTML, v. 0.9.1