view src/Makefile.in @ 267:53039ac90368

Mark meshfunction using subdomain * src/SubDomain.cc: return subdomain to use for marking * src/MeshFunction.cc: return a user defined meshfunction * src/mark.cc: with the information from subdomain, mark a meshfunction
author Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
date Tue, 12 Aug 2014 15:42:50 +0200
parents 6b37560b7cbb
children
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_func.oct \
             save_mf.oct \
             save_mesh.oct \
             assemble.oct \
             assemble_system.oct \
             plot_func.oct \
             plot_mesh.oct \
             SubSpace.oct \
             feval.oct \
             interpolate.oct \
             is_master_node.oct \
             barrier.oct \
             MeshFunction.oct \
             mark.oct \
             SubDomain.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 $@

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

MeshFunction.o: MeshFunction.cc mesh.h dolfin_compat.h meshfunction.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c $< -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_func.oct: save_func.o mkfunction
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) $< -o ./@function/save.oct $(LIBS)

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

save_mf.oct: save_mf.o mkmeshfunction
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) $< -o ./@meshfunction/save.oct $(LIBS)

save_mf.o: save_mf.cc meshfunction.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c $< -o $@

save_mesh.oct: save_mesh.o mkmesh
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) $< -o ./@mesh/save.oct $(LIBS)

save_mesh.o: save_mesh.cc mesh.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c $< -o $@

mkfunction:
	 mkdir -p @function

mkmeshfunction:
	 mkdir -p @meshfunction

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 $<

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

SubDomain.o: SubDomain.cc subdomain.h
	CPPFLAGS=$(CPPFLAGS) $(MKOCTFILE) -c $< -o $@

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

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

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