#------------------------------------------------------------------------------#
# This makefile was generated by 'cbp2make' tool rev.147                       #
#------------------------------------------------------------------------------#


WORKDIR = `pwd`

CC = gcc
CXX = g++
AR = ar
LD = g++
WINDRES = windres

INC = 
CFLAGS = 
RESINC = 
LIBDIR = 
LIB = 
LDFLAGS = 

INC_DEBUG = $(INC) -I../../cuda_nla3d -I../math -I../nla3d -I../easylogging -I/usr/include/eigen3
CFLAGS_DEBUG = $(CFLAGS) -Wall -m64 -g -ftemplate-backtrace-limit=0 -fPIC
RESINC_DEBUG = $(RESINC)
RCFLAGS_DEBUG = $(RCFLAGS)
LIBDIR_DEBUG = $(LIBDIR)
LIB_DEBUG = $(LIB)
LDFLAGS_DEBUG = $(LDFLAGS) -m64
OBJDIR_DEBUG = obj/Debug
DEP_DEBUG = 
OUT_DEBUG = bin/Debug/libnla3d.a

INC_RELEASE = $(INC) -I../../cuda_nla3d -I../math -I../nla3d -I../easylogging -I/usr/include/eigen3
CFLAGS_RELEASE = $(CFLAGS) -O2 -Wall -m64 -ftemplate-backtrace-limit=0 -fPIC
RESINC_RELEASE = $(RESINC)
RCFLAGS_RELEASE = $(RCFLAGS)
LIBDIR_RELEASE = $(LIBDIR)
LIB_RELEASE = $(LIB)
LDFLAGS_RELEASE = $(LDFLAGS) -s -m64
OBJDIR_RELEASE = obj/Release
DEP_RELEASE = 
OUT_RELEASE = bin/Release/libnla3d.a

OBJ_DEBUG = $(OBJDIR_DEBUG)/elements/SOLID81.o $(OBJDIR_DEBUG)/elements/TETRA0.o $(OBJDIR_DEBUG)/elements/TETRA1.o $(OBJDIR_DEBUG)/elements/TRIANGLE4.o $(OBJDIR_DEBUG)/elements/TRUSS3.o $(OBJDIR_DEBUG)/elements/element.o $(OBJDIR_DEBUG)/elements/isoparametric.o $(OBJDIR_DEBUG)/materials/MaterialFactory.o $(OBJDIR_DEBUG)/materials/material.o $(OBJDIR_DEBUG)/materials/materials_hyperelastic.o $(OBJDIR_DEBUG)/solidmech.o $(OBJDIR_DEBUG)/PostProcessor.o $(OBJDIR_DEBUG)/FEComponent.o $(OBJDIR_DEBUG)/FESolver.o $(OBJDIR_DEBUG)/FEStorage.o $(OBJDIR_DEBUG)/Mpc.o $(OBJDIR_DEBUG)/Node.o $(OBJDIR_DEBUG)/Dof.o $(OBJDIR_DEBUG)/ReactionProcessor.o $(OBJDIR_DEBUG)/VtkProcessor.o $(OBJDIR_DEBUG)/elements/ElementFactory.o $(OBJDIR_DEBUG)/elements/PLANE41.o $(OBJDIR_DEBUG)/elements/QUADTH.o

OBJ_RELEASE = $(OBJDIR_RELEASE)/elements/SOLID81.o $(OBJDIR_RELEASE)/elements/TETRA0.o $(OBJDIR_RELEASE)/elements/TETRA1.o $(OBJDIR_RELEASE)/elements/TRIANGLE4.o $(OBJDIR_RELEASE)/elements/TRUSS3.o $(OBJDIR_RELEASE)/elements/element.o $(OBJDIR_RELEASE)/elements/isoparametric.o $(OBJDIR_RELEASE)/materials/MaterialFactory.o $(OBJDIR_RELEASE)/materials/material.o $(OBJDIR_RELEASE)/materials/materials_hyperelastic.o $(OBJDIR_RELEASE)/solidmech.o $(OBJDIR_RELEASE)/PostProcessor.o $(OBJDIR_RELEASE)/FEComponent.o $(OBJDIR_RELEASE)/FESolver.o $(OBJDIR_RELEASE)/FEStorage.o $(OBJDIR_RELEASE)/Mpc.o $(OBJDIR_RELEASE)/Node.o $(OBJDIR_RELEASE)/Dof.o $(OBJDIR_RELEASE)/ReactionProcessor.o $(OBJDIR_RELEASE)/VtkProcessor.o $(OBJDIR_RELEASE)/elements/ElementFactory.o $(OBJDIR_RELEASE)/elements/PLANE41.o $(OBJDIR_RELEASE)/elements/QUADTH.o

all: debug release

clean: clean_debug clean_release

before_debug: 
	test -d bin/Debug || mkdir -p bin/Debug
	test -d $(OBJDIR_DEBUG)/elements || mkdir -p $(OBJDIR_DEBUG)/elements
	test -d $(OBJDIR_DEBUG)/materials || mkdir -p $(OBJDIR_DEBUG)/materials
	test -d $(OBJDIR_DEBUG) || mkdir -p $(OBJDIR_DEBUG)

after_debug: 

debug: before_debug out_debug after_debug

out_debug: before_debug $(OBJ_DEBUG) $(DEP_DEBUG)
	$(AR) rcs $(OUT_DEBUG) $(OBJ_DEBUG)

$(OBJDIR_DEBUG)/elements/SOLID81.o: elements/SOLID81.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/SOLID81.cpp -o $(OBJDIR_DEBUG)/elements/SOLID81.o

$(OBJDIR_DEBUG)/elements/TETRA0.o: elements/TETRA0.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/TETRA0.cpp -o $(OBJDIR_DEBUG)/elements/TETRA0.o

$(OBJDIR_DEBUG)/elements/TETRA1.o: elements/TETRA1.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/TETRA1.cpp -o $(OBJDIR_DEBUG)/elements/TETRA1.o

$(OBJDIR_DEBUG)/elements/TRIANGLE4.o: elements/TRIANGLE4.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/TRIANGLE4.cpp -o $(OBJDIR_DEBUG)/elements/TRIANGLE4.o

$(OBJDIR_DEBUG)/elements/TRUSS3.o: elements/TRUSS3.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/TRUSS3.cpp -o $(OBJDIR_DEBUG)/elements/TRUSS3.o

$(OBJDIR_DEBUG)/elements/element.o: elements/element.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/element.cpp -o $(OBJDIR_DEBUG)/elements/element.o

$(OBJDIR_DEBUG)/elements/isoparametric.o: elements/isoparametric.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/isoparametric.cpp -o $(OBJDIR_DEBUG)/elements/isoparametric.o

$(OBJDIR_DEBUG)/materials/MaterialFactory.o: materials/MaterialFactory.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c materials/MaterialFactory.cpp -o $(OBJDIR_DEBUG)/materials/MaterialFactory.o

$(OBJDIR_DEBUG)/materials/material.o: materials/material.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c materials/material.cpp -o $(OBJDIR_DEBUG)/materials/material.o

$(OBJDIR_DEBUG)/materials/materials_hyperelastic.o: materials/materials_hyperelastic.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c materials/materials_hyperelastic.cpp -o $(OBJDIR_DEBUG)/materials/materials_hyperelastic.o

$(OBJDIR_DEBUG)/solidmech.o: solidmech.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c solidmech.cpp -o $(OBJDIR_DEBUG)/solidmech.o

$(OBJDIR_DEBUG)/PostProcessor.o: PostProcessor.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c PostProcessor.cpp -o $(OBJDIR_DEBUG)/PostProcessor.o

$(OBJDIR_DEBUG)/FEComponent.o: FEComponent.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c FEComponent.cpp -o $(OBJDIR_DEBUG)/FEComponent.o

$(OBJDIR_DEBUG)/FESolver.o: FESolver.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c FESolver.cpp -o $(OBJDIR_DEBUG)/FESolver.o

$(OBJDIR_DEBUG)/FEStorage.o: FEStorage.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c FEStorage.cpp -o $(OBJDIR_DEBUG)/FEStorage.o

$(OBJDIR_DEBUG)/Mpc.o: Mpc.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c Mpc.cpp -o $(OBJDIR_DEBUG)/Mpc.o

$(OBJDIR_DEBUG)/Node.o: Node.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c Node.cpp -o $(OBJDIR_DEBUG)/Node.o

$(OBJDIR_DEBUG)/Dof.o: Dof.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c Dof.cpp -o $(OBJDIR_DEBUG)/Dof.o

$(OBJDIR_DEBUG)/ReactionProcessor.o: ReactionProcessor.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c ReactionProcessor.cpp -o $(OBJDIR_DEBUG)/ReactionProcessor.o

$(OBJDIR_DEBUG)/VtkProcessor.o: VtkProcessor.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c VtkProcessor.cpp -o $(OBJDIR_DEBUG)/VtkProcessor.o

$(OBJDIR_DEBUG)/elements/ElementFactory.o: elements/ElementFactory.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/ElementFactory.cpp -o $(OBJDIR_DEBUG)/elements/ElementFactory.o

$(OBJDIR_DEBUG)/elements/PLANE41.o: elements/PLANE41.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/PLANE41.cpp -o $(OBJDIR_DEBUG)/elements/PLANE41.o

$(OBJDIR_DEBUG)/elements/QUADTH.o: elements/QUADTH.cpp
	$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c elements/QUADTH.cpp -o $(OBJDIR_DEBUG)/elements/QUADTH.o

clean_debug: 
	rm -f $(OBJ_DEBUG) $(OUT_DEBUG)
	rm -rf bin/Debug
	rm -rf $(OBJDIR_DEBUG)/elements
	rm -rf $(OBJDIR_DEBUG)/materials
	rm -rf $(OBJDIR_DEBUG)

before_release: 
	test -d bin/Release || mkdir -p bin/Release
	test -d $(OBJDIR_RELEASE)/elements || mkdir -p $(OBJDIR_RELEASE)/elements
	test -d $(OBJDIR_RELEASE)/materials || mkdir -p $(OBJDIR_RELEASE)/materials
	test -d $(OBJDIR_RELEASE) || mkdir -p $(OBJDIR_RELEASE)

after_release: 

release: before_release out_release after_release

out_release: before_release $(OBJ_RELEASE) $(DEP_RELEASE)
	$(AR) rcs $(OUT_RELEASE) $(OBJ_RELEASE)

$(OBJDIR_RELEASE)/elements/SOLID81.o: elements/SOLID81.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/SOLID81.cpp -o $(OBJDIR_RELEASE)/elements/SOLID81.o

$(OBJDIR_RELEASE)/elements/TETRA0.o: elements/TETRA0.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/TETRA0.cpp -o $(OBJDIR_RELEASE)/elements/TETRA0.o

$(OBJDIR_RELEASE)/elements/TETRA1.o: elements/TETRA1.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/TETRA1.cpp -o $(OBJDIR_RELEASE)/elements/TETRA1.o

$(OBJDIR_RELEASE)/elements/TRIANGLE4.o: elements/TRIANGLE4.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/TRIANGLE4.cpp -o $(OBJDIR_RELEASE)/elements/TRIANGLE4.o

$(OBJDIR_RELEASE)/elements/TRUSS3.o: elements/TRUSS3.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/TRUSS3.cpp -o $(OBJDIR_RELEASE)/elements/TRUSS3.o

$(OBJDIR_RELEASE)/elements/element.o: elements/element.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/element.cpp -o $(OBJDIR_RELEASE)/elements/element.o

$(OBJDIR_RELEASE)/elements/isoparametric.o: elements/isoparametric.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/isoparametric.cpp -o $(OBJDIR_RELEASE)/elements/isoparametric.o

$(OBJDIR_RELEASE)/materials/MaterialFactory.o: materials/MaterialFactory.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c materials/MaterialFactory.cpp -o $(OBJDIR_RELEASE)/materials/MaterialFactory.o

$(OBJDIR_RELEASE)/materials/material.o: materials/material.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c materials/material.cpp -o $(OBJDIR_RELEASE)/materials/material.o

$(OBJDIR_RELEASE)/materials/materials_hyperelastic.o: materials/materials_hyperelastic.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c materials/materials_hyperelastic.cpp -o $(OBJDIR_RELEASE)/materials/materials_hyperelastic.o

$(OBJDIR_RELEASE)/solidmech.o: solidmech.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c solidmech.cpp -o $(OBJDIR_RELEASE)/solidmech.o

$(OBJDIR_RELEASE)/PostProcessor.o: PostProcessor.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c PostProcessor.cpp -o $(OBJDIR_RELEASE)/PostProcessor.o

$(OBJDIR_RELEASE)/FEComponent.o: FEComponent.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c FEComponent.cpp -o $(OBJDIR_RELEASE)/FEComponent.o

$(OBJDIR_RELEASE)/FESolver.o: FESolver.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c FESolver.cpp -o $(OBJDIR_RELEASE)/FESolver.o

$(OBJDIR_RELEASE)/FEStorage.o: FEStorage.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c FEStorage.cpp -o $(OBJDIR_RELEASE)/FEStorage.o

$(OBJDIR_RELEASE)/Mpc.o: Mpc.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c Mpc.cpp -o $(OBJDIR_RELEASE)/Mpc.o

$(OBJDIR_RELEASE)/Node.o: Node.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c Node.cpp -o $(OBJDIR_RELEASE)/Node.o

$(OBJDIR_RELEASE)/Dof.o: Dof.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c Dof.cpp -o $(OBJDIR_RELEASE)/Dof.o

$(OBJDIR_RELEASE)/ReactionProcessor.o: ReactionProcessor.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c ReactionProcessor.cpp -o $(OBJDIR_RELEASE)/ReactionProcessor.o

$(OBJDIR_RELEASE)/VtkProcessor.o: VtkProcessor.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c VtkProcessor.cpp -o $(OBJDIR_RELEASE)/VtkProcessor.o

$(OBJDIR_RELEASE)/elements/ElementFactory.o: elements/ElementFactory.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/ElementFactory.cpp -o $(OBJDIR_RELEASE)/elements/ElementFactory.o

$(OBJDIR_RELEASE)/elements/PLANE41.o: elements/PLANE41.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/PLANE41.cpp -o $(OBJDIR_RELEASE)/elements/PLANE41.o

$(OBJDIR_RELEASE)/elements/QUADTH.o: elements/QUADTH.cpp
	$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c elements/QUADTH.cpp -o $(OBJDIR_RELEASE)/elements/QUADTH.o

clean_release: 
	rm -f $(OBJ_RELEASE) $(OUT_RELEASE)
	rm -rf bin/Release
	rm -rf $(OBJDIR_RELEASE)/elements
	rm -rf $(OBJDIR_RELEASE)/materials
	rm -rf $(OBJDIR_RELEASE)

.PHONY: before_debug after_debug clean_debug before_release after_release clean_release