[Debian-med-packaging] Core Wrapper patches

Laszlo Kajan lkajan at rostlab.org
Thu Aug 16 17:53:33 UTC 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear Vladimir!

With the help you gave me earlier, I have now created a Debian package out of Core Wrapper.

It passes the test 'CorePyWrapTests.py' (the only one I downloaded data for) after installation. This means that the shared library (I created
one for all /but/ the python wrapper) and the python wrapper (this links with the shared library) probably function well.

In the process I have created several patches - I attach them to this email.

There is one notable issue left: the call of exit() in -

* (generated) ./cif-parser/src/DICScanner.c ./cif-parser/src/CifScanner.c

* ./cif-file/src/ParentChild.C

The library should rather return an error code or throw an exception.

Thank you for developing and releasing these tools for the bioinformatics community.

Best regards,

Laszlo Kajan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJQLTOcAAoJEJvS1kCaDFL6TbMP+wb5kQArBjt7ZPy2sXjlt8tB
XPwLzeEpFeIKmdby+wy7H1ZTYDxoJsXcRXCS6PQX0q5nGtqeJlOelOWb1ERxbizB
tKp8njwuPujstrmc8EhVkZ6xUqJi/qI3+cxr5KPqtkaq5uFw15hME8AzOVapGMb7
UkFvyOiu6x32qyukbvYuXCbRGu0VGFqrDPsAS3w63ISfPIaR3kUbaPrtCDbLgtHl
PmsGsOSo2awFqEzSH8qHHrNtZsyAprUQU+fuDJEEBuk0Kdm38XquR3NEIl4qpIpt
f7jhBcmtMD4R6uhCybmJitgxjAt5hKGr1dswjY/NCRRvgLTwHnU0YDDIFdI1ksG2
Z5O3Bj4aBNcFU/v+Pn7sOCM5+ehjXt0dATobMORJBIrB1vxZUHoWuW8iePRCSl8h
7r3wd7hu0jzWz+sHzLBBrOcp6zzftxI5mBlcdF1IclKuxW5pnTrAX/IESLaChGUR
6hHKlDioH2gK5cVy/9KSPk2g+bOXkkDf3Ep4bstSeyTabakbf4ZTGk4fhkcO/T2D
GxL4wcKK5tBYRnZbTB7mmQsMCys7siTKgifVM0loj7sWOLYWypIAzbi7Y3uk1HEq
pBFlePmMoVX/fzlAsGNpqUVBcN0w0UErNnsG4tT5vpSq8GdAJKrX/HDjPYuCqUia
nKAmeycCsYPa24lCpayR
=mjrD
-----END PGP SIGNATURE-----
-------------- next part --------------
--- a/common/src/mapped_ptr_vector.C
+++ b/common/src/mapped_ptr_vector.C
@@ -20,7 +20,7 @@
 using std::string;
 using std::vector;
 using std::pair;
-
+using std::make_pair;
 
 template <typename T, typename StringCompareT>
 mapped_ptr_vector<T, StringCompareT>::mapped_ptr_vector()
-------------- next part --------------
--- a/pdbml-parser/src/misc_util.C
+++ b/pdbml-parser/src/misc_util.C
@@ -1,5 +1,6 @@
 #include <string>
 #include <algorithm>
+#include <unistd.h>
 
 #include "CifString.h"
 #include "ISTable.h"
-------------- next part --------------
--- a/local/modules.txt
+++ b/local/modules.txt
@@ -9,4 +9,3 @@
 svn https://svn-dev.wwpdb.org/svn-rcsb/pdbml/modules/pdbml-parser pdbml-parser Latest
 svn https://svn-dev.wwpdb.org/svn-rcsb/pdbml/modules/pdbml-parser pdbml-parser Latest
 svn https://svn-dev.wwpdb.org/svn-wwpdb/third-party/cctbx cctbx Latest
-svn https://svn-dev.wwpdb.org/svn-wwpdb/core/wrapper wrapper Latest
-------------- next part --------------
--- a/cif-parser/Makefile
+++ b/cif-parser/Makefile
@@ -167,7 +167,7 @@
 	@rm -f $(M_AGR_LIB)
 
 
-$(L_MOD_LIB): $(OBJ_FILES)
+$(L_MOD_LIB): $(addprefix obj/,$(OBJ_FILES))
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
 	$(RANLIB) $@
@@ -175,18 +175,18 @@
 
 
 # Specific rules for making object files
-$(OBJ_DIR)/%Parser.o: $(SRC_DIR)/%Parser.y
+obj/%Parser.o: $(SRC_DIR)/%Parser.y
 	@sh -c 'cd $(SRC_DIR); $(YACC) $(${^F:.y=_YACC_FLAGS}) ../$<'
 	mv $(^:.y=.tab.c) $(^:.y=.c)
 	mv $(^:.y=.tab.h) $(^:.y=.h)
 	$(CC) $(CFLAGS_NONANSI) -c $(^:.y=.c) -o $@ 
 
-%Scanner.o: $(SRC_DIR)/%Scanner.l $(OBJ_DIR)/%Parser.o
-	$(LEX) $($(@F:.o=_LEX_FLAGS)) -t $(SRC_DIR)/$(@:.o=.l) > $(SRC_DIR)/$(@F:.o=.c)
-	$(CC) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$@
+obj/%Scanner.o: $(SRC_DIR)/%Scanner.l $(OBJ_DIR)/%Parser.o
+	$(LEX) $($(@F:.o=_LEX_FLAGS)) -t $(SRC_DIR)/$(@F:.o=.l) > $(SRC_DIR)/$(@F:.o=.c)
+	$(CC) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$(@F)
 
 
 # Rule for making other object files
-%.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+obj/%.o: $(SRC_DIR)/%.C
+	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$(@F)
 
--- a/dict-obj-file/Makefile
+++ b/dict-obj-file/Makefile
@@ -111,7 +111,10 @@
 
 
 # Installation
-install: $(TARGETS)
+install: $(TARGETS) $(M_BIN_DIR)/$(TARGET_SCRIPTS)
+
+$(M_BIN_DIR)/$(TARGET_SCRIPTS): $(L_BIN_DIR)/$(TARGET_SCRIPTS)
+	cp -f $(L_BIN_DIR)/$(TARGET_SCRIPTS) $(M_BIN_DIR)/$(TARGET_SCRIPTS)
 
 
 # Test
@@ -141,7 +144,6 @@
 %: $(OBJ_DIR)/%.o $(M_MOD_LIB) $(ALL_DEP_LIBS)
 	$(CCC) $(LDFLAGS) $< $(M_MOD_LIB) $(ALL_DEP_LIBS) $(MALLOCLIB) -lm -o $(L_BIN_DIR)/$@
 	@cp -f $(L_BIN_DIR)/$@ $(M_BIN_DIR)/$@
-	@cp -f $(L_BIN_DIR)/$(TARGET_SCRIPTS) $(M_BIN_DIR)/$(TARGET_SCRIPTS)
 
 
 # Rule for build cleaning
-------------- next part --------------
--- a/local/modules.txt
+++ b/local/modules.txt
@@ -7,5 +7,4 @@
 svn https://svn-dev.wwpdb.org/svn-rcsb/core/modules/cif-file-util cif-file-util Latest
 svn https://svn-dev.wwpdb.org/svn-rcsb/core/modules/dict-obj-file dict-obj-file Latest
 svn https://svn-dev.wwpdb.org/svn-rcsb/pdbml/modules/pdbml-parser pdbml-parser Latest
-svn https://svn-dev.wwpdb.org/svn-rcsb/pdbml/modules/pdbml-parser pdbml-parser Latest
 svn https://svn-dev.wwpdb.org/svn-wwpdb/third-party/cctbx cctbx Latest
-------------- next part --------------
--- a/Makefile
+++ b/Makefile
@@ -12,9 +12,7 @@
 CLEAN_DOC_SCRIPT = clean_doc.sh
 EXPORT_SCRIPT = export.sh
 
-all: 
-	@echo
-	@echo ------- compile targets are compile_lnx_38, compile_lnx_41, and compile_osx -------
+all: compile_lnx_41
 
 compile:  
 	@echo
@@ -69,16 +67,10 @@
          ./$(COMPILE_SCRIPT)'
 
 compile_lnx_41:
-	@sh -c 'cd ./$(UTIL_MODULE); \
+	+ at sh -c 'cd ./$(UTIL_MODULE); \
         export PIC=-fPIC; \
-        export WWPDB_PYTHON_INC=/apps/python/include/python2.5; \
-	export WWPDB_PYTHON_LIB_DIR=/apps/python/lib; \
-        export WWPDB_PYTHON_LIB=python2.5; \
-        export WWPDB_BOOST_INC=/apps/boost/include/boost-1_41; \
-        export WWPDB_BOOST_PYTHON_LIB_DIR=/apps/boost/lib; \
-        export WWPDB_BOOST_PYTHON_LIB=boost_python-gcc41-mt-1_41; \
-        export WWPDB_XERCESC_INC=/apps/xerces-3.0.1/include; \
-        export WWPDB_XERCESC_LIB_DIR=/apps/xerces-3.0.1/lib; \
+        export WWPDB_XERCESC_INC=/usr/include; \
+        export WWPDB_XERCESC_LIB_DIR=/usr/lib; \
         export WWPDB_XERCESC_LIB=xerces-c; \
         ./$(COMPILE_SCRIPT)'
 
-------------- next part --------------
--- a/cif-file/Makefile
+++ b/cif-file/Makefile
@@ -133,11 +133,13 @@
 $(L_MOD_LIB): $(OBJ_FILES)
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_FILES) $(OBJ_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/cif-file-util/Makefile
+++ b/cif-file-util/Makefile
@@ -133,11 +133,13 @@
 $(L_MOD_LIB): $(OBJ_FILES)
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_FILES) $(OBJ_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/cif-parser/Makefile
+++ b/cif-parser/Makefile
@@ -170,6 +170,8 @@
 $(L_MOD_LIB): $(addprefix obj/,$(OBJ_FILES))
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_FILES) $(OBJ_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
@@ -179,14 +181,14 @@
 	@sh -c 'cd $(SRC_DIR); $(YACC) $(${^F:.y=_YACC_FLAGS}) ../$<'
 	mv $(^:.y=.tab.c) $(^:.y=.c)
 	mv $(^:.y=.tab.h) $(^:.y=.h)
-	$(CC) $(CFLAGS_NONANSI) -c $(^:.y=.c) -o $@ 
+	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(^:.y=.c) -o $@
 
 obj/%Scanner.o: $(SRC_DIR)/%Scanner.l $(OBJ_DIR)/%Parser.o
 	$(LEX) $($(@F:.o=_LEX_FLAGS)) -t $(SRC_DIR)/$(@F:.o=.l) > $(SRC_DIR)/$(@F:.o=.c)
-	$(CC) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$(@F)
+	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$(@F)
 
 
 # Rule for making other object files
 obj/%.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$(@F)
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$(@F)
 
--- a/common/Makefile
+++ b/common/Makefile
@@ -145,11 +145,13 @@
 $(L_MOD_LIB): $(OBJ_FILES)
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_FILES) $(OBJ_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/dict-obj-file/Makefile
+++ b/dict-obj-file/Makefile
@@ -195,6 +195,8 @@
 $(L_MOD_LIB): $(OBJ_OTHER_FILES)
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_OTHER_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_OTHER_FILES) $(OBJ_OTHER_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_OTHER_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
@@ -206,5 +208,5 @@
 
 # Phony rule for making object files
 %.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/pdbml-parser/Makefile
+++ b/pdbml-parser/Makefile
@@ -211,6 +211,8 @@
 $(L_MOD_LIB): $(OBJ_OTHER_FILES)
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_OTHER_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_OTHER_FILES) $(OBJ_OTHER_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_OTHER_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
@@ -225,5 +227,5 @@
 
 # Phony rule for making object files
 %.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/regex/Makefile
+++ b/regex/Makefile
@@ -144,13 +144,15 @@
 $(L_MOD_LIB): $(OBJ_FILES)
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_FILES) $(OBJ_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.c
-	$(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $< -o $(OBJ_DIR)/$@
 
 
 # Extra, non-used in PDB build
@@ -181,7 +183,7 @@
 	$(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/main.c -o $@
 
 $(OBJ_DIR)/split.o: $(H) $(HEADER_FILES) $(SRC_DIR)/split.c 
-	$(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/split.c -o $@
+	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/split.c -o $@
 
 debug.o: $(H) $(HEADER_FILES) $(SRC_DIR)/debug.c $(L_INCL_DIR)/debug.ih
 	$(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/debug.c -o $(OBJ_DIR)/$@
--- a/tables/Makefile
+++ b/tables/Makefile
@@ -130,11 +130,13 @@
 $(L_MOD_LIB): $(OBJ_FILES)
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
+	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_FILES) $(OBJ_FILES:.o=.lo))
+	mkdir -p $(M_LIB_DIR)/.libs && cp -f -t $(M_LIB_DIR)/.libs $(addprefix $(OBJ_DIR)/.libs/,$(OBJ_FILES))
 	$(RANLIB) $@
 	@echo $@ " is up to date."
 
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,4 @@
 # Top level Makefile
-
 UTIL_LOC = https://svn-dev.wwpdb.org/svn-rcsb/build/util
 UTIL_MODULE = util
 CHECKOUT_SCRIPT = checkout.sh
@@ -66,19 +65,37 @@
          export WWPDB_XERCESC_LIB=xerces-c; \
          ./$(COMPILE_SCRIPT)'
 
-compile_lnx_41:
+# lkajan: the reason for this is that I do not want to set prerequisites here just now, so I make it made always
+.PHONY: lib/librcsb-core-wrapper.la
+lib/librcsb-core-wrapper.la:
+	+sh -c '\
+        export PIC=-fPIC; \
+        export WWPDB_PYTHON_INC=/apps/python/include/python2.5; \
+	export WWPDB_PYTHON_LIB_DIR=/apps/python/lib; \
+        export WWPDB_PYTHON_LIB=python2.5; \
+        export WWPDB_BOOST_INC=/apps/boost/include/boost-1_41; \
+        export WWPDB_BOOST_PYTHON_LIB_DIR=/apps/boost/lib; \
+        export WWPDB_BOOST_PYTHON_LIB=boost_python-gcc41-mt-1_41; \
+        export WWPDB_XERCESC_INC=/apps/xerces-3.0.1/include; \
+        export WWPDB_XERCESC_LIB_DIR=/apps/xerces-3.0.1/lib; \
+        export WWPDB_XERCESC_LIB=xerces-c; \
+	( cd ./$(UTIL_MODULE); ./$(COMPILE_SCRIPT) ); \
+	libtool --mode=link $(CXX) -version-info 0:0:0 -rpath /usr/lib $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -l$${WWPDB_XERCESC_LIB} -o lib/librcsb-core-wrapper.la lib/*.lo'
+
+compile_lnx_41: lib/librcsb-core-wrapper.la
 	+ at sh -c 'cd ./$(UTIL_MODULE); \
         export PIC=-fPIC; \
         export WWPDB_XERCESC_INC=/usr/include; \
         export WWPDB_XERCESC_LIB_DIR=/usr/lib; \
         export WWPDB_XERCESC_LIB=xerces-c; \
-        ./$(COMPILE_SCRIPT)'
+        exit 0;'
 
 debug:
 	@sh -c 'cd ./$(UTIL_MODULE); ./$(COMPILE_SCRIPT) debug'
 
 clean_build: 
 	@sh -c 'cd ./$(UTIL_MODULE); ./$(CLEAN_SCRIPT)'
+	@rm -rf lib/* lib/.??*
 
 test: test-all
 
-------------- next part --------------
--- a/Makefile
+++ b/Makefile
@@ -90,6 +90,22 @@
         export WWPDB_XERCESC_LIB=xerces-c; \
         exit 0;'
 
+# lkajan: for testing
+.PHONY: wrapper
+wrapper:
+	+ at sh -c 'cd ./$(UTIL_MODULE); \
+        export PIC=-fPIC; \
+        export WWPDB_PYTHON_INC=/usr/include/python2.7; \
+	export WWPDB_PYTHON_LIB_DIR=/apps/python/lib; \
+        export WWPDB_PYTHON_LIB=python2.7; \
+        export WWPDB_BOOST_INC=/apps/boost/include/boost-1_41; \
+        export WWPDB_BOOST_PYTHON_LIB_DIR=/apps/boost/lib; \
+        export WWPDB_BOOST_PYTHON_LIB=boost_python-mt-py27; \
+        export WWPDB_XERCESC_INC=/apps/xerces-3.0.1/include; \
+        export WWPDB_XERCESC_LIB_DIR=/apps/xerces-3.0.1/lib; \
+        export WWPDB_XERCESC_LIB=xerces-c; \
+        ( cd ../wrapper && make OPT=-O install );'
+
 debug:
 	@sh -c 'cd ./$(UTIL_MODULE); ./$(COMPILE_SCRIPT) debug'
 
--- a/wrapper/Makefile
+++ b/wrapper/Makefile
@@ -140,7 +140,7 @@
 $(L_MOD_LIB): $(OBJ_FILES) $(ALL_DEP_LIBS)
 #       Create module library
 
-	@cd $(OBJ_DIR); $(CCC) $(LINK_METHOD) $(EXT_LIBS_DIRS) $(OBJ_FILES) $(ALL_DEP_LIBS) $(EXT_LIBS) $(SYS_LIBS) -o ../$@
+	cd $(OBJ_DIR); $(CCC) $(LINK_METHOD) $(EXT_LIBS_DIRS) $(OBJ_FILES) -L../../lib/.libs -lrcsb-core-wrapper $(EXT_LIBS) $(SYS_LIBS) -o ../$@
 
 
 # Rule for making object files
-------------- next part --------------
--- /dev/null
+++ b/wrapper/python/setup.py.in
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+
+from distutils import sysconfig
+from distutils.core import setup, Extension
+import os
+import platform
+import sys
+
+# lkajan: we follow the example of libtorrent-rasterbar here - thank you very much for that!
+def parse_cmd(cmdline, prefix, keep_prefix = False):
+	ret = []
+	for token in cmdline.split():
+		if token[:len(prefix)] == prefix:
+			if keep_prefix:
+				ret.append(token)
+			else:
+				ret.append(token[len(prefix):])
+	return ret
+
+config_vars = sysconfig.get_config_vars()
+if "CFLAGS" in config_vars and "-Wstrict-prototypes" in config_vars["CFLAGS"]:
+	config_vars["CFLAGS"] = config_vars["CFLAGS"].replace("-Wstrict-prototypes", " ")
+if "OPT" in config_vars and "-Wstrict-prototypes" in config_vars["OPT"]:
+	config_vars["OPT"] = config_vars["OPT"].replace("-Wstrict-prototypes", " ")
+
+source_list = os.listdir(os.path.join(os.path.dirname(__file__), "src"))
+source_list = [os.path.join("src", s) for s in source_list if s.endswith(".C")]
+
+# g++ -O  -fPIC -ansi -Werror -Wall -Wno-deprecated   -DHAVE_STRCASECMP -DINCL_TEMPLATE_SRC -DHAVE_PLACEMENT_NEW  -I./include -I../include -I/usr/include/python2.7 -I/apps/boost/include/boost-1_41   -ftemplate-depth-128 -fno-inline -Wall -c src/TypeCodePyWrap.C -o ./obj/TypeCodePyWrap.o
+# g++ -shared -L/apps/boost/lib -L/apps/xerces-3.0.1/lib TypeCodePyWrap.o StlPyWrap.o CharPyWrap.o RcsbFilePyWrap.o ISTablePyWrap.o TableFilePyWrap.o CifFilePyWrap.o DicFilePyWrap.o DictObjFilePyWrap.o DataInfoPyWrap.o CifDataInfoPyWrap.o DictDataInfoPyWrap.o PdbMlFilePyWrap.o CorePyWrap.o -L../../lib/.libs -lrcsb-core-wrapper -lboost_python-mt-py27 -lxerces-c -lutil -lpthread -ldl -o ../lib/CorePyWrap.so
+extra_cmd = '@DEFINES@'
+
+setup( name='python-librcsb-core-wrapper',
+	version='1.000',
+	author = 'RCSB PDB Software Team',
+	author_email='sw-help at rcsb.rutgers.edu',
+	description = 'Python bindings for librcsb-core-wrapper',
+	long_description = 'Python bindings for librcsb-core-wrapper',
+	url = 'http://sw-tools.rcsb.org/apps/CORE-WRAPPER/index.html',
+	platforms = 'any',
+	license = 'RCSB PDB SOFTWARE LICENSE AGREEMENT',
+	ext_modules = [Extension('CorePyWrap',
+		sources = source_list,
+		language='c++',
+		include_dirs = ['../../include'] + parse_cmd(extra_cmd, '-I'),
+		library_dirs = ['../../lib/.libs'] + parse_cmd(extra_cmd, '-L'),
+		extra_compile_args = parse_cmd(extra_cmd, '-D', True),
+		libraries = ['rcsb-core-wrapper', 'boost_python-py%1d%1d' % ( sys.version_info[0], sys.version_info[1] )] + parse_cmd(extra_cmd, '-l'))],
+)
--- a/wrapper/Makefile
+++ b/wrapper/Makefile
@@ -101,11 +101,16 @@
 .PHONY: ../etc/Makefile.platform all install export clean clean_build
 
 
-all: install
+all: build
 
+.PHONY: build
+build: python/setup.py
 
 install: $(M_MOD_LIB)
 
+python/setup.py: python/setup.py.in
+	sed -e 's!@C++FLAGS@!$(C++FLAGS)!g; s!@DEFINES@!$(DEFINES)!g; s!@EXT_COMP_OPT@!$(EXT_COMP_OPT)!; s!@EXT_LIBS_DIRS@!$(EXT_LIBS_DIRS)!g; s!@EXT_LIBS@!$(EXT_LIBS)!g;' < "$<" > "$@"
+	ln -sf ../src python/src
 
 export:
 	mkdir -p $(EXPORT_DIR)
@@ -135,6 +140,7 @@
 	@rm -f $(M_MOD_LIB)
 	@rm -f $(M_AGR_LIB)
 	@rm -f *.pyc
+	@rm -f python/setup.py
 
 
 $(L_MOD_LIB): $(OBJ_FILES) $(ALL_DEP_LIBS)
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@
 CLEAN_DOC_SCRIPT = clean_doc.sh
 EXPORT_SCRIPT = export.sh
 
-all: compile_lnx_41
+all: wrapper
 
 compile:  
 	@echo
@@ -92,7 +92,7 @@
 
 # lkajan: for testing
 .PHONY: wrapper
-wrapper:
+wrapper: lib/librcsb-core-wrapper.la
 	+ at sh -c 'cd ./$(UTIL_MODULE); \
         export PIC=-fPIC; \
         export WWPDB_PYTHON_INC=/usr/include/python2.7; \
@@ -104,7 +104,7 @@
         export WWPDB_XERCESC_INC=/apps/xerces-3.0.1/include; \
         export WWPDB_XERCESC_LIB_DIR=/apps/xerces-3.0.1/lib; \
         export WWPDB_XERCESC_LIB=xerces-c; \
-        ( cd ../wrapper && make OPT=-O install );'
+        ( cd ../wrapper && make OPT=-O );'
 
 debug:
 	@sh -c 'cd ./$(UTIL_MODULE); ./$(COMPILE_SCRIPT) debug'
-------------- next part --------------
--- a/wrapper/src/DataInfoPyWrap.C
+++ b/wrapper/src/DataInfoPyWrap.C
@@ -31,23 +31,23 @@
     }
 
     virtual ::std::vector< std::string > const & GetCatAttribute( ::std::string const & catName, ::std::string const & refCatName, ::std::string const & refAttribName ){
-        throw std::logic_error("warning W1049: This method could not be overriden in Python - method returns reference to local variable!");
+        throw std::logic_error("warning W1049: This method could not be overridden in Python - method returns reference to local variable!");
     }
 
     virtual ::std::vector< std::string > const & GetCatKeys( ::std::string const & catName ){
-        throw std::logic_error("warning W1049: This method could not be overriden in Python - method returns reference to local variable!");
+        throw std::logic_error("warning W1049: This method could not be overridden in Python - method returns reference to local variable!");
     }
 
     virtual ::std::vector< std::string > const & GetCatNames(  ){
-        throw std::logic_error("warning W1049: This method could not be overriden in Python - method returns reference to local variable!");
+        throw std::logic_error("warning W1049: This method could not be overridden in Python - method returns reference to local variable!");
     }
 
     virtual ::std::vector< std::string > const & GetItemAttribute( ::std::string const & itemName, ::std::string const & refCatName, ::std::string const & refAttribName ){
-        throw std::logic_error("warning W1049: This method could not be overriden in Python - method returns reference to local variable!");
+        throw std::logic_error("warning W1049: This method could not be overridden in Python - method returns reference to local variable!");
     }
 
     virtual ::std::vector< std::string > const & GetItemsNames(  ){
-        throw std::logic_error("warning W1049: This method could not be overriden in Python - method returns reference to local variable!");
+        throw std::logic_error("warning W1049: This method could not be overridden in Python - method returns reference to local variable!");
     }
 
     virtual void GetItemsTypes( ::std::vector< eTypeCode > & attribsTypes, ::std::string const & catName, ::std::vector< std::string > const & attribsNames ) {
-------------- next part --------------
--- a/cif-file/src/ParentChild.C
+++ b/cif-file/src/ParentChild.C
@@ -287,7 +287,7 @@
 #ifdef VLAD_FIX
     if (parKeys.empty())
     {
-        cout << "EMPTY PARENT KEYS !!!" << endl;
+        cerr << "EMPTY PARENT KEYS !!!" << endl;
         exit(1);
     }
 #endif
-------------- next part --------------
--- a/cif-file/Makefile
+++ b/cif-file/Makefile
@@ -141,5 +141,5 @@
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/cif-file-util/Makefile
+++ b/cif-file-util/Makefile
@@ -141,5 +141,5 @@
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/cif-parser/Makefile
+++ b/cif-parser/Makefile
@@ -181,14 +181,14 @@
 	@sh -c 'cd $(SRC_DIR); $(YACC) $(${^F:.y=_YACC_FLAGS}) ../$<'
 	mv $(^:.y=.tab.c) $(^:.y=.c)
 	mv $(^:.y=.tab.h) $(^:.y=.h)
-	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(^:.y=.c) -o $@
+	libtool --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS_NONANSI) -c $(^:.y=.c) -o $@
 
 obj/%Scanner.o: $(SRC_DIR)/%Scanner.l $(OBJ_DIR)/%Parser.o
 	$(LEX) $($(@F:.o=_LEX_FLAGS)) -t $(SRC_DIR)/$(@F:.o=.l) > $(SRC_DIR)/$(@F:.o=.c)
-	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$(@F)
+	libtool --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$(@F)
 
 
 # Rule for making other object files
 obj/%.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$(@F)
+	libtool --mode=compile $(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$(@F)
 
--- a/common/Makefile
+++ b/common/Makefile
@@ -153,5 +153,5 @@
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/dict-obj-file/Makefile
+++ b/dict-obj-file/Makefile
@@ -142,7 +142,7 @@
 
 # Rule for making executables
 %: $(OBJ_DIR)/%.o $(M_MOD_LIB) $(ALL_DEP_LIBS)
-	$(CCC) $(LDFLAGS) $< $(M_MOD_LIB) $(ALL_DEP_LIBS) $(MALLOCLIB) -lm -o $(L_BIN_DIR)/$@
+	$(CCC) $(CPPFLAGS) $(LDFLAGS) $< $(M_MOD_LIB) $(ALL_DEP_LIBS) $(MALLOCLIB) -lm -o $(L_BIN_DIR)/$@
 	@cp -f $(L_BIN_DIR)/$@ $(M_BIN_DIR)/$@
 
 
@@ -203,10 +203,10 @@
 
 # Rule for making object files
 $(OBJ_DIR)/%.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $@
+	$(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $@
 
 
 # Phony rule for making object files
 %.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/etc/make.platform.gnu4
+++ b/etc/make.platform.gnu4
@@ -108,8 +108,8 @@
 C_WARNINGS=$(WARNINGS)
 
 # C compiler flags
-CFLAGS=$(OPT) $(ABI) $(PIC) $(ANSI_C_FLAG) $(C_WARNINGS) $(DEFINES) $(INCLUDES)
-CFLAGS_NONANSI=$(OPT) $(ABI) $(PIC) $(NON_ANSI_C_FLAG) $(DEFINES) $(INCLUDES) 
+CFLAGS += $(OPT) $(ABI) $(PIC) $(ANSI_C_FLAG) $(C_WARNINGS) $(DEFINES) $(INCLUDES)
+CFLAGS_NONANSI += $(OPT) $(ABI) $(PIC) $(NON_ANSI_C_FLAG) $(DEFINES) $(INCLUDES)
 
 ## C++ compiler
 ## This part defines C++ compiler information
@@ -128,9 +128,9 @@
 EXT=C
 
 # C++ compiler flags
-C++FLAGS=$(OPT) $(ABI) $(PIC) $(ANSI_C_PLUS_FLAG) $(C_PLUS_WARNINGS) \
+C++FLAGS= $(CXXFLAGS) $(OPT) $(ABI) $(PIC) $(ANSI_C_PLUS_FLAG) $(C_PLUS_WARNINGS) \
   $(DEFINES) $(INCLUDES)
-C++FLAGS_NONANSI=$(OPT) $(ABI) $(PIC) $(NON_ANSI_C_PLUS_FLAG) \
+C++FLAGS_NONANSI= $(CXXFLAGS) $(OPT) $(ABI) $(PIC) $(NON_ANSI_C_PLUS_FLAG) \
   $(C_PLUS_WARNINGS) $(DEFINES) $(INCLUDES)
 
 # C++FLAGS_RELAXED should be set to avoid warnings reported by third party
@@ -158,8 +158,8 @@
 STATIC_LINKING=-static
 
 # Linker flags
-LDFLAGS=$(ABI) -w $(STATIC_LINKING)
-LDFLAGS_NO_STATIC=$(ABI) -w
+LDFLAGS += $(ABI) -w $(STATIC_LINKING)
+LDFLAGS_NO_STATIC += $(ABI) -w
 
 # Fortran linker
 F77_LINKER=f77
--- a/pdbml-parser/Makefile
+++ b/pdbml-parser/Makefile
@@ -157,7 +157,7 @@
 
 # General rule for making executables
 %: $(OBJ_DIR)/%.o $(M_MOD_LIB) $(ALL_DEP_LIBS)
-	$(CCC) $(LDFLAGS_NO_STATIC) $(EXT_LIBS_DIRS) $< $(M_MOD_LIB) $(ALL_DEP_LIBS) $(EXT_LIBS) $(MALLOCLIB) -lm -o $(L_BIN_DIR)/$@
+	$(CCC) $(CPPFLAGS) $(LDFLAGS_NO_STATIC) $(EXT_LIBS_DIRS) $< $(M_MOD_LIB) $(ALL_DEP_LIBS) $(EXT_LIBS) $(MALLOCLIB) -lm -o $(L_BIN_DIR)/$@
 	@cp -f $(L_BIN_DIR)/$@ $(M_BIN_DIR)/$@
 
 
@@ -222,10 +222,10 @@
 
 # General rule for making object files
 $(OBJ_DIR)/%.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) -c $< -o $@
+	$(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $@
 
 
 # Phony rule for making object files
 %.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/tables/Makefile
+++ b/tables/Makefile
@@ -138,5 +138,5 @@
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CCC) $(CPPFLAGS) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
 
--- a/wrapper/Makefile
+++ b/wrapper/Makefile
@@ -146,10 +146,10 @@
 $(L_MOD_LIB): $(OBJ_FILES) $(ALL_DEP_LIBS)
 #       Create module library
 
-	cd $(OBJ_DIR); $(CCC) $(LINK_METHOD) $(EXT_LIBS_DIRS) $(OBJ_FILES) -L../../lib/.libs -lrcsb-core-wrapper $(EXT_LIBS) $(SYS_LIBS) -o ../$@
+	cd $(OBJ_DIR); $(CCC) $(CPPFLAGS) $(LINK_METHOD) $(EXT_LIBS_DIRS) $(OBJ_FILES) -L../../lib/.libs -lrcsb-core-wrapper $(EXT_LIBS) $(SYS_LIBS) -o ../$@
 
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.C
-	$(CCC) $(C++FLAGS) $(EXT_COMP_OPT) -c $< -o $(OBJ_DIR)/$@
+	$(CCC) $(CPPFLAGS) $(C++FLAGS) $(EXT_COMP_OPT) -c $< -o $(OBJ_DIR)/$@
 
--- a/regex/Makefile
+++ b/regex/Makefile
@@ -152,7 +152,7 @@
 
 # Rule for making object files
 %.o: $(SRC_DIR)/%.c
-	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $< -o $(OBJ_DIR)/$@
+	libtool --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $< -o $(OBJ_DIR)/$@
 
 
 # Extra, non-used in PDB build
@@ -180,18 +180,18 @@
 
 
 $(OBJ_DIR)/main.o: $(H) $(HEADER_FILES) $(SRC_DIR)/main.c $(L_INCL_DIR)/main.ih
-	$(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/main.c -o $@
+	$(CC) $(CPPFLAGS) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/main.c -o $@
 
 $(OBJ_DIR)/split.o: $(H) $(HEADER_FILES) $(SRC_DIR)/split.c 
-	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/split.c -o $@
+	libtool --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/split.c -o $@
 
 debug.o: $(H) $(HEADER_FILES) $(SRC_DIR)/debug.c $(L_INCL_DIR)/debug.ih
-	$(CC) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/debug.c -o $(OBJ_DIR)/$@
+	$(CC) $(CPPFLAGS) $(CFLAGS_NONANSI) -DPOSIX_MISTAKE -c $(SRC_DIR)/debug.c -o $(OBJ_DIR)/$@
 
 
 # tester
 $(TARGET): $(ALLOBJS)
-	$(CC) $(CFLAGS) -DPOSIX_MISTAKE $(LDFLAGS) $(ALLOBJS) $(LIBS) -o $@
+	$(CC) $(CPPFLAGS) $(CFLAGS) -DPOSIX_MISTAKE $(LDFLAGS) $(ALLOBJS) $(LIBS) -o $@
 
 
 # regression test
-------------- next part --------------
--- a/etc/Doxyfile-template
+++ b/etc/Doxyfile-template
@@ -123,7 +123,7 @@
 # path before files name in the file list and in the header files. If set 
 # to NO the shortest path that makes the file name unique will be used.
 
-FULL_PATH_NAMES        = NO
+FULL_PATH_NAMES        = YES
 
 # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
 # can be used to strip a user-defined part of the path. Stripping is 
@@ -250,7 +250,7 @@
 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
 # will be included in the documentation.
 
-EXTRACT_PRIVATE        = YES
+EXTRACT_PRIVATE        = NO
 
 # If the EXTRACT_STATIC tag is set to YES all static members of a file 
 # will be included in the documentation.
@@ -423,26 +423,26 @@
 # The QUIET tag can be used to turn on/off the messages that are generated 
 # by doxygen. Possible values are YES and NO. If left blank NO is used.
 
-QUIET                  = NO
+QUIET                  = YES
 
 # The WARNINGS tag can be used to turn on/off the warning messages that are 
 # generated by doxygen. Possible values are YES and NO. If left blank 
 # NO is used.
 
-WARNINGS               = YES
+WARNINGS               = NO
 
 # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
 # for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
 # automatically be disabled.
 
-WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_UNDOCUMENTED   = NO
 
 # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
 # potential errors in the documentation, such as not documenting some 
 # parameters in a documented function, or documenting parameters that 
 # don't exist or using markup commands wrongly.
 
-WARN_IF_DOC_ERROR      = YES
+WARN_IF_DOC_ERROR      = NO
 
 # This WARN_NO_PARAMDOC option can be abled to get warnings for 
 # functions that are documented, but have no documentation for their parameters 
@@ -798,7 +798,7 @@
 # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
 # generate Latex output.
 
-GENERATE_LATEX         = YES
+GENERATE_LATEX         = NO
 
 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
--- a/Makefile
+++ b/Makefile
@@ -90,10 +90,19 @@
 
 ###
 doc:
-	@sh -c 'cd ./$(UTIL_MODULE); ./$(DOC_SCRIPT)'
+	rm -rf rcsb && cp -r include rcsb
+	grep -lr '^#include "' rcsb | xargs sed -i -e '/^#include "/{ s/#include "\([^"]\+\)"/#include <rcsb\/\1>/; }'
+	mkdir -p docs/doxyfiles
+	echo PROJECT_NAME = librcsb-core-wrapper > docs/doxyfiles/Doxyfile
+	echo PROJECT_NUMBER = $(shell dpkg-parsechangelog | grep '^Version' | sed -e 's/Version: \(.*\)-[^-]\+$$/\1/g;') >> docs/doxyfiles/Doxyfile
+	echo OUTPUT_DIRECTORY = docs >> docs/doxyfiles/Doxyfile
+	echo INPUT = rcsb >> docs/doxyfiles/Doxyfile
+	cat etc/Doxyfile-template >> docs/doxyfiles/Doxyfile
+	doxygen docs/doxyfiles/Doxyfile
 
 clean_doc:
-	@sh -c 'cd ./$(UTIL_MODULE); ./$(CLEAN_DOC_SCRIPT)'
+	rm -rf docs
+	rm -rf rcsb
 
 export: clean
 	@sh -c 'cd ./$(UTIL_MODULE); ./$(EXPORT_SCRIPT)'
-------------- next part --------------
--- a/util/compile.sh
+++ b/util/compile.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # This script builds dependent modules
 
--- a/etc/createdoc.sh
+++ b/etc/createdoc.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 #  File:  createdoc.sh
 #
--- a/etc/platform.sh
+++ b/etc/platform.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 #  File:  platform.sh
 #  Date:  6-Aug-97  J. Westbrook


More information about the Debian-med-packaging mailing list