#= Rules for GNU make # # Authors:: Yasuhiro MORIKAWA # Version:: $Id: rules.make,v 1.8 2008-11-27 14:54:44 morikawa Exp $ # Tag Name:: $Name: dcpam5-20081129 $ # Copyright:: Copyright (C) GFD Dennou Club, 2006-. All rights reserved. # License:: See COPYRIGHT[link:COPYRIGHT] # #== Overview # # This file provides general rules for Makefiles. # To use, "include" this file. # # [JAPANESE] # このファイルには Makefile 群から呼び出される共通ルールが # 記述されています. このファイルを使用するには, 各 Makefile で # このファイルを include してください. # ############################################################ %.o: %.F90 $(FC) -o $@ -c $(FFLAGS) -I$(MODDIR) $(SYSFFLAGS) $(CPPFLAGS) $< @if [ -f $(MODFILE) ]; then \ test -d $(MODDIR) || $(INSTALLDIR) $(MODDIR) ;\ $(CP) $(MODFILE) $(MODDIR) ;\ if [ ! `dirname $@` = "." ]; then \ $(MV) $(MODFILE) `dirname $@` ;\ fi ;\ fi %.o: %.f90 $(FC) -o $@ -c $(FFLAGS) -I$(MODDIR) $(SYSFFLAGS) $< @if [ -f $(MODFILE) ]; then \ test -d $(MODDIR) || $(INSTALLDIR) $(MODDIR) ;\ $(CP) $(MODFILE) $(MODDIR) ;\ if [ ! `dirname $@` = "." ]; then \ $(MV) $(MODFILE) `dirname $@` ;\ fi ;\ fi %: %.o $(LINKF) -o $@ $+ $(SYSLDFLAGS) $(SYSLDLIBS) $(LIBDIR)/$(DCPAMLIB): $(OBJS) test -d $(LIBDIR) || $(INSTALLDIR) $(LIBDIR) test -z "$+" || $(AR) $(ARFLAGS) $@ $+ test -f $@ && $(RANLIB) $@ || true test -d $(MODDIR) || $(INSTALLDIR) $(MODDIR) test -z "`ls $(CLEAN_MODS)`" || $(INSTALL) $(CLEAN_MODS) $(MODDIR) test: @for i in $(TESTS) ; do \ $(SH) ./$$i || \ eval " echo ; echo \" *** Error is occured in $$i ***\" ; echo ; exit 1" ; \ done clean: -$(RM) $(CLEAN_MODS) $(OBJS) $(CLEAN_TESTS) $(TARGETS) $(TMPFILES) *~ -$(RM) $(OBJS:%.o=$(MODDIR)/%$(MODSUFFIX)) -$(RMDIR) $(MODDIR) clean.lib: -$(RM) $(LIBDIR)/$(DCPAMLIB) -$(RM) $(MODDIR)/$(CLEAN_MODS) clean.bin: -cd $(BINDIR) ; $(RM) $(TARGETS) clean.rb2f90: -$(RM) $(RB2F90) depend: Makefile $(F90DEPEND) $(F90DEPENDOPTS) $(wildcard *.f90 *.F90) ../*/*.f90 ../*/*.F90 > $@ depend.for.test: Makefile $(F90DEPEND) $(F90DEPENDOPTS) $(wildcard *.f90 *.F90) ../../src/*/*.f90 ../../src/*/*.F90 > depend ###################################################################### #== Mode setting for Emacs #Local Variables: #mode: makefile #End: #