--- /dev/null
+From 2fe4faa9d8eab6068976c7981bc166f576869b36 Mon Sep 17 00:00:00 2001
+From: Tzu-Jung Lee <tjlee@ambarella.com>
+Date: Sun, 28 Jul 2013 19:40:27 +0800
+Subject: [PATCH 1/1] build: fix parallel build failure
+
+This is back ported from recent upstream commit
+
+ 0e8463ea1dc55f566a88bb3df29cf3d5f23cc326
+
+Once the upstream update the download page with more
+recent source tarball, this will no longer be needed.
+
+Signed-off-by: Tzu-Jung Lee <tjlee@ambarella.com>
+---
+ Makefile | 222 +++++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 115 insertions(+), 107 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index b79a573..ad7f163 100644
+--- a/Makefile
++++ b/Makefile
+@@ -67,67 +67,49 @@ LFS_FLAGS = -D_FILE_OFFSET_BITS=64
+ # sort of thing (presumably Linux or BSD)
+ ifeq ($(shell uname -s), Darwin)
+ SYSTEM = "macosx"
+- ARCH_FLAGS = -arch ppc -arch i386
++ 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 =
++ ARCH_FLAGS = -fPIC
+ endif
+
+ CFLAGS = $(WARNING_FLAGS) $(OPTIMISE_FLAGS) $(LFS_FLAGS) -I. $(PROFILE_FLAGS) $(ARCH_FLAGS)
+-LDFLAGS = -g -lm $(PROFILE_FLAGS) $(ARCH_FLAGS)
++LDFLAGS = -g $(PROFILE_FLAGS) $(ARCH_FLAGS) -lm
+
+ # Target directories
+ OBJDIR = obj
+ LIBDIR = lib
+ BINDIR = bin
+
+-# All of our non-program source files
+-SRCS = \
+- accessunit.c \
+- ac3.c \
+- adts.c \
+- avs.c \
+- bitdata.c \
+- es.c \
+- fmtx.c \
+- h222.c \
+- h262.c \
+- audio.c \
+- l2audio.c \
+- misc.c \
+- nalunit.c \
+- ps.c \
+- pes.c \
+- pidint.c \
+- ts.c \
+- tswrite.c \
+- pcap.c
+-
+ # All of our non-program object modules
+ OBJS = \
+- accessunit.o \
+- avs.o \
+- ac3.o \
+- adts.o \
+- bitdata.o \
+- es.o \
+- filter.o \
+- fmtx.o \
+- h222.o \
+- h262.o \
+- audio.o \
+- l2audio.o \
+- misc.o \
+- nalunit.o \
+- ps.o \
+- pes.o \
+- pidint.o \
+- reverse.o \
+- ts.o \
+- tswrite.o \
+- pcap.o \
+- ethernet.o \
+- ipv4.o
++ $(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)/reverse.o \
++ $(OBJDIR)/ts.o \
++ $(OBJDIR)/tswrite.o \
++ $(OBJDIR)/pcap.o \
++ $(OBJDIR)/ethernet.o \
++ $(OBJDIR)/ipv4.o
+
+ # Our program object modules
+ PROG_OBJS = \
+@@ -161,9 +143,14 @@ TEST_OBJS = \
+ $(OBJDIR)/test_es_unit_list.o
+
+ # Our library
+-LIB = $(LIBDIR)/libtstools.a
+-LIBOPTS = -L$(LIBDIR) -ltstools $(ARCH_FLAGS)
++STATIC_LIB = $(LIBDIR)/libtstools.a
++LIBOPTS = $(ARCH_FLAGS) $(STATIC_LIB)
+
++ifeq ($(shell uname -s), Darwin)
++SHARED_LIB = $(LIBDIR)/libtstools.xxx
++else
++SHARED_LIB = $(LIBDIR)/libtstools.so
++endif
+ # All of our programs (except the testing ones)
+ PROGS = \
+ $(BINDIR)/esfilter \
+@@ -197,7 +184,7 @@ TEST_PES_PROG = $(BINDIR)/test_pes
+ TEST_PROGS = test_nal_unit_list test_es_unit_list
+
+ # ------------------------------------------------------------
+-all: $(BINDIR) $(LIBDIR) $(OBJDIR) $(PROGS)
++all: $(BINDIR) $(LIBDIR) $(OBJDIR) $(PROGS) $(SHARED_LIB)
+
+ # ts2ps is not yet an offical program, so for the moment build
+ # it separately
+@@ -205,82 +192,97 @@ all: $(BINDIR) $(LIBDIR) $(OBJDIR) $(PROGS)
+ ts2ps: $(TS2PS_PROG)
+
+ ifeq ($(shell uname -s), Darwin)
+-# Try getting a library containing universal objects on Mac
+-$(LIB): $(OBJS)
+- libtool -static $(OBJS) -o $(LIB)
++# 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
+-$(LIB): $(LIB)($(OBJS))
++$(STATIC_LIB): $(OBJS)
++ rm -f $(STATIC_LIB)
++ ar rc $(STATIC_LIB) $(OBJS)
++
++$(SHARED_LIB): $(OBJS)
++ $(LD) -shared -o $(SHARED_LIB) $(OBJS) -lc
+ endif
+
+-$(BINDIR)/esfilter: $(OBJDIR)/esfilter.o $(LIB)
+- $(CC) $< -o $(BINDIR)/esfilter $(LDFLAGS) $(LIBOPTS)
++# 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 $(BINDIR)/esfilter $(LIBOPTS) $(LDFLAGS)
++
++$(BINDIR)/ts2es: $(OBJDIR)/ts2es.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/ts2es $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/ts2es: $(OBJDIR)/ts2es.o $(LIB)
+- $(CC) $< -o $(BINDIR)/ts2es $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/es2ts: $(OBJDIR)/es2ts.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/es2ts $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/es2ts: $(OBJDIR)/es2ts.o $(LIB)
+- $(CC) $< -o $(BINDIR)/es2ts $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/esdots: $(OBJDIR)/esdots.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/esdots $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/esdots: $(OBJDIR)/esdots.o $(LIB)
+- $(CC) $< -o $(BINDIR)/esdots $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/esmerge: $(OBJDIR)/esmerge.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/esmerge $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/esmerge: $(OBJDIR)/esmerge.o $(LIB)
+- $(CC) $< -o $(BINDIR)/esmerge $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/esreport: $(OBJDIR)/esreport.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/esreport $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/esreport: $(OBJDIR)/esreport.o $(LIB)
+- $(CC) $< -o $(BINDIR)/esreport $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/esreverse: $(OBJDIR)/esreverse.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/esreverse $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/esreverse: $(OBJDIR)/esreverse.o $(LIB)
+- $(CC) $< -o $(BINDIR)/esreverse $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/stream_type: $(OBJDIR)/stream_type.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/stream_type $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/stream_type: $(OBJDIR)/stream_type.o $(LIB)
+- $(CC) $< -o $(BINDIR)/stream_type $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/psreport: $(OBJDIR)/psreport.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/psreport $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/psreport: $(OBJDIR)/psreport.o $(LIB)
+- $(CC) $< -o $(BINDIR)/psreport $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/psdots: $(OBJDIR)/psdots.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/psdots $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/psdots: $(OBJDIR)/psdots.o $(LIB)
+- $(CC) $< -o $(BINDIR)/psdots $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/ps2ts: $(OBJDIR)/ps2ts.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/ps2ts $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/ps2ts: $(OBJDIR)/ps2ts.o $(LIB)
+- $(CC) $< -o $(BINDIR)/ps2ts $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/tsinfo: $(OBJDIR)/tsinfo.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/tsinfo $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/tsinfo: $(OBJDIR)/tsinfo.o $(LIB)
+- $(CC) $< -o $(BINDIR)/tsinfo $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/tsreport: $(OBJDIR)/tsreport.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/tsreport $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/tsreport: $(OBJDIR)/tsreport.o $(LIB)
+- $(CC) $< -o $(BINDIR)/tsreport $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/tsserve: $(OBJDIR)/tsserve.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/tsserve $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/tsserve: $(OBJDIR)/tsserve.o $(LIB)
+- $(CC) $< -o $(BINDIR)/tsserve $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/tsplay: $(OBJDIR)/tsplay.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/tsplay $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/tsplay: $(OBJDIR)/tsplay.o $(LIB)
+- $(CC) $< -o $(BINDIR)/tsplay $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/test_ps: $(OBJDIR)/test_ps.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/test_ps $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/test_ps: $(OBJDIR)/test_ps.o $(LIB)
+- $(CC) $< -o $(BINDIR)/test_ps $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/ts2ps: $(OBJDIR)/ts2ps.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/ts2ps $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/ts2ps: $(OBJDIR)/ts2ps.o $(LIB)
+- $(CC) $< -o $(BINDIR)/ts2ps $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/ts_packet_insert: $(OBJDIR)/ts_packet_insert.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/ts_packet_insert $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/ts_packet_insert: $(OBJDIR)/ts_packet_insert.o $(LIB)
+- $(CC) $< -o $(BINDIR)/ts_packet_insert $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/m2ts2ts: $(OBJDIR)/m2ts2ts.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/m2ts2ts $(LIBOPTS) $(LDFLAGS)
++$(BINDIR)/pcapreport: $(OBJDIR)/pcapreport.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/pcapreport $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/m2ts2ts: $(OBJDIR)/m2ts2ts.o $(LIB)
+- $(CC) $< -o $(BINDIR)/m2ts2ts $(LDFLAGS) $(LIBOPTS)
+-$(BINDIR)/pcapreport: $(OBJDIR)/pcapreport.o $(LIB)
+- $(CC) $< -o $(BINDIR)/pcapreport $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/tsfilter: $(OBJDIR)/tsfilter.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/tsfilter $(LIBOPTS) $(LDFLAGS)
++$(BINDIR)/tsdvbsub: $(OBJDIR)/tsdvbsub.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/tsdvbsub $(LIBOPTS) $(LDFLAGS)
+
+
+
+
+-$(BINDIR)/test_pes: $(OBJDIR)/test_pes.o $(LIB)
+- $(CC) $< -o $(BINDIR)/test_pes $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/test_pes: $(OBJDIR)/test_pes.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/test_pes $(LIBOPTS) $(LDFLAGS)
+
+-$(BINDIR)/test_nal_unit_list: $(OBJDIR)/test_nal_unit_list.o $(LIB)
+- $(CC) $< -o $(BINDIR)/test_nal_unit_list $(LDFLAGS) $(LIBOPTS)
+-$(BINDIR)/test_es_unit_list: $(OBJDIR)/test_es_unit_list.o $(LIB)
+- $(CC) $< -o $(BINDIR)/test_es_unit_list $(LDFLAGS) $(LIBOPTS)
++$(BINDIR)/test_nal_unit_list: $(OBJDIR)/test_nal_unit_list.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/test_nal_unit_list $(LIBOPTS) $(LDFLAGS)
++$(BINDIR)/test_es_unit_list: $(OBJDIR)/test_es_unit_list.o $(STATIC_LIB)
++ $(CC) $< -o $(BINDIR)/test_es_unit_list $(LIBOPTS) $(LDFLAGS)
+
+ # Some header files depend upon others, so including one requires
+ # the others as well
+@@ -299,14 +301,19 @@ 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
+-$(LIB)($(OBJS)) $(TEST_OBJS) $(PROG_OBJS): compat.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
+
+ # Which library modules depend on which header files is complex, so
+ # lets just be simple
+-$(LIB)($(OBJS)): $(ACCESSUNIT_H) $(NALUNIT_H) $(TS_H) $(ES_H) $(PES_H) \
+- misc_fns.h $(PS_H) $(H262_H) $(TSWRITE_H) $(AVS_H) \
+- $(REVERSE_H) $(FILTER_H) $(AUDIO_H)
++$(OBJS): \
++ $(ACCESSUNIT_H) $(NALUNIT_H) $(TS_H) $(ES_H) $(PES_H) \
++ misc_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)
+@@ -389,7 +396,8 @@ objclean:
+ .PHONY: clean
+ clean: objclean
+ -rm -f $(PROGS)
+- -rm -f $(LIB)
++ -rm -f $(STATIC_LIB)
++ -rm -f $(SHARED_LIB)
+ -rm -f $(PROG_OBJS)
+
+ .PHONY: distclean
+--
+1.8.3.2
+