--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile Thu Apr 21 14:57:45 2011 +0100
@@ -0,0 +1,202 @@
+#
+# Copyright 2004-2006 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Top level makefile for DTN2.
+#
+
+#
+# Define a set of dispatch rules that simply call make on the
+# constituent subdirectories. Note that the test directory isn't built
+# by default.
+#
+
+SUBDIRS := applib servlib daemon apps sim
+
+all: checkconfigure $(SUBDIRS)
+
+#
+# If srcdir/builddir aren't set by some other makefile,
+# then default to .
+#
+ifeq ($(SRCDIR),)
+SRCDIR := .
+BUILDDIR := .
+endif
+
+#
+# Include the common rules
+#
+include Rules.make
+include $(SRCDIR)/dtn-version.mk
+
+#
+# Dependency rules between subdirectories needed for make -j
+#
+applib servlib: dtn-version.o
+daemon: applib servlib
+apps: applib servlib
+sim: servlib
+
+#
+# Rules for the version files
+#
+dtn-version.o: dtn-version.c
+dtn-version.c: dtn-version.h
+dtn-version.h: dtn-version.h.in dtn-version.dat
+ $(OASYS_ETCDIR)/tools/subst-version $(SRCDIR)/dtn-version.dat \
+ < $(SRCDIR)/dtn-version.h.in > dtn-version.h
+
+vpath dtn-version.h.in $(SRCDIR)
+vpath dtn-version.h $(SRCDIR)
+vpath dtn-version.c $(SRCDIR)
+vpath dtn-version.dat $(SRCDIR)
+
+bump-version:
+ cd $(SRCDIR) && tools/bump-version dtn-version.dat
+
+#
+# Test rules
+#
+test: tests
+tests:
+ $(MAKE) all
+ $(MAKE) -C test
+
+dtn-tests:
+ $(MAKE) -C test
+
+#
+# Installation rules
+#
+install: installdirs installbin installlib installetc
+
+installdirs:
+ for dir in $(DESTDIR)$(localstatedir)/dtn \
+ $(DESTDIR)$(localstatedir)/dtn/bundles \
+ $(DESTDIR)$(localstatedir)/dtn/db ; do \
+ (mkdir -p $$dir; chmod 755 $$dir; \
+ [ x$(DTN_USER) = x ] || chown $(DTN_USER) $$dir); \
+ done
+
+ [ -d $(DESTDIR)$(bindir) ] || \
+ (mkdir -p $(DESTDIR)$(bindir); chmod 755 $(DESTDIR)$(bindir))
+
+ [ -d $(DESTDIR)$(libdir) ] || \
+ (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
+
+installbin: installdirs
+ for prog in daemon/dtnd \
+ tools/dtnd-control \
+ apps/dtncat/dtncat \
+ apps/dtncp/dtncp \
+ apps/dtncpd/dtncpd \
+ apps/dtnhttpproxy/dtnhttpproxy \
+ apps/dtnperf/dtnperf-client \
+ apps/dtnperf/dtnperf-server \
+ apps/dtnping/dtnping \
+ apps/dtnping/dtntraceroute \
+ apps/dtnrecv/dtnrecv \
+ apps/dtnsend/dtnsend \
+ apps/dtntunnel/dtntunnel \
+ apps/num2sdnv/num2sdnv \
+ apps/num2sdnv/sdnv2num ; do \
+ ($(INSTALL_PROGRAM) $$prog $(DESTDIR)$(bindir)) ; \
+ done
+
+ [ x$(DTN_USER) = x ] || chown -R $(DTN_USER) $(DESTDIR)$(bindir)
+
+installlib: installdirs
+ [ x$(SHLIBS) = x ] || \
+ for lib in applib/libdtnapi-$(DTN_VERSION).$(SHLIB_EXT) \
+ applib/libdtnapi++-$(DTN_VERSION).$(SHLIB_EXT) \
+ applib/tcl/libdtntcl-$(DTN_VERSION).$(SHLIB_EXT) ; do \
+ ($(INSTALL_PROGRAM) $$lib $(DESTDIR)$(libdir)) ; \
+ done
+
+ for lib in libdtnapi libdtnapi++ libdtntcl ; do \
+ (cd $(DESTDIR)$(libdir) && rm -f $$lib.$(SHLIB_EXT) && \
+ ln -s $$lib-$(DTN_VERSION).$(SHLIB_EXT) $$lib.$(SHLIB_EXT)) \
+ done
+
+installetc: installdirs
+ [ -d $(DESTDIR)$(sysconfdir) ] || mkdir -p $(DESTDIR)$(sysconfdir)
+ if [ -f $(DESTDIR)$(sysconfdir)/dtn.conf ]; then \
+ echo "WARNING: $(DESTDIR)$(sysconfdir)/dtn.conf exists -- not overwriting"; \
+ else \
+ $(INSTALL_DATA) daemon/dtn.conf $(DESTDIR)$(sysconfdir)/dtn.conf; \
+ fi
+
+ $(INSTALL_DATA) servlib/routing/router.xsd $(DESTDIR)$(sysconfdir)/router.xsd
+ $(INSTALL_DATA) servlib/conv_layers/clevent.xsd $(DESTDIR)$(sysconfdir)/clevent.xsd
+
+#
+# Generate the doxygen documentation
+#
+doxygen:
+ doxygen doc/doxyfile
+
+#
+# Generate XML schema documentation
+# Requires:
+# xsddoc-1.0 (http://xframe.sourceforge.net/xsddoc/)
+# java
+#
+xsddoc:
+ mkdir -p doc/router-xsddoc
+ xsddoc -t "External Router Interface" -o doc/router-xsddoc -q \
+ servlib/routing/router.xsd
+ mkdir -p doc/cla-xsddoc
+ xsddoc -t "External CLA Interface" -o doc/cla-xsddoc -q \
+ servlib/conv_layers/clevent.xsd
+# mkdir -p doc/router-xsddoc
+# xsddoc -t "External Data Store Interface" -o doc/ds-xsddoc -q \
+# oasys/storage/DS.xsd
+
+xsdbindings:
+ $(MAKE) -C servlib xsdbindings
+
+#
+# Build a TAGS database. Note this includes all the sources so it gets
+# header files as well.
+#
+.PHONY: TAGS tags
+tags TAGS:
+ cd $(SRCDIR) && \
+ find . -name \*.h -or -name \*.c -or -name \*.cc | \
+ xargs etags -l c++
+ find . -name \*.h -or -name \*.c -or -name \*.cc | \
+ xargs ctags
+
+#
+# And a rule to make sure that configure has been run recently enough.
+#
+.PHONY: checkconfigure
+checkconfigure: Rules.make
+
+Rules.make: $(SRCDIR)/configure $(OASYS_ETCDIR)/Rules.make.in
+ @[ ! x`echo "$(MAKECMDGOALS)" | grep clean` = x ] || \
+ (echo "$@ is out of date, need to rerun configure" && \
+ exit 1)
+
+$(SRCDIR)/configure $(OASYS_ETCDIR)/Rules.make.in:
+ @echo SRCDIR: $(SRCDIR)
+ @echo error -- Makefile did not set SRCDIR properly
+ @exit 1
+
+CFGDIRS := oasys/include oasys
+CFGFILES = Rules.make System.make oasys/share oasys/lib oasys/include/oasys
+GENFILES = doc/manual/man/*.txt