#= Rules for GNU make # # Authors:: Yasuhiro MORIKAWA # Version:: $Id: rules.make,v 1.9 2008/01/30 11:16:22 morikawa Exp $ # Tag Name:: $Name: $ # 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) $< @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: $(F90DEPEND) Makefile $(RUBY) $(RUBYVERCHECK) > /dev/null 2>&1 && \ $(RUBY) $< $(F90DEPENDOPTS) *.f90 ../*/*.f90 > $@ || \ touch $@ template: $(RUBY) $(RUBYVERCHECK) > /dev/null 2>&1 && \ $(RUBY) $(F90TEMPLATE) -E module ###################################################################### #== Mode setting for Emacs #Local Variables: #mode: makefile #End: #