view src/Makefile.in @ 258:ab35a8b0deef

Support storage of mesh markers via meshfunction
author Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
date Fri, 01 Aug 2014 18:59:18 +0200
parents 8fe68d94ab76
children 598c5e9e0a9e
line wrap: on
line source

## Copyright (C) 2013 Marco Vassallo <gedeone-octave@users.sourceforge.net>
## Copyright (C) 2014 Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
##
## This program is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free Software
## Foundation; either version 3 of the License, or (at your option) any later
## version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
## details.
##
## You should have received a copy of the GNU General Public License along with
## this program; if not, see <http://www.gnu.org/licenses/>.

MKOCTFILE ?= mkoctfile
FFC ?= ffc

ARFLAGS=-r -s
DOLFIN_CPPFLAGS=@DOLFIN_CPPFLAGS@
CPPFLAGS=@DENSE_CPPFLAGS@ @EIGEN_CPPFLAGS@ -I.
LIBS_RAW=@EIGEN_LIBS@ @DOLFIN_LIBS@
LIBS=$(patsubst %, "%", $(LIBS_RAW))
ifeq (1.4.0, $(findstring 1.4.0, $(DOLFIN_CPPFLAGS)))
  CPPFLAGS+=-DLATEST_DOLFIN
  LIBS+=-lboost_mpi -lboost_serialization
endif
CPPFLAGS+=$(DOLFIN_CPPFLAGS)
CPPFLAGS:='$(CPPFLAGS)'

OCTFILES= Mesh.oct \
             DirichletBC.oct \
             Expression.oct \
             Function.oct \
             save.oct \
             assemble.oct \
             assemble_system.oct \
             plot_func.oct \
             plot_mesh.oct \
             SubSpace.oct \
             feval.oct \
             interpolate.oct \
             is_master_node.oct \
             barrier.oct


all: $(OCTFILES)

fem_init_env.oct: fem_init_env.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) fem_init_env.o -o $@ $(LIBS)

fem_init_env.o:  fem_init_env.cc mesh.h functionspace.h boundarycondition.h function.h coefficient.h form.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c fem_init_env.cc -o $@

Mesh.oct: Mesh.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) Mesh.o -o $@ $(LIBS)

Mesh.o: Mesh.cc mesh.h dolfin_compat.h meshfunction.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c Mesh.cc -o $@

fem_get_mesh.oct: fem_get_mesh.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) fem_get_mesh.o -o $@ $(LIBS)

fem_get_mesh.o: fem_get_mesh.cc
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c fem_get_mesh.cc -o $@

DirichletBC.oct: DirichletBC.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) DirichletBC.o -o $@ $(LIBS)

DirichletBC.o: DirichletBC.cc functionspace.h boundarycondition.h expression.h dolfin_compat.h meshfunction.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c DirichletBC.cc -o $@

Expression.oct: Expression.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) Expression.o -o $@ $(LIBS)

Expression.o: Expression.cc expression.h coefficient.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c Expression.cc -o $@

Function.oct: Function.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) Function.o -o $@ $(LIBS)

Function.o: Function.cc function.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c Function.cc -o $@

assemble.oct: assemble.o libfemfenics_factories.a
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) assemble.o -o $@ \
    libfemfenics_factories.a $(LIBS)

assemble.o: assemble.cc form.h boundarycondition.h femfenics_factory.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c assemble.cc -o $@

assemble_system.oct: assemble_system.o libfemfenics_factories.a
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) assemble_system.o -o $@ \
    libfemfenics_factories.a $(LIBS)

assemble_system.o: assemble_system.cc form.h boundarycondition.h femfenics_factory.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c assemble_system.cc -o $@

save.oct: save.o mkfunction
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) save.o -o ./@function/save.oct $(LIBS)

save.o: save.cc dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c save.cc -o $@

mkfunction:
	 mkdir -p @function

mkmesh:
	 mkdir -p @mesh

plot_mesh.oct: plot_mesh.o mkmesh
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) plot_mesh.o -o ./@mesh/plot.oct $(LIBS)

plot_mesh.o: plot_mesh.cc Plot_2d.h mesh.h Plot_3d.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c plot_mesh.cc -o $@

Plot_2d.h: Plot_2d.ufl
	$(FFC) -l dolfin Plot_2d.ufl

Plot_3d.h: Plot_3d.ufl
	$(FFC) -l dolfin Plot_3d.ufl

plot_func.oct: plot_func.o mkfunction
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) plot_func.o -o ./@function/plot.oct $(LIBS)

plot_func.o: plot_func.cc Plot_2d.h mesh.h Plot_3d.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c plot_func.cc -o $@

SubSpace.oct: SubSpace.cc functionspace.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -I. SubSpace.cc $(LIBS)

feval.oct: feval.o mkfunction
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) feval.o -o ./@function/feval.oct $(LIBS)

feval.o: feval.cc function.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c feval.cc -o $@

interpolate.oct: interpolate.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) interpolate.o -o $@ $(LIBS)

interpolate.o: interpolate.cc function.h dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c interpolate.cc -o $@

femfenics_factory.o: femfenics_factory.cc femfenics_factory.h femfenics_base_factory.h\
                     uBLAS_factory.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c $< -o $@

uBLAS_factory.o: uBLAS_factory.cc uBLAS_factory.h femfenics_base_factory.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c $< -o $@

PETSc_factory.o: PETSc_factory.cc PETSc_factory.h femfenics_base_factory.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c $< -o $@

libfemfenics_factories.a: femfenics_factory.o uBLAS_factory.o PETSc_factory.o
	$(AR) $(ARFLAGS) $@ $^

is_master_node.oct: is_master_node.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -o $@ $< $(LIBS)

is_master_node.o: is_master_node.cc dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -o $@ -c $<

barrier.oct: barrier.o
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -o $@ $< $(LIBS)

barrier.o: barrier.cc dolfin_compat.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -o $@ -c $<

clean:
	$(RM) *.o core octave-core *.oct *~ *.xml *.a

cleanall:
	$(RM) *.o core octave-core *.oct *~ *.xml *.status *.log \
          octave-workspace configure *.pvd *.vtu *.a
	$(RM) -r autom4te.cache
	$(RM) ../inst/private/get_vars.m
	$(RM) Makefile