kopia lustrzana https://github.com/F5OEO/tstools
581 wiersze
19 KiB
Makefile
581 wiersze
19 KiB
Makefile
# Makefile for the H.264 Elementary Stream software
|
|
# - temporarily hacked to work on Mac OS/X 10.5 (Leopard)
|
|
#
|
|
# ***** BEGIN LICENSE BLOCK *****
|
|
# Version: MPL 1.1
|
|
#
|
|
# The contents of this file are subject to the Mozilla Public License Version
|
|
# 1.1 (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.mozilla.org/MPL/
|
|
#
|
|
# Software distributed under the License is distributed on an "AS IS" basis,
|
|
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
# for the specific language governing rights and limitations under the
|
|
# License.
|
|
#
|
|
# The Original Code is the MPEG TS, PS and ES tools.
|
|
#
|
|
# The Initial Developer of the Original Code is Amino Communications Ltd.
|
|
# Portions created by the Initial Developer are Copyright (C) 2008
|
|
# the Initial Developer. All Rights Reserved.
|
|
#
|
|
# Contributor(s):
|
|
# Amino Communications Ltd, Swavesey, Cambridge UK
|
|
#
|
|
# ***** END LICENSE BLOCK *****
|
|
#
|
|
### RUN WITH GNU MAKE
|
|
|
|
# Gnu make recommends always setting some standard variables
|
|
SHELL = /bin/sh
|
|
|
|
# And re-establishing the required suffix list
|
|
.SUFFIXES:
|
|
.SUFFIXES: .c .o
|
|
|
|
# GNU conventional destination vars
|
|
prefix=/usr/local
|
|
exec_prefix=$(prefix)
|
|
bindir=$(exec_prefix)/bin
|
|
libdir=$(exec_prefix)/lib
|
|
mandir=/usr/local/man
|
|
man1dir=$(mandir)/man1
|
|
manext=.1
|
|
|
|
INSTALL=install
|
|
INSTALL_PROGRAM=$(INSTALL) -m 0555 -s
|
|
INSTALL_LIB=$(INSTALL) -m 0444 -s
|
|
INSTALL_DATA=$(INSTALL) -m 0444
|
|
|
|
TSTOOLS_VERSION=1.13
|
|
TSTOOLS_LIB_VERSION=1
|
|
|
|
ifdef CROSS_COMPILE
|
|
CC = $(CROSS_COMPILE)gcc
|
|
else
|
|
CC = gcc
|
|
endif
|
|
|
|
# Use WARN=1 periodically to get too many warnings...
|
|
ifdef WARN
|
|
WARNING_FLAGS = -Wall -W -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wconversion -Wmissing-prototypes -Wmissing-declarations -Wunreachable-code -Winline
|
|
else
|
|
WARNING_FLAGS = -Wall
|
|
endif
|
|
|
|
# Use NOOPT=1 if using valgrind --tool=memcheck/addrecheck
|
|
ifdef NOOPT
|
|
OPTIMISE_FLAGS = -g
|
|
else
|
|
OPTIMISE_FLAGS = -O2 -g
|
|
endif
|
|
|
|
# Use PROFILE=1 to allow use of gprof (but this is *not* needed for valgrind)
|
|
ifdef PROFILE
|
|
PROFILE_FLAGS = -pg
|
|
else
|
|
PROFILE_FLAGS =
|
|
endif
|
|
|
|
# On Linux, large file support is not necessarily enabled. To make programs
|
|
# assume large file support, it is necessary to build them with _FILE_OFFSET_BITS=64.
|
|
# This replaces the "standard" short file operations with equivalent large file
|
|
# operations.
|
|
# On (Free)BSD, this is not necessary, but conversely it does not look like defining
|
|
# the flags will have any effect either.
|
|
LFS_FLAGS = -D_FILE_OFFSET_BITS=64
|
|
|
|
# Try for a best guess whether this is a Mac running OS/X, or some other
|
|
# sort of thing (presumably Linux or BSD)
|
|
ifeq ($(shell uname -s), Darwin)
|
|
SYSTEM = "macosx"
|
|
ARCH_FLAGS =
|
|
# If you're still building on a version of Mac OS X that supports powerpc,
|
|
# then you may want to uncomment the next line. Obviously, this no longer
|
|
# works in Lion, which doesn't support powerpc machines any more.
|
|
#ARCH_FLAGS = -arch ppc -arch i386
|
|
else
|
|
SYSTEM = "other"
|
|
ARCH_FLAGS = -fPIC
|
|
endif
|
|
|
|
CFLAGS += $(WARNING_FLAGS) $(OPTIMISE_FLAGS) $(LFS_FLAGS) -I. $(PROFILE_FLAGS) $(ARCH_FLAGS) -DTSTOOLS_VERSION=$(TSTOOLS_VERSION)
|
|
LDFLAGS += -g $(PROFILE_FLAGS) $(ARCH_FLAGS) -lm
|
|
|
|
# Target directories
|
|
OBJDIR = obj
|
|
LIBDIR = lib
|
|
BINDIR = bin
|
|
MANDIR = docs/mdoc
|
|
|
|
# All of our non-program object modules
|
|
OBJS = \
|
|
$(OBJDIR)/accessunit.o \
|
|
$(OBJDIR)/avs.o \
|
|
$(OBJDIR)/ac3.o \
|
|
$(OBJDIR)/adts.o \
|
|
$(OBJDIR)/bitdata.o \
|
|
$(OBJDIR)/es.o \
|
|
$(OBJDIR)/filter.o \
|
|
$(OBJDIR)/fmtx.o \
|
|
$(OBJDIR)/h222.o \
|
|
$(OBJDIR)/h262.o \
|
|
$(OBJDIR)/audio.o \
|
|
$(OBJDIR)/l2audio.o \
|
|
$(OBJDIR)/misc.o \
|
|
$(OBJDIR)/nalunit.o \
|
|
$(OBJDIR)/ps.o \
|
|
$(OBJDIR)/pes.o \
|
|
$(OBJDIR)/pidint.o \
|
|
$(OBJDIR)/printing.o \
|
|
$(OBJDIR)/reverse.o \
|
|
$(OBJDIR)/ts.o \
|
|
$(OBJDIR)/tsplay_innards.o \
|
|
$(OBJDIR)/tswrite.o \
|
|
$(OBJDIR)/pcap.o \
|
|
$(OBJDIR)/ethernet.o \
|
|
$(OBJDIR)/ipv4.o
|
|
|
|
# Our program object modules
|
|
PROG_OBJS = \
|
|
$(OBJDIR)/es2ts.o \
|
|
$(OBJDIR)/esdots.o \
|
|
$(OBJDIR)/esfilter.o \
|
|
$(OBJDIR)/esmerge.o \
|
|
$(OBJDIR)/esreport.o \
|
|
$(OBJDIR)/esreverse.o \
|
|
$(OBJDIR)/ps2ts.o \
|
|
$(OBJDIR)/psreport.o \
|
|
$(OBJDIR)/psdots.o \
|
|
$(OBJDIR)/stream_type.o \
|
|
$(OBJDIR)/ts2es.o \
|
|
$(OBJDIR)/tsdvbsub.o \
|
|
$(OBJDIR)/tsinfo.o \
|
|
$(OBJDIR)/tsplay.o \
|
|
$(OBJDIR)/tsreport.o \
|
|
$(OBJDIR)/tsserve.o \
|
|
$(OBJDIR)/ts_packet_insert.o \
|
|
$(OBJDIR)/m2ts2ts.o \
|
|
$(OBJDIR)/pcapreport.o \
|
|
$(OBJDIR)/tsfilter.o
|
|
|
|
TS2PS_OBJS = $(OBJDIR)/ts2ps.o
|
|
|
|
TEST_PES_OBJS = $(OBJDIR)/test_pes.o
|
|
TEST_PRINTING_OBJS = $(OBJDIR)/test_printing.o
|
|
|
|
TEST_OBJS = \
|
|
$(OBJDIR)/test_nal_unit_list.o \
|
|
$(OBJDIR)/test_es_unit_list.o
|
|
|
|
# Our library
|
|
STATIC_LIB = $(LIBDIR)/libtstools.a
|
|
LIBOPTS = $(ARCH_FLAGS) $(STATIC_LIB)
|
|
|
|
ifeq ($(shell uname -s), Darwin)
|
|
SHARED_LIB_NAME = libtstools.xxx
|
|
else
|
|
SHARED_LIB_NAME = libtstools.so
|
|
endif
|
|
SHARED_LIB = $(LIBDIR)/$(SHARED_LIB_NAME)
|
|
|
|
# All of our programs (except the testing ones)
|
|
PROGS = \
|
|
$(BINDIR)/esfilter \
|
|
$(BINDIR)/ts2es \
|
|
$(BINDIR)/es2ts \
|
|
$(BINDIR)/esdots \
|
|
$(BINDIR)/esmerge \
|
|
$(BINDIR)/esreport \
|
|
$(BINDIR)/esreverse \
|
|
$(BINDIR)/ps2ts \
|
|
$(BINDIR)/psreport \
|
|
$(BINDIR)/psdots \
|
|
$(BINDIR)/stream_type \
|
|
$(BINDIR)/tsdvbsub \
|
|
$(BINDIR)/tsinfo \
|
|
$(BINDIR)/tsreport \
|
|
$(BINDIR)/tsplay \
|
|
$(BINDIR)/tsserve \
|
|
$(BINDIR)/ts_packet_insert \
|
|
$(BINDIR)/m2ts2ts \
|
|
$(BINDIR)/pcapreport \
|
|
$(BINDIR)/tsfilter \
|
|
$(BINDIR)/rtp2264
|
|
|
|
TS2PS_PROG = $(BINDIR)/ts2ps
|
|
|
|
# Is test_pes still useful?
|
|
TEST_PES_PROG = $(BINDIR)/test_pes
|
|
TEST_PRINTING_PROG = $(BINDIR)/test_printing
|
|
|
|
# And then the testing programs (which we only build if we are
|
|
# running the tests)
|
|
TEST_PROGS = test_nal_unit_list test_es_unit_list
|
|
|
|
# ------------------------------------------------------------
|
|
all: $(BINDIR) $(LIBDIR) $(OBJDIR) $(PROGS) $(SHARED_LIB)
|
|
|
|
# ts2ps is not yet an offical program, so for the moment build
|
|
# it separately
|
|
.PHONY: ts2ps
|
|
ts2ps: $(TS2PS_PROG)
|
|
|
|
ifeq ($(shell uname -s), Darwin)
|
|
# Make libraries containing universal objects on Mac
|
|
$(STATIC_LIB): $(OBJS)
|
|
libtool -static $(OBJS) -o $(STATIC_LIB)
|
|
$(SHARED_LIB): $(OBJS)
|
|
libtool -dynamic $(OBJS) -o $(SHARED_LIB)
|
|
else
|
|
$(STATIC_LIB): $(OBJS)
|
|
rm -f $(STATIC_LIB)
|
|
ar rc $(STATIC_LIB) $(OBJS)
|
|
|
|
$(SHARED_LIB): $(OBJS)
|
|
$(LD) -shared -soname $(SHARED_LIB_NAME).$(TSTOOLS_LIB_VERSION) -o $(SHARED_LIB) $(OBJS) -lc -lm
|
|
endif
|
|
|
|
# Build all of the utilities with the static library, so that they can
|
|
# be copied around, shared, etc., without having to think about it
|
|
|
|
$(BINDIR)/esfilter: $(OBJDIR)/esfilter.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/ts2es: $(OBJDIR)/ts2es.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/es2ts: $(OBJDIR)/es2ts.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/esdots: $(OBJDIR)/esdots.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/esmerge: $(OBJDIR)/esmerge.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/esreport: $(OBJDIR)/esreport.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/esreverse: $(OBJDIR)/esreverse.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/stream_type: $(OBJDIR)/stream_type.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/psreport: $(OBJDIR)/psreport.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/psdots: $(OBJDIR)/psdots.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/ps2ts: $(OBJDIR)/ps2ts.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/tsinfo: $(OBJDIR)/tsinfo.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/tsreport: $(OBJDIR)/tsreport.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/tsserve: $(OBJDIR)/tsserve.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/tsplay: $(OBJDIR)/tsplay.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/ts_packet_insert: $(OBJDIR)/ts_packet_insert.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/m2ts2ts: $(OBJDIR)/m2ts2ts.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/pcapreport: $(OBJDIR)/pcapreport.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/tsfilter: $(OBJDIR)/tsfilter.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/tsdvbsub: $(OBJDIR)/tsdvbsub.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/rtp2264: $(OBJDIR)/rtp2264.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
|
|
# Not installed
|
|
$(BINDIR)/ts2ps: $(OBJDIR)/ts2ps.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
|
|
$(BINDIR)/test_pes: $(OBJDIR)/test_pes.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/test_printing: $(OBJDIR)/test_printing.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/test_nal_unit_list: $(OBJDIR)/test_nal_unit_list.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
$(BINDIR)/test_es_unit_list: $(OBJDIR)/test_es_unit_list.o $(STATIC_LIB)
|
|
$(CC) $< -o $@ $(LIBOPTS) $(LDFLAGS)
|
|
|
|
# Some header files depend upon others, so including one requires
|
|
# the others as well
|
|
ES_H = es_fns.h es_defns.h h222_fns.h h222_defns.h
|
|
TS_H = ts_fns.h ts_defns.h h222_fns.h h222_defns.h tswrite_fns.h \
|
|
tswrite_defns.h pidint_fns.h pidint_defns.h
|
|
ACCESSUNIT_H = accessunit_fns.h accessunit_defns.h $(NALUNIT_H)
|
|
NALUNIT_H = nalunit_fns.h nalunit_defns.h es_fns.h es_defns.h \
|
|
bitdata_fns.h bitdata_defns.h
|
|
PES_H = pes_fns.h pes_defns.h
|
|
PS_H = ps_fns.h ps_defns.h
|
|
AVS_H = avs_fns.h avs_defns.h
|
|
H262_H = h262_fns.h h262_defns.h
|
|
TSWRITE_H = tswrite_fns.h tswrite_defns.h
|
|
REVERSE_H = reverse_fns.h reverse_defns.h
|
|
FILTER_H = filter_fns.h filter_defns.h $(REVERSE_H)
|
|
AUDIO_H = adts_fns.h l2audio_fns.h ac3_fns.h audio_fns.h audio_defns.h adts_defns.h
|
|
|
|
# Everyone depends upon the basic configuration file, and I assert they all
|
|
# want (or may want) printing...
|
|
$(OBJS) $(TEST_OBJS) $(PROG_OBJS): compat.h printing_fns.h
|
|
|
|
# Which library modules depend on which header files is complex, so
|
|
# lets just be simple
|
|
$(OBJS): \
|
|
$(ACCESSUNIT_H) $(NALUNIT_H) $(TS_H) $(ES_H) $(PES_H) \
|
|
misc_fns.h printing_fns.h $(PS_H) $(H262_H) \
|
|
$(TSWRITE_H) $(AVS_H) $(REVERSE_H) $(FILTER_H) $(AUDIO_H)
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
$(OBJDIR)/es2ts.o: es2ts.c $(ES_H) $(TS_H) misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/esdots.o: esdots.c misc_fns.h $(ACCESSUNIT_H) $(H262_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/esfilter.o: esfilter.c $(TS_H) misc_fns.h $(ACCESSUNIT_H) $(H262_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/esreport.o: esreport.c misc_fns.h $(ACCESSUNIT_H) $(H262_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/esmerge.o: esmerge.c misc_fns.h $(ACCESSUNIT_H) $(AUDIO_H) $(TSWRITE_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/esreverse.o: esreverse.c $(TS_H) $(REVERSE_H) misc_fns.h $(ACCESSUNIT_H) $(H262_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/fmtx.o: fmtx.c fmtx.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/psreport.o: psreport.c $(ES_H) $(PS_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/psdots.o: psdots.c $(ES_H) $(PS_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/ps2ts.o: ps2ts.c $(TS_H) misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/stream_type.o: stream_type.c $(ES_H) $(TS_H) $(NALUNIT_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/ts2es.o: ts2es.c $(TS_H) misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/ts2ps.o: ts2ps.c $(TS_H) $(PS_H) misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/tsdvbsub.o: tsdvbsub.c $(TS_H) misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/tsinfo.o: tsinfo.c $(TS_H) misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/tsreport.o: tsreport.c $(TS_H) fmtx.h misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/tsserve.o: tsserve.c $(TS_H) $(PS_H) $(ES_H) misc_fns.h $(PES_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/ts_packet_insert.o: ts_packet_insert.c
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/tsplay.o: tsplay.c $(TS_H) misc_fns.h $(PS_H) $(PES_H) version.h tsplay_fns.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/tswrite.o: tswrite.c misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/m2ts2ts.o: m2ts2ts.c $(TS_H) misc_fns.h version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/pcapreport.o: pcapreport.c pcap.h version.h misc_fns.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
$(OBJDIR)/tsfilter.o: tsfilter.c version.h misc_fns.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
$(OBJDIR)/test_pes.o: test_pes.c $(TS_H) $(PS_H) $(ES_H) misc_fns.h $(PES_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/test_printing.o: test_printing.c $(TS_H) $(PS_H) $(ES_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/test_nal_unit_list.o: test_nal_unit_list.c $(NALUNIT_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
$(OBJDIR)/test_es_unit_list.o: test_es_unit_list.c $(ES_H) version.h
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
# ------------------------------------------------------------
|
|
# Directory creation
|
|
|
|
$(OBJDIR) $(LIBDIR) $(BINDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(man1dir):
|
|
mkdir -p $@
|
|
|
|
# ------------------------------------------------------------
|
|
|
|
.PHONY: install-man
|
|
install-man: $(DESTDIR)$(man1dir)
|
|
$(INSTALL_DATA) $(MANDIR)/esfilter.1 $(DESTDIR)$(man1dir)/esfilter$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/ts2es.1 $(DESTDIR)$(man1dir)/ts2es$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/es2ts.1 $(DESTDIR)$(man1dir)/es2ts$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/esdots.1 $(DESTDIR)$(man1dir)/esdots$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/esmerge.1 $(DESTDIR)$(man1dir)/esmerge$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/esreport.1 $(DESTDIR)$(man1dir)/esreport$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/esreverse.1 $(DESTDIR)$(man1dir)/esreverse$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/stream_type.1 $(DESTDIR)$(man1dir)/stream_type$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/psreport.1 $(DESTDIR)$(man1dir)/psreport$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/psdots.1 $(DESTDIR)$(man1dir)/psdots$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/ps2ts.1 $(DESTDIR)$(man1dir)/ps2ts$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/tsinfo.1 $(DESTDIR)$(man1dir)/tsinfo$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/tsreport.1 $(DESTDIR)$(man1dir)/tsreport$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/tsserve.1 $(DESTDIR)$(man1dir)/tsserve$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/tsplay.1 $(DESTDIR)$(man1dir)/tsplay$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/ts_packet_insert.1 $(DESTDIR)$(man1dir)/ts_packet_insert$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/m2ts2ts.1 $(DESTDIR)$(man1dir)/m2ts2ts$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/pcapreport.1 $(DESTDIR)$(man1dir)/pcapreport$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/tsfilter.1 $(DESTDIR)$(man1dir)/tsfilter$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/tsdvbsub.1 $(DESTDIR)$(man1dir)/tsdvbsub$(manext)
|
|
$(INSTALL_DATA) $(MANDIR)/rtp2264.1 $(DESTDIR)$(man1dir)/rtp2264$(manext)
|
|
|
|
.PHONY: uninstall-man
|
|
uninstall-man:
|
|
rm -f $(DESTDIR)$(man1dir)/esfilter$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/ts2es$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/es2ts$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/esdots$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/esmerge$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/esreport$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/esreverse$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/stream_type$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/psreport$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/psdots$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/ps2ts$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/tsinfo$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/tsreport$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/tsserve$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/tsplay$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/ts_packet_insert$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/m2ts2ts$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/pcapreport$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/tsfilter$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/tsdvbsub$(manext)
|
|
rm -f $(DESTDIR)$(man1dir)/rtp2264$(manext)
|
|
|
|
# Shared lib not installed currently
|
|
.PHONY: install-prog
|
|
install-prog: all $(DESTDIR)$(bindir) $(DESTDIR)$(libdir)
|
|
$(INSTALL_PROGRAM) $(BINDIR)/esfilter $(DESTDIR)$(bindir)/esfilter
|
|
$(INSTALL_PROGRAM) $(BINDIR)/ts2es $(DESTDIR)$(bindir)/ts2es
|
|
$(INSTALL_PROGRAM) $(BINDIR)/es2ts $(DESTDIR)$(bindir)/es2ts
|
|
$(INSTALL_PROGRAM) $(BINDIR)/esdots $(DESTDIR)$(bindir)/esdots
|
|
$(INSTALL_PROGRAM) $(BINDIR)/esmerge $(DESTDIR)$(bindir)/esmerge
|
|
$(INSTALL_PROGRAM) $(BINDIR)/esreport $(DESTDIR)$(bindir)/esreport
|
|
$(INSTALL_PROGRAM) $(BINDIR)/esreverse $(DESTDIR)$(bindir)/esreverse
|
|
$(INSTALL_PROGRAM) $(BINDIR)/stream_type $(DESTDIR)$(bindir)/stream_type
|
|
$(INSTALL_PROGRAM) $(BINDIR)/psreport $(DESTDIR)$(bindir)/psreport
|
|
$(INSTALL_PROGRAM) $(BINDIR)/psdots $(DESTDIR)$(bindir)/psdots
|
|
$(INSTALL_PROGRAM) $(BINDIR)/ps2ts $(DESTDIR)$(bindir)/ps2ts
|
|
$(INSTALL_PROGRAM) $(BINDIR)/tsinfo $(DESTDIR)$(bindir)/tsinfo
|
|
$(INSTALL_PROGRAM) $(BINDIR)/tsreport $(DESTDIR)$(bindir)/tsreport
|
|
$(INSTALL_PROGRAM) $(BINDIR)/tsserve $(DESTDIR)$(bindir)/tsserve
|
|
$(INSTALL_PROGRAM) $(BINDIR)/tsplay $(DESTDIR)$(bindir)/tsplay
|
|
$(INSTALL_PROGRAM) $(BINDIR)/ts_packet_insert $(DESTDIR)$(bindir)/ts_packet_insert
|
|
$(INSTALL_PROGRAM) $(BINDIR)/m2ts2ts $(DESTDIR)$(bindir)/m2ts2ts
|
|
$(INSTALL_PROGRAM) $(BINDIR)/pcapreport $(DESTDIR)$(bindir)/pcapreport
|
|
$(INSTALL_PROGRAM) $(BINDIR)/tsfilter $(DESTDIR)$(bindir)/tsfilter
|
|
$(INSTALL_PROGRAM) $(BINDIR)/tsdvbsub $(DESTDIR)$(bindir)/tsdvbsub
|
|
$(INSTALL_PROGRAM) $(BINDIR)/rtp2264 $(DESTDIR)$(bindir)/rtp2264
|
|
|
|
.PHONY: uninstall-prog
|
|
uninstall-prog:
|
|
rm -f $(DESTDIR)$(bindir)/esfilter
|
|
rm -f $(DESTDIR)$(bindir)/ts2es
|
|
rm -f $(DESTDIR)$(bindir)/es2ts
|
|
rm -f $(DESTDIR)$(bindir)/esdots
|
|
rm -f $(DESTDIR)$(bindir)/esmerge
|
|
rm -f $(DESTDIR)$(bindir)/esreport
|
|
rm -f $(DESTDIR)$(bindir)/esreverse
|
|
rm -f $(DESTDIR)$(bindir)/stream_type
|
|
rm -f $(DESTDIR)$(bindir)/psreport
|
|
rm -f $(DESTDIR)$(bindir)/psdots
|
|
rm -f $(DESTDIR)$(bindir)/ps2ts
|
|
rm -f $(DESTDIR)$(bindir)/tsinfo
|
|
rm -f $(DESTDIR)$(bindir)/tsreport
|
|
rm -f $(DESTDIR)$(bindir)/tsserve
|
|
rm -f $(DESTDIR)$(bindir)/tsplay
|
|
rm -f $(DESTDIR)$(bindir)/ts_packet_insert
|
|
rm -f $(DESTDIR)$(bindir)/m2ts2ts
|
|
rm -f $(DESTDIR)$(bindir)/pcapreport
|
|
rm -f $(DESTDIR)$(bindir)/tsfilter
|
|
rm -f $(DESTDIR)$(bindir)/tsdvbsub
|
|
rm -f $(DESTDIR)$(bindir)/rtp2264
|
|
|
|
.PHONY: install
|
|
install: install-man install-prog
|
|
|
|
.PHONY: uninstall
|
|
uninstall: uninstall-man uninstall-prog
|
|
|
|
.PHONY: objclean
|
|
objclean:
|
|
-rm -f $(OBJS)
|
|
-rm -f $(TEST_OBJS)
|
|
-rm -f $(TEST_PROGS)
|
|
-rm -f $(TS2PS_OBJS) $(TS2PS_PROG)
|
|
-rm -f $(TEST_PES_OBJS) $(TEST_PES_PROG)
|
|
-rm -f $(TEST_PRINTING_OBJS) $(TEST_PRINTING_PROG)
|
|
-rm -f ES_test3.ts es_test3.ts
|
|
-rm -f ES_test2.264 es_test3.264
|
|
-rm -f es_test_a.ts es_test_a.264
|
|
-rm -f es_test_b.ts es_test_b.264
|
|
-rm -f *.core
|
|
|
|
.PHONY: clean
|
|
clean: objclean
|
|
-rm -f $(PROGS)
|
|
-rm -f $(STATIC_LIB)
|
|
-rm -f $(SHARED_LIB)
|
|
-rm -f $(PROG_OBJS)
|
|
|
|
.PHONY: distclean
|
|
distclean: clean
|
|
-rm -rf $(OBJDIR) $(LIBDIR) $(BINDIR)
|
|
rm -f debian/files debian/tstools.*
|
|
rm -rf debian/tstools
|
|
|
|
.PHONY: dist
|
|
dist: distclean
|
|
ln -snf `pwd` ../tstools-$(TSTOOLS_VERSION)
|
|
tar czhf ../tstools-$(TSTOOLS_VERSION).tar.gz ../tstools-$(TSTOOLS_VERSION)
|
|
|
|
.PHONY: dist-debian
|
|
dist-debian: dist
|
|
ln -snf tstools-$(TSTOOLS_VERSION).tar.gz ../tstools_$(TSTOOLS_VERSION).orig.tar.gz
|
|
debuild -uc -us
|
|
|
|
TESTDATAFILE = /data/video/CVBt_hp_trail.264
|
|
|
|
# Only build test_printing if explicitly asked to do so
|
|
.PHONY: test_printing
|
|
test_printing: $(BINDIR)/test_printing
|
|
|
|
# Only build test_pes if explicitly asked to do so
|
|
.PHONY: test_pes
|
|
test_pes: $(BINDIR)/test_pes
|
|
|
|
.PHONY: test
|
|
test: test_lists
|
|
|
|
.PHONY: test_lists
|
|
test_lists: $(BINDIR)/test_nal_unit_list $(BINDIR)/test_es_unit_list
|
|
@echo +++ Testing NAL unit lists
|
|
$(BINDIR)//test_nal_unit_list
|
|
@echo +++ Test succeeded
|
|
@echo +++ Testing ES unit lists
|
|
$(BINDIR)/test_es_unit_list
|
|
@echo +++ Test succeeded
|