Skip to content

Commit

Permalink
Autotoolize build system
Browse files Browse the repository at this point in the history
Set PLUGINDIR and CONFDIR in janus.c and janus.cfg.
Download .alaw files and commit them into git.
Allow disabling individual plugins.
  • Loading branch information
Jack Leigh committed Sep 22, 2014
1 parent a82a2dd commit f4fb202
Show file tree
Hide file tree
Showing 21 changed files with 2,092 additions and 416 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.mulaw binary
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,3 @@ cmdline.h
docs/html/
janus
plugins/*.so
plugins/streams/music.mulaw
plugins/streams/radio.alaw
32 changes: 0 additions & 32 deletions Makefile

This file was deleted.

227 changes: 227 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
# FIXME: These flags should be produced in configure.ac using AX_APPEND_COMPILE_FLAGS
AM_CFLAGS = \
-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \
-Wunused -fstrict-aliasing -Wextra -Wformat=2 -Winit-self -Winline \
-Wpacked -Wpointer-arith -Wmissing-format-attribute -Wmissing-noreturn \
-Wnested-externs -Wstrict-prototypes -Wunsafe-loop-optimizations \
-Wwrite-strings -Wno-missing-field-initializers -Wno-unused-parameter \
-Wcast-align -Wformat-nonliteral -Wformat-security -Wswitch-default \
-Wmissing-include-dirs -Waggregate-return -Wunused-but-set-variable \
-Warray-bounds -Wold-style-definition -Wsign-compare -Wlarger-than=65537
AM_CFLAGS += -Wno-undef # sophiasip is not -Wundef--safe
AM_CFLAGS += -Wredundant-decls # sophiasip also contains redundant declarations
# FIXME: These should be enabled once the code is safe for them. That requires
# some fairly big refactoring though, which can wait.
# AM_CFLAGS += -Wshadow -Wstrict-aliasing=2

AM_CFLAGS += -fstack-protector-all -g -ggdb -rdynamic

# FIXME: make docs work with distcheck
DISTCHECK_CONFIGURE_FLAGS = --disable-docs --enable-post-processing

EXTRA_DIST = $(NULL)
CLEANFILES = $(NULL)

bin_PROGRAMS = janus

confdir = $(sysconfdir)/janus
conf_DATA = conf/janus.cfg

plugindir = $(libdir)/janus/plugins
plugin_LTLIBRARIES = $(NULL)

streamdir = $(datadir)/janus/streams
stream_DATA = $(NULL)

%.cfg: %.cfg.in
$(MKDIR_P) $(@D)
$(AM_V_GEN) sed -e "s|[@]confdir[@]|$(confdir)|;s|[@]plugindir[@]|$(plugindir)|;s|[@]streamdir[@]|$(streamdir)|" \
$< > $@ || rm $@

EXTRA_DIST += conf/janus.cfg.in
CLEANFILES += conf/janus.cfg

##
# Janus
##

janus_SOURCES = \
apierror.c \
apierror.h \
cmdline.c \
cmdline.h \
config.c \
config.h \
debug.h \
dtls.c \
dtls.h \
ice.c \
ice.h \
janus.c \
janus.h \
mutex.h \
record.c \
record.h \
rtcp.c \
rtcp.h \
rtp.h \
sctp.c \
sctp.h \
sdp.c \
sdp.h \
utils.c \
utils.h \
plugins/plugin.c \
plugins/plugin.h \
$(NULL)

janus_CFLAGS = \
$(AM_CFLAGS) \
$(JANUS_CFLAGS) \
-DPLUGINDIR=\"$(plugindir)\" \
-DCONFDIR=\"$(confdir)\" \
$(NULL)

janus_LDADD = \
$(JANUS_LIBS) \
$(JANUS_MANUAL_LIBS) \
-lsrtp \
$(NULL)

BUILT_SOURCES = cmdline.c

cmdline.c: janus.ggo
gengetopt --set-package="janus" --set-version="$(VERSION)" < $^

EXTRA_DIST += janus.ggo certs/mycert.key certs/mycert.pem
CLEANFILES += cmdline.c

##
# Plugins
##

plugins_cflags = \
$(AM_CFLAGS) \
$(PLUGINS_CFLAGS) \
$(NULL)

plugins_libadd = \
$(PLUGINS_LIBS) \
$(NULL)

plugins_ldflags = \
-export-dynamic \
-no-undefined \
-avoid-version \
-module \
$(NULL)

if ENABLE_PLUGIN_AUDIOBRIDGE
plugin_LTLIBRARIES += plugins/libjanus_audiobridge.la
plugins_libjanus_audiobridge_la_SOURCES = plugins/janus_audiobridge.c
plugins_libjanus_audiobridge_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_audiobridge_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_audiobridge_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.audiobridge.cfg
EXTRA_DIST += conf/janus.plugin.audiobridge.cfg
endif

if ENABLE_PLUGIN_ECHOTEST
plugin_LTLIBRARIES += plugins/libjanus_echotest.la
plugins_libjanus_echotest_la_SOURCES = plugins/janus_echotest.c
plugins_libjanus_echotest_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_echotest_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_echotest_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.echotest.cfg
EXTRA_DIST += conf/janus.plugin.echotest.cfg
endif

if ENABLE_PLUGIN_SIP
plugin_LTLIBRARIES += plugins/libjanus_sip.la
plugins_libjanus_sip_la_SOURCES = plugins/janus_sip.c
plugins_libjanus_sip_la_CFLAGS = $(plugins_cflags) $(PLUGIN_SIP_CFLAGS)
plugins_libjanus_sip_la_LDFLAGS = $(plugins_ldflags) $(PLUGIN_SIP_LDFLAGS)
plugins_libjanus_sip_la_LIBADD = $(plugins_libadd) $(PLUGIN_SIP_LIBADD)
conf_DATA += conf/janus.plugin.sip.cfg
EXTRA_DIST += conf/janus.plugin.sip.cfg
endif

if ENABLE_PLUGIN_STREAMING
plugin_LTLIBRARIES += plugins/libjanus_streaming.la
plugins_libjanus_streaming_la_SOURCES = plugins/janus_streaming.c
plugins_libjanus_streaming_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_streaming_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_streaming_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.streaming.cfg
stream_DATA += \
plugins/streams/music.mulaw \
plugins/streams/radio.alaw
EXTRA_DIST += \
conf/janus.plugin.streaming.cfg.in \
$(stream_DATA)
CLEANFILES += conf/janus.plugin.streaming.cfg
endif

if ENABLE_PLUGIN_VIDEOCALL
plugin_LTLIBRARIES += plugins/libjanus_videocall.la
plugins_libjanus_videocall_la_SOURCES = plugins/janus_videocall.c
plugins_libjanus_videocall_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_videocall_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_videocall_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.videocall.cfg
EXTRA_DIST += conf/janus.plugin.videocall.cfg
endif

if ENABLE_PLUGIN_VIDEOROOM
plugin_LTLIBRARIES += plugins/libjanus_videoroom.la
plugins_libjanus_videoroom_la_SOURCES = plugins/janus_videoroom.c
plugins_libjanus_videoroom_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_videoroom_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_videoroom_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.videoroom.cfg
EXTRA_DIST += conf/janus.plugin.videoroom.cfg
endif

if ENABLE_PLUGIN_VOICEMAIL
plugin_LTLIBRARIES += plugins/libjanus_voicemail.la
plugins_libjanus_voicemail_la_SOURCES = plugins/janus_voicemail.c
plugins_libjanus_voicemail_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_voicemail_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_voicemail_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.voicemail.cfg
EXTRA_DIST += conf/janus.plugin.voicemail.cfg
endif

##
# Post-processing
##

if ENABLE_POST_PROCESSING
bin_PROGRAMS += janus-pp-rec

janus_pp_rec_SOURCES = \
postprocessing/pp-opus.c \
postprocessing/pp-opus.h \
postprocessing/pp-rtp.h \
postprocessing/pp-webm.c \
postprocessing/pp-webm.h \
postprocessing/janus-pp-rec.c \
$(NULL)

janus_pp_rec_CFLAGS = \
$(AM_CFLAGS) \
$(POST_PROCESSING_CFLAGS) \
$(NULL)

janus_pp_rec_LDADD = \
$(POST_PROCESSING_LIBS) \
$(NULL)
endif

##
# Docs
##

if ENABLE_DOCS
SUBDIRS = docs
endif
10 changes: 10 additions & 0 deletions autogen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh

srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.

autoreconf --verbose --force --install || exit 1

if test -z "$NOCONFIGURE"; then
$srcdir/configure "$@"
fi
29 changes: 0 additions & 29 deletions common.make

This file was deleted.

8 changes: 4 additions & 4 deletions conf/janus.cfg → conf/janus.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
; can be found, default interface to use, debug/logging level and, if
; needed, shared apisecret between application(s) and Janus.
[general]
configs_folder = ./conf ; Configuration files folder
plugins_folder = ./plugins ; Plugins folder
configs_folder = @confdir@ ; Configuration files folder
plugins_folder = @plugindir@ ; Plugins folder
;interface = 1.2.3.4 ; Interface to use (will be used in SDP)
debug_level = 4 ; Debug/logging level, valid values are 0-7
;apisecret = janusrocks ; String that all Janus requests must contain
Expand Down Expand Up @@ -64,8 +64,8 @@ admin_secret = janusoverlord ; String that all Janus requests must contain

; Certificate and key to use for DTLS and/or HTTPS/WSS.
[certificates]
cert_pem = certs/mycert.pem
cert_key = certs/mycert.key
;cert_pem = certs/mycert.pem
;cert_key = certs/mycert.key


; Media-related stuff: right now, you can only configure the range of
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ videortpmap = VP8/90000
type = live
id = 2
description = a-law file source (radio broadcast)
filename = ./plugins/streams/radio.alaw ; See install.sh
filename = @streamdir@/radio.alaw ; See install.sh
audio = yes
video = no

[file-ondemand-sample]
type = ondemand
id = 3
description = mu-law file source (music)
filename = ./plugins/streams/music.mulaw ; See install.sh
filename = @streamdir@/music.mulaw ; See install.sh
audio = yes
video = no
Loading

0 comments on commit f4fb202

Please sign in to comment.