include ${PETSC_DIR}/conf/base

MY_CC=gcc
MY_LINKER=/usr/local/pilot/install/petsc-3.0.0-p7/linux-gnu-c-debug/bin/mpicc
MY_ARCHIVER=ar
MY_TARGET_DIR=../Debug
MY_TARGET=petsc_math
MY_PARFLAGS=-DF3F_PARALLEL 

MY_CFLAGS=-c -p -std=c99 -pedantic -Wall $(PARFLAGS) -O3 
MY_LDFLAGS=-pg -Wall $(PARFLAGS) -O3
MY_ARFLAGS=-r 
MY_INCLUDE_FLAGS=-I ${PETSC_DIR}/include -I ${PETSC_DIR}/${PETSC_ARCH}/include -I ${AXIS2C_HOME}/include/axis2-1.6.0 -I .
MY_SHARED_FLAGS=-L/usr/local/pilot/install/axis2c-bin-1.6.0-linux/lib -L/home/pilot/nemanja/programiranje/petsc-web-service/code/pws_server/Debug
MY_SERVER_DIR=/home/pilot/nemanja/programiranje/petsc-web-service/code/pws_server/src

all: petsc_math

petsc_math: main.o petsc_math.o math_calculate.o math_solve.o
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/main.o main.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/petsc_math.o petsc_math.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/math_calculate.o math_calculate.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/math_solve.o math_solve.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/math_get_matrix_determinant.o math_get_matrix_determinant.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/math_get_inverse_matrix.o math_get_inverse_matrix.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/hello.o hello.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/pws_skeleton.o ${MY_SERVER_DIR}/pws_skeleton.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/pws_math_get_matrix_determinant.o ${MY_SERVER_DIR}/pws_math_get_matrix_determinant.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/pws_math_get_inverse_matrix.o ${MY_SERVER_DIR}/pws_math_get_inverse_matrix.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/pws_math_calculate.o ${MY_SERVER_DIR}/pws_math_calculate.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/pws_math_solve.o ${MY_SERVER_DIR}/pws_math_solve.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/convert.o ${MY_SERVER_DIR}/convert.c
	${MY_CC} ${MY_CFLAGS} ${MY_INCLUDE_FLAGS} -o ${MY_TARGET_DIR}/build_response.o ${MY_SERVER_DIR}/build_response.c
	$(MY_LINKER) $(MY_LDFLAGS) ${MY_TARGET_DIR}/main.o ${MY_TARGET_DIR}/petsc_math.o ${MY_TARGET_DIR}/math_calculate.o ${MY_TARGET_DIR}/math_solve.o ${MY_TARGET_DIR}/math_get_matrix_determinant.o ${MY_TARGET_DIR}/math_get_inverse_matrix.o ${MY_TARGET_DIR}/hello.o -o ${MY_TARGET_DIR}/$(MY_TARGET) ${PETSC_KSP_LIB}
#	${MY_ARCHIVER} ${MY_ARFLAGS} ${MY_TARGET_DIR}/libpetsc_math.a ${MY_TARGET_DIR}/petsc_math.o ${MY_TARGET_DIR}/math_calculate.o ${MY_TARGET_DIR}/math_solve.o ${MY_TARGET_DIR}/math_get_matrix_determinant.o ${MY_TARGET_DIR}/math_get_inverse_matrix.o ${PETSC_KSP_LIB}
	${MY_CC} ${MY_LDFLAGS} -shared ${MY_SHARED_FLAGS} -o ${MY_TARGET_DIR}/libpetsc_web_service.so ${MY_TARGET_DIR}/pws_skeleton.o ${MY_TARGET_DIR}/pws_math_get_matrix_determinant.o ${MY_TARGET_DIR}/pws_math_get_inverse_matrix.o ${MY_TARGET_DIR}/pws_math_calculate.o ${MY_TARGET_DIR}/pws_math_solve.o ${MY_TARGET_DIR}/convert.o ${MY_TARGET_DIR}/build_response.o ${MY_TARGET_DIR}/petsc_math.o ${MY_TARGET_DIR}/math_calculate.o ${MY_TARGET_DIR}/math_solve.o ${MY_TARGET_DIR}/math_get_matrix_determinant.o ${MY_TARGET_DIR}/math_get_inverse_matrix.o ${PETSC_KSP_LIB} -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver
	${RM} ${MY_TARGET_DIR}/*.o







