Added a Makefile with some scons shortcuts and rules for generating a debian package.
jkaeber [Fri, 24 Aug 2007 13:28:38 +0000 (13:28 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@408 270642c3-0616-0410-b53a-bc976706d245

Makefile [new file with mode: 0644]
control [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..0c860c4
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,96 @@
+#----------------------------------------------------------------------
+# Some SCONS shortcuts
+#----------------------------------------------------------------------
+SCONS=scons
+
+default: build
+
+build:
+       $(SCONS)
+
+clean:
+       $(SCONS) --clean
+
+all_docs all_tests:
+       $(SCONS) $@
+
+#----------------------------------------------------------------------
+# Subversion stuff
+#----------------------------------------------------------------------
+SVN_REVISION = $(shell svn info|grep '^Revision: '|awk '{print $$2}')
+
+svn_version:
+       @echo $(SVN_REVISION)
+
+#----------------------------------------------------------------------
+# Building SENF requires some debian packages
+#----------------------------------------------------------------------
+DEB_BASE   = scons build-essential binutils-dev
+DEB_BOOST  = libboost-dev libboost-test-dev
+DEB_BOOST += libboost-date-time-dev libboost-regex-dev libboost-thread-dev
+DEB_DOC    = doxygen dia tidy xsltproc graphviz
+
+prerequisites:
+       aptitude install $(DEB_BASE) $(DEB_BOOST) $(DEB_DOC)
+
+#----------------------------------------------------------------------
+# Debian package info
+#----------------------------------------------------------------------
+PKG_NAME=senf-dev
+PKG_ARCH=i386
+PKG_VERS=0.0.$(SVN_REVISION)-1
+PKG_FILE = $(PKG_NAME)-$(PKG_VERS)_$(PKG_ARCH).deb
+
+#----------------------------------------------------------------------
+# Debian package structure
+#----------------------------------------------------------------------
+DEB_TOP = ./debian
+DEB_CTL = $(DEB_TOP)/DEBIAN
+DEB_LIB = $(DEB_TOP)/usr/lib/senf
+DEB_INC = $(DEB_TOP)/usr/include/senf
+DEB_DOC = $(DEB_TOP)/usr/share/doc/senf
+
+#----------------------------------------------------------------------
+# Debian package content
+#----------------------------------------------------------------------
+SENF_LIBS = *.a
+SENF_HDRS = $$(find -path './XXXdebian' -prune \
+                 -o -iname \*.h \
+                 -o -iname \*.hh \
+                 -o -iname \*.ih \
+                 -o -iname \*.c \
+                 -o -iname \*.cc \
+                 -o -iname \*.ct \
+                 -o -iname \*.cci \
+                 -o -iname \*.cti \
+                 -o -iname \*.mpp \
+)
+
+package: $(PKG_FILE)
+$(PKG_FILE): build
+       rm -rf $(DEB_TOP)
+       mkdir -p $(DEB_CTL) $(DEB_INC) $(DEB_LIB) $(DEB_DOC)
+       find $(DEB_TOP) -type d | xargs chmod 755
+       tar cf - $(SENF_HDRS) | (cd $(DEB_INC) && tar xf -)
+       tar cf - $(SENF_LIBS) | (cd $(DEB_LIB) && tar xf -)
+       sed -e 's,PKG_VERSION,$(PKG_VERS),' control > $(DEB_CTL)/control
+       $(MAKE) deb-doc
+       dpkg-deb --build debian $(PKG_FILE)
+
+#----------------------------------------------------------------------
+# Extract documentation files from source tree
+#----------------------------------------------------------------------
+deb-doc:
+       rsync -rz \
+               --filter="- debian/*" \
+               --filter="- .svn" \
+               --filter="+ */" \
+               --filter="+ *.html" \
+               --filter="+ *.css" \
+               --filter="+ *.png" \
+               --filter="+ *.php" \
+               --filter="+ *.idx" \
+               --filter="+ *.log" \
+               --filter="- *" \
+               . $(DEB_DOC)
+
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..1bc1977
--- /dev/null
+++ b/control
@@ -0,0 +1,11 @@
+Package: senf-dev
+Version: PKG_VERSION
+Section: base
+Priority: optional
+Architecture: i386
+Depends:libboost-dev, libboost-date-time-dev, libboost-regex-dev,
+        libboost-thread-dev
+Maintainer: Joachim Kaeber <joachim.kaeber@fokus.fraunhofer.de>
+Description: The SENF Extensible Network Framework
+  The SENF Framework is a collection of loosely coupled modules
+  for writing network oriented applications in C++.