SHELL=/bin/sh #============================================================================== # # GSI Makefile # # # 0) Export this makefile name to a variable 'MAKE_FILE' as # export MAKE_FILE = makefile # If this file is named neither 'makefile' nor 'Makefile' but # 'makeairs' for instance, then call this makefile by typing # 'make -f makeairs' instead of 'make'. # # 0a) Modify the include link to either use compile.config.ibm # or compile.config.sgi for compilation on the ibm sp or sgi # # 1) To make a GSI executable file, type # > make or > make all # # 2) To make a GSI executable file with debug options, type # > make debug # # 3) To copy the GSI load module to installing directory, type # > make install # . Specify the directory to a variable 'INSTALL_DIR' below. # # 4) To crean up files created by make, type # > make clean # # 5) To create a library, libgsi.a, in the lib directory, type # > make library # # # Created by Y.Tahara in May,2002 # Edited by D.Kleist Oct. 2003 #============================================================================== #----------------------------------------------------------------------------- # -- Parent make (calls child make) -- #----------------------------------------------------------------------------- # ----------------------------------------------------------- # Default configuration, possibily redefined in Makefile.conf # ----------------------------------------------------------- ARCH = `uname -s` SED = sed DASPERL = /usr/bin/perl COREROOT = ../../.. COREBIN = $(COREROOT)/bin CORELIB = $(COREROOT)/lib COREINC = $(COREROOT)/include COREETC = $(COREROOT)/etc # ------------- # General Rules # ------------- CP = /bin/cp -p RM = /bin/rm -f MKDIR = /bin/mkdir -p AR = ar cq PROTEX = protex -f # -l ProTexMake = protex -S # -l LATEX = pdflatex DVIPS = dvips # Preprocessing # ------------- _DDEBUG = _D = $(_DDEBUG) # --------- # Libraries # --------- LIBmpeu = -L$(CORELIB) -lmpeu LIBbfr = -L$(CORELIB) -lbfr LIBw3 = -L$(CORELIB) -lw3 LIBsp = -L$(CORELIB) -lsp LIBbacio = -L$(CORELIB) -lbacio LIBsfcio = -L$(CORELIB) -lsfcio LIBsigio = -L$(CORELIB) -lsigio LIBcrtm = -L$(CORELIB) -lcrtm_2.0.5 LIBtransf = -L$(CORELIB) -ltransf LIBhermes = -L$(CORELIB) -lhermes LIBgfio = -L$(CORELIB) -lgfio # -------------------------- # Default Baselibs Libraries # -------------------------- INChdf = -I$(BASEDIR)/$(ARCH)/include/hdf LIBhdf = -L$(BASEDIR)/$(ARCH)/lib -lmfhdf -ldf -lhdfjpeg -lhdfz -lsz LIBnetcdf = -L$(BASEDIR)/$(ARCH)/lib -lnetcdf LIBwrf = -L$(BASEDIR)/$(ARCH)/lib -lwrflib LIBwrfio_int = -L$(BASEDIR)/$(ARCH)/lib -lwrfio_int LIBwrfio_netcdf = -L$(BASEDIR)/$(ARCH)/lib -lwrfio_nf # ------------------------ # Default System Libraries # ------------------------ LIBmpi = -lmpi LIBsys = #------------ # Include machine dependent compile & load options #------------ MAKE_CONF = Makefile.conf include $(MAKE_CONF) # ------------- # This makefile # ------------- MAKE_FILE = Makefile # ----------- # Load module # ----------- EXE_FILE = global_angupdate # -------------------- # Installing directory # -------------------- INSTALL_DIR = ../bin # -------- # Log file # -------- LOG_FILE = log.make.$(EXE_FILE) # --------------- # Call child make # --------------- "" : @$(MAKE) -f $(MAKE_FILE) all # ------------ # Make install # ------------ install: @echo @echo '==== INSTALL =================================================' @if [ -e $(INSTALL_DIR) ]; then \ if [ ! -d $(INSTALL_DIR) ]; then \ echo '### Fail to create installing directory ###' ;\ echo '### Stop the installation ###' ;\ exit ;\ fi ;\ else \ echo " mkdir -p $(INSTALL_DIR)" ;\ mkdir -p $(INSTALL_DIR) ;\ fi cp $(EXE_FILE) $(INSTALL_DIR) @cd $(INSTALL_DIR) ; ls -l `pwd`/$(EXE_FILE) # ---------- # Make clean # ---------- clean: @echo @echo '==== CLEAN ===================================================' - $(RM) $(EXE_FILE) *.o *.mod *.MOD *.lst *.a *.x - $(RM) loadmap.txt log.make.$(EXE_FILE) - $(MAKE) -f ${MAKE_FILE} doclean #----------------------------------------------------------------------------- # -- Child make -- #----------------------------------------------------------------------------- # ------------ # Source files # ------------ SRCSF90C = main.F90 kinds.F90 read_diag.f90 determine_time_levels.f90 SRCSF77 = SRCSC = SRCS = $(SRCSF90C) $(SRCSF77) $(SRCSC) DOCSRCS = *.f90 *.F90 # ------------ # Object files # ------------ SRCSF90 = ${SRCSF90C:.F90=.f90} OBJS = ${SRCSF90:.f90=.o} ${SRCSF77:.f=.o} ${SRCSC:.c=.o} # ----------------------- # Default compiling rules # ----------------------- .SUFFIXES : .SUFFIXES : .F90 .f90 .f .c .o .F90.o : @echo @echo '---> Compiling $<' $(CF) $(FFLAGS) $(_D) -c $< .f90.o : @echo @echo '---> Compiling $<' $(CF) $(FFLAGS) -c $< .f.o : @echo @echo '---> Compiling $<' $(CF) $(FFLAGS_f) -c $< .c.o : @echo @echo '---> Compiling $<' $(CC) $(CFLAGS) -c $< # ------------ # Dependencies # ------------ MAKE_DEPEND = Makefile.dependency include $(MAKE_DEPEND) # ---- $(EXE_FILE) : $(OBJS) $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) # ------------------------ # Call compiler and linker # ------------------------ all : @$(MAKE) -f $(MAKE_FILE) "COMP_MODE=$@" check_mode @echo @echo '==== COMPILE =================================================' @$(MAKE) -f $(MAKE_FILE) \ "FFLAGS=$(FFLAGS_N)" \ "CFLAGS=$(CFLAGS_N)" \ $(OBJS) @echo @echo '==== LINK ====================================================' @$(MAKE) -f $(MAKE_FILE) \ "LIBS=$(LIBS_N)" "LDFLAGS=$(LDFLAGS_N)" \ $(EXE_FILE) library : @$(MAKE) -f $(MAKE_FILE) "COMP_MODE=$@" check_mode @echo @echo '==== COMPILE =================================================' @$(MAKE) -f $(MAKE_FILE) \ "FFLAGS=$(FFLAGS_N)" \ "CFLAGS=$(CFLAGS_N)" \ $(OBJS) @echo @echo '==== CREATING LIBRARY ========================================' $(MAKE) lib mv $(LIB) ../lib debug : @$(MAKE) -f $(MAKE_FILE) "COMP_MODE=$@" check_mode @echo @echo '==== COMPILE =================================================' @$(MAKE) -f $(MAKE_FILE) \ "FFLAGS=$(FFLAGS_D)" \ "CFLAGS=$(CFLAGS_D)" \ $(OBJS) @echo @echo '==== LINK ====================================================' @$(MAKE) -f $(MAKE_FILE) \ "LIBS=$(LIBS_D)" "LDFLAGS=$(LDFLAGS_D)" \ $(EXE_FILE) check_mode : @if [ -e $(LOG_FILE) ]; then \ if [ '$(COMP_MODE)' != `head -n 1 $(LOG_FILE)` ]; then \ echo ;\ echo "### COMPILE MODE WAS CHANGED ###" ;\ $(MAKE) -f $(MAKE_FILE) clean ;\ fi ;\ else \ echo ;\ echo "### NO LOG FILE ###" ;\ $(MAKE) -f $(MAKE_FILE) clean ;\ fi @echo $(COMP_MODE) > $(LOG_FILE) doclean: - $(RM) *.tex *.dvi *.aux *.toc *.log *.ps *.pdf