[prev in list] [next in list] [prev in thread] [next in thread] 

List:       semsdev
Subject:    [Semsdev] git:master: adds libsems1-dev package,
From:       Stefan Sayer <stefan.sayer () googlemail ! com>
Date:       2011-10-20 23:18:18
Message-ID: 20111020231818.3152CEF8074 () rimmer ! ryngle ! com
[Download RAW message or body]

Module: sems
Branch: master
Commit: c88ed81e385147273570963b8dfd14b97471afc9
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=c88ed81e385147273570963b8dfd14b97471afc9


Author: Stefan Sayer <stefan.sayer@frafos.com>
Committer: Stefan Sayer <stefan.sayer@frafos.com>
Date:   Fri Oct 21 01:16:41 2011 +0200

adds libsems1-dev package, to build modules out-of-tree

based on a patch by Michael Prokop mprokop at sipwise dot com

---

 Makefile.defs                          |    5 ++-
 apps/examples/out_of_tree/Makefile     |   10 +++++++
 apps/examples/out_of_tree/MyApp.cpp    |   42 ++++++++++++++++++++++++++++++++
 apps/examples/out_of_tree/MyApp.h      |   28 +++++++++++++++++++++
 apps/examples/out_of_tree/Readme.myapp |   15 +++++++++++
 core/plug-in/Makefile.app_module       |   18 ++++++++-----
 core/plug-in/Makefile.audio_module     |   12 +++++++--
 pkg/debian/control                     |   13 +++++++++-
 pkg/debian/libsems1-dev.install        |   11 ++++++++
 pkg/debian/rules                       |   12 ++++++---
 10 files changed, 149 insertions(+), 17 deletions(-)

diff --git a/Makefile.defs b/Makefile.defs
index 68ade21..18d6076 100644
--- a/Makefile.defs
+++ b/Makefile.defs
@@ -93,8 +93,9 @@ LDFLAGS += -lm
 GETOS=$(COREPATH)/compat/getos
 GETARCH=$(COREPATH)/compat/getarch
 
-OS   := $(shell $(CC) $(EXTRA_CFLAGS) -o $(GETOS) $(GETOS).c && $(GETOS))
-ARCH := $(shell $(CC) $(EXTRA_CFLAGS) -o $(GETARCH) $(GETARCH).c && $(GETARCH))
+
+OS   := $(shell if [ -f $(GETOS) ] ; then $(GETOS); else  $(CC) $(EXTRA_CFLAGS) -o \
$(GETOS) $(GETOS).c && $(GETOS); fi) +ARCH := $(shell if [ -f $(GETARCH) ] ; then \
$(GETARCH); else $(CC) $(EXTRA_CFLAGS) -o $(GETARCH) $(GETARCH).c && $(GETARCH); fi)  \
  ifdef USE_THREADPOOL
 CPPFLAGS += -DSESSION_THREADPOOL
diff --git a/apps/examples/out_of_tree/Makefile b/apps/examples/out_of_tree/Makefile
new file mode 100644
index 0000000..e19445f
--- /dev/null
+++ b/apps/examples/out_of_tree/Makefile
@@ -0,0 +1,10 @@
+plug_in_name = myapp
+
+module_ldflags =
+module_cflags  = 
+
+COREPATH ?=/usr/include/sems
+DEFSPATH ?=/usr/include/sems
+app_module_dir=.
+
+include $(COREPATH)/plug-in/Makefile.app_module
diff --git a/apps/examples/out_of_tree/MyApp.cpp \
b/apps/examples/out_of_tree/MyApp.cpp new file mode 100644
index 0000000..5c6b279
--- /dev/null
+++ b/apps/examples/out_of_tree/MyApp.cpp
@@ -0,0 +1,42 @@
+#include "MyApp.h"
+#include "log.h"
+
+#define MOD_NAME "myapp"
+
+EXPORT_SESSION_FACTORY(MyAppFactory,MOD_NAME);
+
+MyAppFactory::MyAppFactory(const string& _app_name)
+  : AmSessionFactory(_app_name)
+{
+}
+
+int MyAppFactory::onLoad()
+{
+    return 0;
+}
+
+AmSession* MyAppFactory::onInvite(const AmSipRequest& req, const string& app_name,
+				  const map<string,string>& app_params)
+{
+    return new MyAppDialog();
+}
+
+MyAppDialog::MyAppDialog()
+{
+}
+
+MyAppDialog::~MyAppDialog()
+{
+}
+
+void MyAppDialog::onSessionStart()
+{
+    DBG("MyAppDialog::onSessionStart: Hello World!\n");
+}
+
+void MyAppDialog::onBye(const AmSipRequest& req)
+{
+    DBG("onBye: stopSession\n");
+    setStopped();
+}
+
diff --git a/apps/examples/out_of_tree/MyApp.h b/apps/examples/out_of_tree/MyApp.h
new file mode 100644
index 0000000..9fc18d5
--- /dev/null
+++ b/apps/examples/out_of_tree/MyApp.h
@@ -0,0 +1,28 @@
+#ifndef _MYAPP_H_
+#define _MYAPP_H_
+
+#include "AmSession.h"
+
+class MyAppFactory: public AmSessionFactory
+{
+public:
+    MyAppFactory(const string& _app_name);
+
+    int onLoad();
+    AmSession* onInvite(const AmSipRequest& req, const string& app_name,
+			const map<string,string>& app_params);
+};
+
+class MyAppDialog : public AmSession
+{
+    
+ public:
+    MyAppDialog();
+    ~MyAppDialog();
+
+    void onSessionStart();
+    void onBye(const AmSipRequest& req);
+};
+
+#endif
+
diff --git a/apps/examples/out_of_tree/Readme.myapp \
b/apps/examples/out_of_tree/Readme.myapp new file mode 100644
index 0000000..d0d82ba
--- /dev/null
+++ b/apps/examples/out_of_tree/Readme.myapp
@@ -0,0 +1,15 @@
+
+MyApp
+
+This is an empty template for a SEMS application plug-in written in C++.
+
+It can reside out of the SEMS source tree and just needs the libsems1-dev
+package installed to be compiled. For this to work, in the Makefile the
+following needs to be defined:
+ plug_in_name = myapp
+ COREPATH ?=/usr/include/sems
+ DEFSPATH ?=/usr/include/sems
+ app_module_dir=.
+ include $(COREPATH)/plug-in/Makefile.app_module
+
+
diff --git a/core/plug-in/Makefile.app_module b/core/plug-in/Makefile.app_module
index ad8587d..990df30 100644
--- a/core/plug-in/Makefile.app_module
+++ b/core/plug-in/Makefile.app_module
@@ -1,7 +1,8 @@
 COREPATH ?=../..
+DEFSPATH ?=$(COREPATH)/..
 .DEFAULT_GOAL := all
 
-include $(COREPATH)/../Makefile.defs
+include $(DEFSPATH)/Makefile.defs
 
 LIB_LDFLAGS  += $(module_ldflags)
 CPPFLAGS += -I $(COREPATH)
@@ -10,7 +11,7 @@ CFLAGS   += $(module_cflags)
 CPPFLAGS += $(module_cflags)
 CXXFLAGS += $(module_cflags)
 
-app_module_dir = $(COREPATH)/lib
+app_module_dir ?= $(COREPATH)/lib
 
 lib_name = $(plug_in_name).so
 lib_full_name ?= $(app_module_dir)/$(lib_name)
@@ -87,21 +88,24 @@ $(plug_in_name)_lib:
 		fi ; \
 	done
 
-%.d: %.cpp Makefile $(COREPATH)/plug-in/Makefile.app_module \
$(COREPATH)/../Makefile.defs +%.d: %.cpp Makefile \
$(COREPATH)/plug-in/Makefile.app_module $(DEFSPATH)/Makefile.defs  $(CXX) -MM $< \
$(CXXFLAGS) $(CPPFLAGS) > $@  
-%.d: %.c Makefile $(COREPATH)/plug-in/Makefile.app_module \
$(COREPATH)/../Makefile.defs +%.d: %.c Makefile \
$(COREPATH)/plug-in/Makefile.app_module $(DEFSPATH)/Makefile.defs  $(CC) -MM $< \
$(CFLAGS) $(CPPFLAGS) > $@  
-%.o: %.cpp %.d $(COREPATH)/../Makefile.defs
+%.o: %.cpp %.d $(DEFSPATH)/Makefile.defs
 	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
 
-%.o: %.c %.d $(COREPATH)/../Makefile.defs
+%.o: %.c %.d $(DEFSPATH)/Makefile.defs
 	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
 
-
 $(lib_full_name): $(lib_name)
+ifneq ($(lib_full_name),$(lib_name))
+ifneq ($(lib_full_name),./$(lib_name))
 	cp $(lib_name) $(lib_full_name)
+endif
+endif
 
 $(lib_name): $(objs) $(module_extra_objs) Makefile
 	$(LD) -o $(lib_name) $(objs) $(module_extra_objs) $(LIB_LDFLAGS)
diff --git a/core/plug-in/Makefile.audio_module b/core/plug-in/Makefile.audio_module
index b7f5454..48bbd95 100644
--- a/core/plug-in/Makefile.audio_module
+++ b/core/plug-in/Makefile.audio_module
@@ -1,5 +1,7 @@
 COREPATH ?=../..
-include $(COREPATH)/../Makefile.defs
+DEFSPATH ?=$(COREPATH)/..
+
+include $(DEFSPATH)/Makefile.defs
 
 LIB_LDFLAGS  += $(module_ldflags)
 CPPFLAGS += -I $(COREPATH) -I $(COREPATH)/amci 
@@ -42,14 +44,18 @@ install: $(lib_name) $(extra_install)
 .PHONY: install-cfg
 install-cfg : $(extra_install_cfg)
 
-%.d: %.c Makefile $(COREPATH)/plug-in/Makefile.audio_module \
$(COREPATH)/../Makefile.defs +%.d: %.c Makefile \
$(COREPATH)/plug-in/Makefile.audio_module $(DEFSPATH)/Makefile.defs  $(CC) -MM $< \
$(CPPFLAGS) $(CFLAGS) > $@  
-%.o: %.c %.d $(COREPATH)/../Makefile.defs
+%.o: %.c %.d $(DEFSPATH)/Makefile.defs
 	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
 
 $(lib_full_name): $(lib_name)
+ifneq ($(lib_full_name),$(lib_name))
+ifneq ($(lib_full_name),./$(lib_name))
 	cp $(lib_name) $(lib_full_name)
+endif
+endif
 
 $(lib_name): $(objs)  Makefile
 	$(LD) -o $(lib_name) $(objs) $(LIB_LDFLAGS)
diff --git a/pkg/debian/control b/pkg/debian/control
index 42f832a..10ec3b4 100644
--- a/pkg/debian/control
+++ b/pkg/debian/control
@@ -23,4 +23,15 @@ Description: contains the python modules for SEMS
  depend upon python. This module will enable you to use the applications using the \
embedded  python interpreter and script new applications in python.
 
-
+Package: libsems1-dev
+Architecture: any
+Section: libdevel
+Depends: ${misc:Depends}
+Description: development files for SIP Express Media Server
+ SEMS, the SIP Express Media Server, is a free, high performance,
+ extensible media server for SIP (RFC3261) based VoIP services.
+ It features voicemail, conferencing, announcements, pre-call
+ announcements, prepaid service, calling card service etc.
+ .
+ This package contains the files needed to compile programs
+ against sems.
diff --git a/pkg/debian/libsems1-dev.install b/pkg/debian/libsems1-dev.install
new file mode 100644
index 0000000..77c28cb
--- /dev/null
+++ b/pkg/debian/libsems1-dev.install
@@ -0,0 +1,11 @@
+Makefile.defs usr/include/sems/
+core/*.h usr/include/sems/
+core/SampleArray.cc usr/include/sems/
+core/sip/*.h usr/include/sems/sip/
+core/plug-in/Makefile.app_module usr/include/sems/plug-in/
+core/plug-in/Makefile.audio_module usr/include/sems/plug-in/
+core/ampi usr/include/sems/
+core/amci usr/include/sems/
+core/compat/*.h usr/include/sems/compat/
+core/compat/*.c usr/include/sems/compat/
+core/rtp usr/include/sems/
diff --git a/pkg/debian/rules b/pkg/debian/rules
index 3aad0a8..a2b2182 100755
--- a/pkg/debian/rules
+++ b/pkg/debian/rules
@@ -34,6 +34,7 @@ ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
 	INSTALL_PROGRAM += -s
 endif
 
+
 configure: configure-stamp
 configure-stamp:
 	dh_testdir
@@ -70,7 +71,8 @@ install: build
 	dh_testdir
 	dh_testroot
 	dh_clean -k
-	dh_installdirs
+	dh_install
+#	dh_installdirs
 
 # Add here commands to install the package into debian/sems
 	USE_SPANDSP=yes LONG_DEBUG_MESSAGE=yes CPPFLAGS="$(CPPFLAGS)" \
@@ -87,9 +89,6 @@ install: build
 		prefix=/usr \
 		cfg-target=/etc/sems/
 
-# fix etc/ser dir location
-#	mv -f $(CURDIR)/debian/ser/usr/etc $(CURDIR)/debian/ser
-
 # install only the python modules
 	USE_SPANDSP=yes LONG_DEBUG_MESSAGE=yes CPPFLAGS="$(CPPFLAGS)" \
 	$(MAKE) -C apps/ install \
@@ -131,6 +130,11 @@ binary-common:
 	dh_strip
 	dh_compress 
 	dh_fixperms
+
+#       fixperms (rightly) sets 644 to getos/getarch (should it be somewhere else?)
+	chmod 755 $(CURDIR)/debian/libsems1-dev/usr/include/sems/compat/getos
+	chmod 755 $(CURDIR)/debian/libsems1-dev/usr/include/sems/compat/getarch
+
 #	dh_makeshlibs
 	dh_installdeb
 #	dh_perl

_______________________________________________
Semsdev mailing list
Semsdev@lists.iptel.org
http://lists.iptel.org/mailman/listinfo/semsdev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic