ALL: lib
libfast: bkcheckout serverstubs sclfiles
lib: bkcheckout serverstubs sclfiles

DIRS = Rosenbrock Taoapi 
LOCDIR=src/sidl/servers/
EXCLUDES=--exclude="^sidl.*" --exclude="^gov.*" --exclude="^Solver.*" --exclude="^Optimize.*" --exclude="^LinearAlgebra.*"
VPATH=${TAO_DIR}/src/sidl/sidlfiles
CLEANFILES=.serverstubs .bkcheckout .sclfile

bkcheckout: .bkcheckout
.bkcheckout:
	-@bk sfiles -g | grep Impl | xargs bk edit 2>&1 |  grep -v "skipping"
	@touch .bkcheckout

serverstubs:  bkcheckout $(STUBS) .serverstubs chkopts
.serverstubs: Optimize.sidl Solver.sidl LAFactory.sidl
	@$(BABEL) --suppress-timestamp -sC++ $(EXCLUDES)\
          -o $(TAO_DIR)/src/sidl/servers/Rosenbrock/Rosenbrock-server-C++ \
          -R $(TAO_DIR)/src/sidl/xml Rosenbrock.RosenbrockModel > /dev/null

	@$(BABEL) --suppress-timestamp -sC++ $(EXCLUDES)\
         -o$(TAO_DIR)/src/sidl/servers/Taoapi/Taoapi-server-C++ \
          -R $(TAO_DIR)/src/sidl/xml TAO.Solver TAO.Environment > /dev/null

	-@${foreach i, ./Rosenbrock/Rosenbrock-server-C++/Rosenbrock_RosenbrockModel_IOR.c ./Taoapi/Taoapi-server-C++/TAO_Solver_IOR.c ./Taoapi/Taoapi-server-C++/TAO_Environment_IOR.c, \
	  if [ "`grep c++-enable $i`foo" = foo ] ; then  \
        sed s^'\#include "sidl_thread.h"'^'/*c++-enable*/\n\#ifdef __cplusplus\nextern "C" {\n\#include "sidl_thread.h"\n}\n\#endif'^g $i > tmp; mv tmp $i; \
	fi; }


	@touch .serverstubs

sclfiles:
	@cat Taoapi/Taoapi-server-C++/libTaoapi-server-C++.so.scl | \
	 sed s^@TAO_DIR@^$(TAO_DIR)^g | \
         sed s^@PETSC_ARCH@^$(PETSC_ARCH)^g > \
         $(TAO_DIR)/lib/$(PETSC_ARCH)/libTaoapi-server-C++.so.scl

	@cat Rosenbrock/Rosenbrock-server-C++/libRosenbrock-server-C++.so.scl|\
	 sed s^@TAO_DIR@^$(TAO_DIR)^g | \
         sed s^@PETSC_ARCH@^$(PETSC_ARCH)^g > \
         $(TAO_DIR)/lib/$(PETSC_ARCH)/libRosenbrock-server-C++.so.scl


include ${TAO_DIR}/bmake/tao_common

