CCAFE_HOME = ../../../.. include $(CCAFE_HOME)/Makefile.Rules ifneq ($(CCAFE_BUILD_PY),) # is it empty? BUILD_PY = .gen-babel-py endif include Makefile.cmpt BABEL_HOME = $(BABEL_ROOT) BABEL = $(CCASPEC_BABEL_BABEL) CLASSIC_HOME = $(CLASSIC_CCA_ROOT) UNCRUFTER = $(RUBY) $(CCAFE_ROOT)/cxx/dc/babel/bin/sidlUncrufter.rb UNSTAMPER = $(CCAFE_ROOT)/cxx/dc/babel/bin/implUnstamper.sh IMPLNEWR = $(RUBY) $(CCAFE_ROOT)/cxx/dc/babel/bin/newer.rb CCA_SERVER_DIR = $(CCASPEC_BABEL_XML_REPOSITORY) BOOST_INCLUDE = $(BOOST_INC) LIB = lib$(CMPT_NAME)$(LIBSUFFIX) LTLIB = lib$(CMPT_NAME)$(VER_SUFFIX)$(PROGRAM_SUFFIX).la DIRS = server SIDL_FILES = $(CMPT_NAME).sidl IMPL_FILES = $(shell ls *Impl* 2>/dev/null) SIDL_LIB_DIR = $(CCASPEC_BABEL_libdir) CLASSIC_HOME = $(CLASSIC_CCA_ROOT) CCAFE_INCLUDE = -I$(CCAFE_HOME) $(CCA_INC) SERVER_DIR = ./server BABEL_INCLUDE = $(BOOST_INC) -I$(CCASPEC_BABEL_includedir) \ $(BABEL_CCA_INC) INSTALL_LIB = $(CCAFE_HOME)/lib BCXXFLAGS = $(BABEL_INCLUDE) $(CCAFE_INCLUDE) $(CLASSIC_INCL) \ $(CXXFLAGS) LINK_FILES = Makefile.babel all: .dirs-made .gen-babel .uncruft .make-babel $(BUILD_PY) .lib-local-installed print: @echo $(BABEL_INCLUDE) %.o : %.cc $(CXX) -c $(CXXFLAGS) $< $(DIRS) .dirs-made : -mkdir server -mkdir client cp $(LINK_FILES) server/ touch .dirs-made # vpath. do nothing. babel-copy .babel-copy : $(LINK_FILES) .dirs-made @touch .babel-copy # do nothing. vpath. babel-symlink .babel-symlink: .dirs-made @touch .babel-symlink gen: gen-babel $(CMPT_NAME).depl.cca gen-babel .gen-babel : .dirs-made .babel-symlink $(SIDL_FILES) $(BABEL) $(BABEL_FLAGS) -sC++ \ --output-directory=server --vpath=`pwd` \ --repository-path $(CCA_SERVER_DIR) $(SIDL_FILES) $(BABEL) $(BABEL_FLAGS) $(CCA_BABEL_XMLFLAGS) \ --output-directory=server --vpath=`pwd` \ --repository-path $(CCA_SERVER_DIR) $(SIDL_FILES) $(MAKE) unstamp touch .gen-babel src-list: $(CMPT_NAME).depl.cca @(cd server; $(MAKE) -f ../Makefile.babel src-list) PYINCLUDEDIR = $(shell $(BABEL_ROOT)/bin/babel-config --query-var=PYTHONINC) CCASPEC_INCLUDE_DIR = $(shell $(BABEL_CCA_ROOT)/bin/cca-spec-babel-config --var CCASPEC_pkgincludedir) INCLUDEDIR = $(BABEL_ROOT)/include INCLUDEDIR2 = . SIDLPYTHONLIB = $(BABEL_ROOT)/lib BABEL_RUNTIME_INCLUDE = $(INCLUDEDIR)/python2.2/babel PYTHON_VERSION = $(shell $(BABEL_ROOT)/bin/babel-config --query-var=PYTHON_VERSION) CCASPEC_PYTHON_INCLUDE_DIR = $(BABEL_CCA_ROOT)/include/python$(PYTHON_VERSION)/babel gen-babel-py .gen-babel-py : $(SIDL_FILES) .dirs-made .gen-babel .make-babel if ! [ -d py-client ]; then mkdir py-client;fi (cd py-client;$(BABEL) -cpython -E --repository-path $(CCA_SERVER_DIR) ../$(SIDL_FILES)) (cd py-client; python setup.py \ --include-dirs=$(PYINCLUDEDIR) \ --include-dirs=$(INCLUDEDIR) \ --include-dirs=$(INCLUDEDIR2) \ --include-dirs=$(BABEL_RUNTIME_INCLUDE) \ --include-dirs=$(CCASPEC_INCLUDE_DIR) \ --include-dirs=$(CCASPEC_PYTHON_INCLUDE_DIR) \ --library-dirs=$(SIDLPYTHONLIB) \ build_ext --inplace --force ) touch .gen-babel-py make-babel .make-babel : .gen-babel .depend $(IMPL_FILES) (cd server; $(MAKE) -f ../Makefile.babel) touch .make-babel # we're generating for a port deployment, actually, so no cca info yet. $(CMPT_NAME).depl.cca: @$(GENDLINDEX) $(LIB) dummy-create $(FQ_CMPT_NAME) $(CCAFE_RPM_libdir)/ $(FQ_CMPT_NAME) babel > $(CMPT_NAME).cca @$(CCASPEC_GENSCLCCA_SH) scl $(CCAFE_RPM_libdir)/$(LTLIB) $(FQ_CMPT_NAME) $(FQ_CMPT_NAME) dynamic global now >$@ lib-install .lib-local-installed : .make-babel $(CMPT_NAME).depl.cca if ! [ -d $(INSTALL_LIB) ]; then mkdir -p $(INSTALL_LIB); fi $(INSTALL) server/$(LIB) $(INSTALL_LIB) $(INSTALL_DATA) $(CMPT_NAME).depl.cca $(INSTALL_LIB) $(INSTALL_DATA) $(CMPT_NAME).cca $(INSTALL_LIB) touch .lib-local-installed # $(INSTALL_DATA) $(LIB).scl $(INSTALL_LIB) .uncruft uncruft : .gen-babel (cd server; $(UNCRUFTER) --re-to-delete gov_cca --re-to-delete SIDL_ \ --re-to-delete SIDL\.h ) @touch .uncruft unstamp: $(UNSTAMPER) $(IMPL_FILES) typeMapTempl: $(RUBY) typemapGen.rb --overwrite ccaffeine_CcafeTypeMap_Impl.cc tester: tester.o $(CXX) $(CXXFLAGS) -o tester tester.o -L $(SIDL_LIB_DIR) -lsidl LD_LIBRARY_PATH=$(SIDL_LIB_DIR):$(LD_LIBRARY_PATH) ./tester # do nothing. vpath. copy-back: # -if [ -d server ];then cp `$(IMPLNEWR) --exclusive server . 2>/dev/null` .;fi clean: $(RM) -r client server *.o tester .babel-copy .babel-symlink \ .dirs-made .gen-babel .make-babel .uncruft \ $(CMPT_NAME).depl.cca .lib-local-installed \ $(CMPT_NAME).cca py-client .gen-babel-py # Not quite clean cl: copy-back $(RM) server/*.o *.o tester .make-babel $(CMPT_NAME).depl.cca .depend depend: .gen-babel .uncruft touch server/Makefile.depends (cd server;$(MAKE) -f ../Makefile.babel depend) touch .depend