# # Makefile for ESMA build configuration system # # Generic Base/Arch + User Defined Fragments # ------------------------------------------ ESMA_BASE = ESMA_base.mk $(wildcard $(HOME)/.esma_base.mk) ESMA_ARCH = ESMA_arch.mk $(wildcard $(HOME)/.esma_arch.mk) ESMA_POST = ESMA_post.mk $(wildcard $(HOME)/.esma_post.mk) # Compilation rules, flags, etc # ----------------------------- include $(ESMA_BASE) # Generic stuff include $(ESMA_ARCH) # System dependencies # Make sure ESMADIR/BASEDIR are defined # ------------------------------------- ifndef ESMADIR ESMADIR := $(PWD)/../.. endif BINS = # f90aib.x f90split.x SCRIPTS = mklpath.pl endiantest.pl # User can provide their own assert script # ---------------------------------------- ASSERT_MK = ifdef ASSERT RC = $(shell $(ASSERT)) ifeq ($(RC), 0) $(warning Enabling build environment check) ASSERT_MK = Assert.mk else ifeq ($(RC), -1) $(warning - Node not know, disabling build environment check) else $(error Please correct your build environment and try again) endif endif endif # --------------------- # Standard ESMA Targets # --------------------- esma_help help: @echo "Standard ESMA targets:" @echo "% make esma_install (builds and install under ESMADIR)" @echo "% make esma_clean (removes deliverables: *.[aox], etc)" @echo "% make esma_distclean (leaves in the same state as cvs co)" @echo "% make esma_doc (generates PDF, installs under ESMADIR)" @echo "% make esma_help (this message)" @echo "Environment:" @echo " ESMADIR = $(ESMADIR)" @echo " BASEDIR = $(BASEDIR)" @echo " ARCH = $(ARCH)" @echo " SITE = $(SITE)" esma_install install : fdp.o $(BINS) $(MKDIR) $(ESMABIN) $(ESMALIB) $(ESMAINC) \ $(ESMAETC) $(ESMADOC) $(ESMACFG) @if [ "$(ESMACFG)" != "$(ESMADIR)/Config" ]; then (\ $(RM) -rf $(ESMADIR)/Config; \ cd $(ESMADIR); $(LN) -s $(ARCH)/Config . \ ) fi $(CAT) $(ESMA_BASE) > $(ESMACFG)/ESMA_base.mk $(CAT) $(ESMA_ARCH) > $(ESMACFG)/ESMA_arch.mk $(CAT) $(ESMA_POST) > $(ESMACFG)/ESMA_post.mk $(CAT) GMAO_base.mk $(ASSERT_MK) > $(ESMACFG)/GMAO_base.mk echo "I = $(I)" > $(ESMACFG)/NCEP_base.mk echo "LIB_SDF = $(LIB_SDF)" >> $(ESMACFG)/NCEP_base.mk $(CAT) NCEP_base.mk >> $(ESMACFG)/NCEP_base.mk echo "BASEDIR: $(BASEDIR)" > $(ESMAETC)/BASEDIR.rc $(CP) -p protex $(MODINFO) $(BINS) $(SCRIPTS) $(ESMABIN) ifdef ASSERT $(CP) $(ASSERT) $(ESMABIN)/Assert endif ./install_fdp ./fdp $(FDP) ./CVSTAG_install.pl $(ESMAETC) esma_clean clean: -$(RM) *~ *.[aox] *.[Mm][Oo][Dd] esma_distclean distclean: -$(RM) *~ *.[aoxd] *.[Mm][Oo][Dd] esma_doc doc: @echo "Target $@ not implemented yet in `pwd`" FOPT = %.x : %.F90 $(FC) -o $@ $(F90FLAGS) $< include $(ESMA_POST) #.