
#  Main Makefile for NETGEN
#  
src =  ngtcltk/ngappinit.cpp ngtcltk/ngpkg.cpp togl/togl.cpp ngtcltk/demoview.cpp onetcl.cpp 
#
#
program = ng
#
#
# netgen libraries:
#
# lapack =  -llapack  -lblas -lgmp -lg2c
# lapack = -ltmglib -llapack  -lblas -lgmp -lg2c       
#
#
#
mylib =  -lnginterface -lvis -lcsg -lstlgeom -lgeom2d -lmesh -lgprim -lopti \
	 -lla -lgen  -locc
#
#
# system libraries:
#
#
tcltklib = -ltix8.1.8.4 -ltk8.4  -ltcl8.4
# tcltklib = -ltix4.1.8.3 -ltk8.3 -ltcl8.3
# tcltklib = -ltix8.2 -ltk8.3 -ltcl8.3
# tcltklib = /usr/lib/libtix8.1.8.3.so -ltk8.3 -ltcl8.3
# tcltklib = -ltix4.1.8.2 -ltk8.2 -ltcl8.2
# tcltklib = -ltix8.2 -ltk8.4 -ltcl8.4
#
#
syslib = $(tcltklib) -lGL -lGLU -lX11  -lXi -lm  -ldl -lpthread $(SYSLIB2)
# (maybe you have to remove -ldl)
#
#
CPP_DIR=.
LIBSRC_DIR=$(CPP_DIR)/libsrc
LIB_DIR=$(CPP_DIR)/lib/$(MACHINE)
#
#

# OCC_DIR=$(CPP_DIR)/occ
# OCCINC_DIR=$(OCC_DIR)/inc
# OCCLIB_DIR=$(OCC_DIR)/lib
#
OCC_DIR=/opt/OpenCASCADE5.2
OCCINC_DIR=$(OCC_DIR)/ros/inc
OCCLIB_DIR=$(OCC_DIR)/ros/lin/lib

# add libs in makefile.mach.$(MACHINE)
# occlib = -L$(OCCLIB_DIR) -lTKIGES -lTKBRep -lTKSTEP -lTKSTL
#
include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
#
#
.PRECIOUS: .cpp .c .hh
.SUFFIXES: .cpp .c .o
#
#
#
CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR)  -I./ngsolve/include -Ilibsrc/interface -DOPENGL $(METISINC)
#
LINKFLAGS1 =   -lGL -lGLU -lX11 -lXext -lXmu   
#
#
CPLUSPLUSFLAGS = $(CPLUSPLUSFLAGS1) $(CPLUSPLUSFLAGS2) $(CPLUSPLUSFLAGS3)
#
.cpp.o:
	$(CPLUSPLUS) $(CPLUSPLUSFLAGS) $< -o $(<:.cpp=.o)
#
#
#
#
# Additional NETGEN Applications:
#
# the demo add-on application:
# appdemo = -L./demoapp -ldemoapp
#
# appaddon = -L./addon -laddon

# the finite element package NGSolve (available from netgen pages)
# appngs =  lib/$(MACHINE)/*.o -lngsolvebasic
#
# OLD!!! DON'T USE
# an interface to metis
# appmetis = -L./metis  -lngmetis -lmetis
#
ngapplib = $(appngs) $(appdemo) $(appmetis) $(appaddon)
#
#
# Stefan Reitzinger's AMG code pebbles
# pebbleslib = -L../pebbles_old/lib/LINUX -lprepro -lsolver  -lmatrix  -lsetup -lparallel -lintegrator   -L../pebbles_old/SuperLU -lsuperlu_linux -lblas_linux
# 
#
#
LINKFLAGS =  $(LINKFLAGS1) $(LINKFLAGS2) $(LINKFLAGS3)
#
$(program) : $(src:.cpp=.o) makelibs applib $(goaltrafo) $(goaladdon) $(goalngs) $(goalzug)
	$(LINK) -o $@ $(src:.cpp=.o) -L$(LIB_DIR) $(LINKFLAGS) $(ngapplib) $(pebbleslib) $(mylib) $(lapack)  $(syslib) $(occlib) $(METISLIB)
#
makelibs:
	cd libsrc; $(MAKE)
#
applib:
#	cd demoapp; $(MAKE);
#	cd addon; $(MAKE)
#	cd ngsolve; $(MAKE);
#	cd metis; $(MAKE)
#
#
goalngs:
	cd ngsolve; $(MAKE)
#
goaladdon:
	cd addon; $(MAKE)
#
#
.PHONY : clean
clean:
	-@rm *.o ngtcltk/*.o togl/*.o lib/$(MACHINE)/lib*.a lib/$(MACHINE)/*.o
#
#
.PHONY : cleanapp
cleanapp:
	-@rm *.o ngtcltk/*.o togl/*.o 
#
#



