Changed buildsystem from automake to plain make.

This commit is contained in:
Thulinma 2014-01-04 22:28:09 +01:00
parent 4e03805671
commit d8113e7829
15 changed files with 252 additions and 202 deletions

6
.gitignore vendored
View file

@ -5,15 +5,12 @@
*.swp
*~
.deps
Makefile
Makefile.in
version.m4
docs
nbproject
autom4te.cache
src/Mist*
src/analysers/Mist*
src/converters/Mist*
/Mist*
/configure
/config.*
/aclocal.m4
@ -37,3 +34,4 @@ server.html*
.settings
.cproject
.project

View file

@ -1,3 +0,0 @@
All code was written by DDVTECH employees specifically for this project, with the exception of:
* tinythread++ library taken verbatim from: http://tinythread.sourceforge.net

View file

@ -1,7 +0,0 @@
This is a build from the Mistserver git repository located at:
https://github.com/DDVTECH/DMS
For a full changelog please see the repository history.
The version of this build can be found in the version.m4 file and
is a valid checkout point for the above mentioned repository.

209
Makefile Normal file
View file

@ -0,0 +1,209 @@
prefix = /usr
exec_prefix = $(prefix)
bindir = $(prefix)/bin
PACKAGE_VERSION ::= $(shell git describe --tags 2> /dev/null || cat VERSION 2> /dev/null || echo "Unknown")
DEBUG = 4
RELEASE = Generic_$(shell getconf LONG_BIT)
ifeq ($(PACKAGE_VERSION),Unknown)
$(warning Version is unknown - consider creating a VERSION file or fixing your git setup.)
endif
CPPFLAGS = -Wall -g -O2 -DDEBUG="$(DEBUG)" -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" -DRELEASE="\"$(RELEASE)\""
LDLIBS = -lmist
.DEFAULT_GOAL ::= all
all: controller buffers connectors analysers converters
DOXYGEN ::= $(shell doxygen -v 2> /dev/null)
ifdef DOXYGEN
all: docs
else
$(warning Doxygen not installed - not building source documentation.)
endif
controller: MistController
MistController: src/controller/server.html.h src/controller/*
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) src/controller/*.cpp
buffers: MistPlayer
MistPlayer: src/buffer/player.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
buffers: MistBuffer
MistBuffer: LDLIBS += -lpthread
MistBuffer: src/buffer/buffer.cpp src/buffer/buffer_stream.h src/buffer/buffer_stream.cpp tinythread.o tinythread.h
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) src/buffer/buffer.cpp src/buffer/buffer_stream.cpp tinythread.o
connectors: MistConnRaw
MistConnRaw: src/connectors/conn_raw.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnRTMP
MistConnRTMP: src/connectors/conn_rtmp.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTP
MistConnHTTP: LDLIBS += -lpthread
MistConnHTTP: src/connectors/conn_http.cpp tinythread.o tinythread.h src/connectors/embed.js.h src/connectors/icon.h
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) src/connectors/conn_http.cpp tinythread.o
connectors: MistConnHTTPProgressiveFLV
MistConnHTTPProgressiveFLV: src/connectors/conn_http_progressive_flv.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTPProgressiveMP3
MistConnHTTPProgressiveMP3: src/connectors/conn_http_progressive_mp3.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTPProgressiveMP4
MistConnHTTPProgressiveMP4: src/connectors/conn_http_progressive_mp4.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTPProgressiveOGG
MistConnHTTPProgressiveOGG: src/connectors/conn_http_progressive_ogg.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTPDynamic
MistConnHTTPDynamic: src/connectors/conn_http_dynamic.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTPSmooth
MistConnHTTPSmooth: src/connectors/conn_http_smooth.cpp src/connectors/xap.h
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) src/connectors/conn_http_smooth.cpp
connectors: MistConnHTTPLive
MistConnHTTPLive: src/connectors/conn_http_live.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTPSRT
MistConnHTTPSRT: src/connectors/conn_http_srt.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnHTTPJSON
MistConnHTTPJSON: src/connectors/conn_http_json.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
connectors: MistConnTS
MistConnTS: src/connectors/conn_ts.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
analysers: MistAnalyserRTMP
MistAnalyserRTMP: src/analysers/rtmp_analyser.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
analysers: MistAnalyserFLV
MistAnalyserFLV: src/analysers/flv_analyser.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
analysers: MistAnalyserDTSC
MistAnalyserDTSC: src/analysers/dtsc_analyser.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
analysers: MistAnalyserAMF
MistAnalyserAMF: src/analysers/amf_analyser.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
analysers: MistAnalyserMP4
MistAnalyserMP4: src/analysers/mp4_analyser.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
analysers: MistAnalyserOGG
MistAnalyserOGG: src/analysers/ogg_analyser.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
analysers: MistInfo
MistInfo: src/analysers/info.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistDTSC2FLV
MistDTSC2FLV: src/converters/dtsc2flv.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistFLV2DTSC
MistFLV2DTSC: src/converters/flv2dtsc.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistOGG2DTSC
MistOGG2DTSC: src/converters/ogg2dtsc.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistDTSC2OGG
MistDTSC2OGG: src/converters/dtsc2ogg.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistDTSCFix
MistDTSCFix: src/converters/dtscfix.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistDTSCMerge
MistDTSCMerge: src/converters/dtscmerge.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistDTSC2TS
MistDTSC2TS: src/converters/dtsc2ts.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistSRT2DTSC
MistSRT2DTSC: src/converters/srt2dtsc.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistDTSC2SRT
MistDTSC2SRT: src/converters/dtsc2srt.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
converters: MistDTSC2MP4
MistDTSC2MP4: src/converters/dtsc2mp4.cpp
$(CXX) -o $@ $(LDLIBS) $(CPPFLAGS) $^
BUILT_SOURCES=controller/server.html.h connectors/embed.js.h
lspSOURCES=../lsp/jquery.js ../lsp/placeholder.js ../lsp/md5.js ../lsp/main.js ../lsp/pages.js ../lsp/tablesort.js
lspDATA=../lsp/header.html ../lsp/main.css ../lsp/footer.html
JAVA ::= $(shell which java 2> /dev/null)
ifdef JAVA
CLOSURE=java -jar lsp/closure-compiler.jar --warning_level QUIET
else
$(warning Java not installed - not compressing javascript codes before inclusion.)
CLOSURE=cat
endif
XXD ::= $(shell which xxd 2> /dev/null)
ifndef XXD
$(error xxd not installed - cannot continue. Please install xxd)
endif
src/connectors/embed.js.h: src/connectors/embed.js
$(CLOSURE) src/connectors/embed.js > embed.min.js
xxd -i embed.min.js | sed s/_min_/_/g > src/connectors/embed.js.h
rm embed.min.js
src/controller/server.html: $(lspDATA) $(lspSOURCES)
cat lsp/header.html > $@
echo "<script>" >> $@
$(CLOSURE) $(lspSOURCES) >> $@
echo "</script><style>" >> $@
cat lsp/main.css >> $@
echo "</style>" >> $@
cat lsp/footer.html >> $@
src/controller/server.html.h: src/controller/server.html
cd src/controller; xxd -i server.html server.html.h
docs: src/*
doxygen ./Doxyfile > /dev/null
clean:
rm -f *.o Mist*
install: controller buffers connectors analysers converters
install ./Mist* $(DESTDIR)$(bindir)
uninstall:
rm -f $(DESTDIR)$(bindir)/Mist*
.PHONY: clean uninstall

View file

@ -1,6 +0,0 @@
CLOSURE=java -jar $(srcdir)/lsp/closure-compiler.jar --warning_level QUIET
EXTRA_DIST=VERSION
SUBDIRS=src
docs:
doxygen ./Doxyfile > /dev/null
.PHONY: docs

7
NEWS
View file

@ -1,7 +0,0 @@
This is a build from the Mistserver git repository located at:
https://github.com/DDVTECH/
For a full changelog please see the repository history.
The version of this build can be found in the version.m4 file and
is a valid checkout point for the above mentioned repository.

43
README
View file

@ -1,9 +1,38 @@
For full documentation as well as background information, visit our wiki at:
http://wiki.mistserver.com/
_________________________________________________
| MistServer |
| Copyright 2010-2014 DDVTech BV, The Netherlands |
| |
| Licensed under the aGPLv3 license |
| See COPYING file for full license |
|_________________________________________________|
Code contributions and bug reports are welcomed through:
https://github.com/DDVTECH/
The following configure options are possible:
--enable-verbose = Compiles all applications in verbose mode, printing a lot more information to the screen than normally.
--disable-verbose = The opposite of above (default).
The latest version of this code can always be found at:
https://github.com/DDVTECH/mistserver
For full documentation/changelogs/etc visit our wiki at:
http://wiki.mistserver.com/
Code contributions and bug reports are welcomed! Please submit at:
https://github.com/DDVTECH/mistserver
To install using default options, simply run:
make && sudo make install
Dependencies:
libmist ( https://github.com/DDVTECH/mistlib )
libpthread
The makefile will listen to the following variables:
DEBUG Sets the debug message level. 4 is the default (and recommended setting for development), 0 is quiet, 10 is insanely high.
PACKAGE_VERSION Overrides the server version number string. You shouldn't need to use this, normally.
RELEASE Overrides the release name. You shouldn't need to use this, normally.
prefix Prefix to install files to. Defaults to /usr
exec_prefix Prefix to install object code and binaries to. Defaults to $(prefix)
bindir Directory to install binaries to. Defaults to $(exec_prefix)/bin
DESTDIR Global prefix that will be put in front of any and all other file paths.
CPPFLAGS Flags for compiling object files. Defaults to -Wall -g -O2 -fPIC -DDEBUG="$(DEBUG)" -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\""
LDLIBS Libraries to include. Defaults to -lmist, adding -lpthread for some binaries.
Use "make var1=val1 var2=val2" to set these. For example:
make install DEBUG=0 prefix=/usr/local

View file

@ -1,49 +0,0 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.60])
AC_INIT([MistServer],
m4_esyscmd([git rev-parse 2>/dev/null&&git describe --tags > VERSION;tr -d '\n' < VERSION]),
[contact@ddvtech.com])
AC_CONFIG_SRCDIR([src/tinythread.cpp])
# foreign: no need for NEWS or INSTALL files
AM_INIT_AUTOMAKE([foreign subdir-objects])
LT_INIT
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
# Checks for libraries.
AC_DEFINE(_GNU_SOURCE)
#AC_CHECK_LIB(ssl, RC4)
PKG_CHECK_MODULES([MIST], [mist-1.0 >= 5.1.2])
# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_INT32_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T
# Checks for library functions.
AC_FUNC_FORK
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_CHECK_FUNCS([dup2 gettimeofday memset mkdir socket strerror])
AC_SUBST([global_CFLAGS], [-funsigned-char])
#allow verbose mode compiles
AC_ARG_ENABLE([verbose], AC_HELP_STRING([--enable-verbose], [Compile with verbose messages]),
AC_DEFINE([DEBUG], [4]))
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT

View file

@ -1,10 +1,9 @@
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo -e "#!/bin/bash\n[ -f configure ] && touch configure\n[ -f configure.ac ] && touch configure.ac" > $DIR/.git/hooks/post-commit
echo -e "#!/bin/bash\n[ -f configure ] && touch configure\n[ -f configure.ac ] && touch configure.ac" > $DIR/.git/hooks/post-checkout
echo -e "#!/bin/bash\n[ -f configure ] && touch configure\n[ -f configure.ac ] && touch configure.ac" > $DIR/.git/hooks/post-merge
echo -e "#!/bin/bash\nmake clean" > $DIR/.git/hooks/post-commit
echo -e "#!/bin/bash\nmake clean" > $DIR/.git/hooks/post-checkout
echo -e "#!/bin/bash\nmake clean" > $DIR/.git/hooks/post-merge
chmod +x $DIR/.git/hooks/post-commit
chmod +x $DIR/.git/hooks/post-checkout
chmod +x $DIR/.git/hooks/post-merge
echo "Done! The version number should now auto-update whenever you commit or checkout."

View file

@ -1,113 +0,0 @@
CLOSUREJAR=../lsp/closure-compiler.jar
CLOSURE=java -jar $(CLOSUREJAR) --warning_level QUIET
BUILT_SOURCES=controller/server.html.h connectors/embed.js.h
lspSOURCES=../lsp/jquery.js ../lsp/placeholder.js ../lsp/md5.js ../lsp/main.js ../lsp/pages.js ../lsp/tablesort.js
lspDATA=../lsp/header.html ../lsp/main.css ../lsp/footer.html
# Do not clean below files, build machines do not have closure installed
EXTRA_DIST=controller/server.html controller/server.html.h connectors/embed.js connectors/embed.js.h $(lspSOURCES) $(lspDATA)
RELEASE ?= "Generic_`getconf LONG_BIT`"
AM_CPPFLAGS = $(global_CFLAGS) $(MIST_CFLAGS) -DRELEASE=\"$(RELEASE)\"
LDADD = $(MIST_LIBS)
bin_PROGRAMS=MistBuffer
bin_PROGRAMS+=MistController
bin_PROGRAMS+=MistConnRAW
bin_PROGRAMS+=MistConnRTMP
bin_PROGRAMS+=MistConnHTTP
bin_PROGRAMS+=MistConnHTTPProgressiveFLV
bin_PROGRAMS+=MistConnHTTPProgressiveMP3
bin_PROGRAMS+=MistConnHTTPProgressiveMP4
bin_PROGRAMS+=MistConnHTTPProgressiveOGG
bin_PROGRAMS+=MistConnHTTPSRT
bin_PROGRAMS+=MistConnHTTPJSON
bin_PROGRAMS+=MistConnHTTPDynamic
bin_PROGRAMS+=MistConnHTTPSmooth
bin_PROGRAMS+=MistConnHTTPLive
bin_PROGRAMS+=MistConnTS
bin_PROGRAMS+=MistPlayer
bin_PROGRAMS+=MistDTSC2FLV
bin_PROGRAMS+=MistFLV2DTSC
bin_PROGRAMS+=MistDTSCFix
bin_PROGRAMS+=MistDTSCMerge
bin_PROGRAMS+=MistDTSC2TS
bin_PROGRAMS+=MistDTSC2OGG
bin_PROGRAMS+=MistDTSC2MP4
bin_PROGRAMS+=MistSRT2DTSC
bin_PROGRAMS+=MistOGG2DTSC
bin_PROGRAMS+=MistAnalyserRTMP
bin_PROGRAMS+=MistAnalyserFLV
bin_PROGRAMS+=MistAnalyserOGG
bin_PROGRAMS+=MistAnalyserDTSC
bin_PROGRAMS+=MistAnalyserAMF
bin_PROGRAMS+=MistAnalyserMP4
bin_PROGRAMS+=MistInfo
bin_PROGRAMS+=MistDTSC2MP4
bin_PROGRAMS+=MistDTSC2SRT
#buffer folder (MistBuffer, MistPlayer)
MistBuffer_SOURCES=buffer/buffer.cpp buffer/buffer_stream.h buffer/buffer_stream.cpp tinythread.cpp tinythread.h ../VERSION
MistBuffer_LDADD=$(MIST_LIBS) -lpthread
MistPlayer_SOURCES=buffer/player.cpp
#controller folder (MistController)
MistController_SOURCES=controller/controller.cpp controller/controller_connectors.h controller/controller_connectors.cpp controller/controller_storage.h controller/controller_storage.cpp controller/controller_streams.h controller/controller_streams.cpp controller/controller_capabilities.h controller/controller_capabilities.cpp ../VERSION controller/server.html.h
#connectors folder (MistConn*)
MistConnRAW_SOURCES=connectors/conn_raw.cpp ../VERSION
MistConnRTMP_SOURCES=connectors/conn_rtmp.cpp ../VERSION
MistConnHTTP_SOURCES=connectors/conn_http.cpp tinythread.cpp tinythread.h ../VERSION connectors/embed.js.h connectors/icon.h
MistConnHTTP_LDADD=$(MIST_LIBS) -lpthread
MistConnHTTPProgressiveFLV_SOURCES=connectors/conn_http_progressive_flv.cpp ../VERSION
MistConnHTTPProgressiveMP3_SOURCES=connectors/conn_http_progressive_mp3.cpp ../VERSION
MistConnHTTPProgressiveMP4_SOURCES=connectors/conn_http_progressive_mp4.cpp ../VERSION
MistConnHTTPProgressiveOGG_SOURCES=connectors/conn_http_progressive_ogg.cpp ../VERSION
MistConnHTTPDynamic_SOURCES=connectors/conn_http_dynamic.cpp ../VERSION
MistConnHTTPSmooth_SOURCES=connectors/xap.h connectors/conn_http_smooth.cpp ../VERSION
MistConnHTTPLive_SOURCES=connectors/conn_http_live.cpp ../VERSION
MistConnTS_SOURCES=connectors/conn_ts.cpp ../VERSION
MistConnHTTPSRT_SOURCES=connectors/conn_http_srt.cpp ../VERSION
MistConnHTTPJSON_SOURCES=connectors/conn_http_json.cpp ../VERSION
#converters directory (Mist*2*)
MistDTSC2FLV_SOURCES=converters/dtsc2flv.cpp
MistFLV2DTSC_SOURCES=converters/flv2dtsc.cpp
MistOGG2DTSC_SOURCES=converters/ogg2dtsc.cpp
MistDTSC2OGG_SOURCES=converters/dtsc2ogg.cpp
MistDTSCFix_SOURCES=converters/dtscfix.cpp
MistDTSCMerge_SOURCES=converters/dtscmerge.cpp
MistDTSC2TS_SOURCES=converters/dtsc2ts.cpp
MistSRT2DTSC_SOURCES=converters/srt2dtsc.cpp
MistDTSC2MP4_SOURCES=converters/dtsc2mp4.cpp
MistDTSC2SRT_SOURCES=converters/dtsc2srt.cpp
#analysers directory (MistAnalyser*)
MistAnalyserRTMP_SOURCES=analysers/rtmp_analyser.cpp
MistAnalyserFLV_SOURCES=analysers/flv_analyser.cpp
MistAnalyserDTSC_SOURCES=analysers/dtsc_analyser.cpp
MistAnalyserAMF_SOURCES=analysers/amf_analyser.cpp
MistAnalyserMP4_SOURCES=analysers/mp4_analyser.cpp
MistAnalyserOGG_SOURCES=analysers/ogg_analyser.cpp
MistInfo_SOURCES=info.cpp
connectors/embed.js.h: connectors/embed.js
$(CLOSURE) $(srcdir)/connectors/embed.js > embed.min.js
xxd -i embed.min.js | sed s/_min_/_/g > $(srcdir)/connectors/embed.js.h
rm embed.min.js
controller/server.html: $(lspDATA) $(lspSOURCES)
$(CLOSURE) $(lspSOURCES) > compressed.js
cat ../lsp/header.html > $@
echo "<script>" >> $@
cat compressed.js >> $@
rm compressed.js
echo "</script><style>" >> $@
cat ../lsp/main.css >> $@
echo "</style>" >> $@
cat ../lsp/footer.html >> $@
controller/server.html.h: controller/server.html
cd $(srcdir)/controller; xxd -i server.html server.html.h

View file

@ -6,7 +6,7 @@
#include <mist/dtsc.h>
#include <mist/json.h>
#include <mist/socket.h>
#include "tinythread.h"
#include "../../tinythread.h"
namespace Buffer {

View file

@ -21,7 +21,7 @@
#include <mist/auth.h>
#include <mist/procs.h>
#include "tinythread.h"
#include "../../tinythread.h"
#include "embed.js.h"
/// Holds everything unique to HTTP Connectors.