<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/46d90d66492ee6df6af82f1f313d5007107e2664">https://github.com/macports/macports-ports/commit/46d90d66492ee6df6af82f1f313d5007107e2664</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 46d90d66492 M2VDownsizer: new port (#15636)
</span>46d90d66492 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 46d90d66492ee6df6af82f1f313d5007107e2664
</span>Author: RobK88 <amtor@hotmail.com>
AuthorDate: Fri Sep 2 13:48:38 2022 -0400

<span style='display:block; white-space:pre;color:#404040;'>    M2VDownsizer: new port (#15636)
</span>---
 multimedia/M2VDownsizer/Portfile                   |  64 +++++
 .../files/1001-Replace-MPProcessors-Patch.diff     |  43 +++
 .../files/1002-libmpeg2-Linkage-Patch.diff         |  22 ++
 .../M2VDownsizer/files/1003-Patch-config.h.diff    | 158 +++++++++++
 .../files/1004-Fix-Includes-in-mjpeg_logging.diff  |  11 +
 multimedia/M2VDownsizer/files/M2VDownsizer.1       |  95 +++++++
 multimedia/M2VDownsizer/files/Makefile             | 302 +++++++++++++++++++++
 7 files changed, 695 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/M2VDownsizer/Portfile b/multimedia/M2VDownsizer/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4479b6e1c80
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/M2VDownsizer/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,64 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           makefile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                M2VDownsizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          multimedia
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             GPL-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {hotmail.com:amtor @RobK88} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         MPEG-2 video stream recompressesion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    ${name} is a tool that re-compresses MPEG-2 (or m2v) video \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    streams.  In other words, ${name} will perform a complete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    decompression and recompression of MPEG-2 video streams for the \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    best possible video quality.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \n \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \n${name} accepts the raw MPEG-2 (or m2v) video data (not VOB) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    from the standard input and writes the recompressed video frames \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    to the standard output.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \n \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \nBe forewarned!  Decompression and recompression could take \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    hours for large MPEG-2 video streams!  It is recommended that one \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    first tries transcoding MPEG-2 streams using M2VRequantiser since \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    transcoding is a lot faster and produces excellent results for most \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    MPEG-2 video streams.  ${name} is only intended to be used for \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    large MPEG-2 video streams when transcoding does not produce \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    acceptable results.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://web.archive.org/web/20120508050929if_/http://www.metakine.com/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        ${homepage}files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append  port:libmpeg2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160 d662bfe195b59f5815bfdccaf3f81dae46d4e0d8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256 316a931810116d70a07cb57a80ae8483fa949bd575beee222a9a8e375c4d8590 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size 371928
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname            ${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+dist_subdir         ${name}/${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+extract.suffix      .tgz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     copy ${filespath}/Makefile ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     copy ${filespath}/${name}.1 ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     file mkdir ${worksrcpath}/obj/utils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     file mkdir ${worksrcpath}/obj/altivec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     file mkdir ${worksrcpath}/obj/mpeg2enc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     file mkdir ${worksrcpath}/obj/main
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   1001-Replace-MPProcessors-Patch.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    1002-libmpeg2-Linkage-Patch.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    1003-Patch-config.h.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    1004-Fix-Includes-in-mjpeg_logging.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0755 ${worksrcpath}/${name} ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 ${filespath}/${name}.1 ${destroot}${prefix}/share/man/man1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/M2VDownsizer/files/1001-Replace-MPProcessors-Patch.diff b/multimedia/M2VDownsizer/files/1001-Replace-MPProcessors-Patch.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7f26545726c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/M2VDownsizer/files/1001-Replace-MPProcessors-Patch.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,43 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- main.c.orig    2005-07-03 13:49:38.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ main.c 2022-07-31 14:16:35.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,3 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//#define LINUX  // Activate if system is using Linux!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <config.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,6 +10,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef LINUX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <CoreServices/CoreServices.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//#include <CoreServices.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unistd.h> 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define GLOBAL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,12 +35,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int param_qual,                 // quality preset, 0=fast, 3=hq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          param_quant,    // base thing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    param_quant,            // base thing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    param_num_cpus;         // 1 = mono, 2 = dual
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef LINUX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          param_num_cpus = MPProcessors(); // 1 = mono, 2 = dual
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // param_num_cpus = MPProcessors(); // 1 = mono, 2 = dual
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    size_t count_len = sizeof(param_num_cpus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sysctlbyname("hw.logicalcpu", &param_num_cpus, &count_len, NULL, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          param_num_cpus = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // param_num_cpus = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    param_num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (param_num_cpus < 1) { param_num_cpus = 1; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   double param_fact_x;    // total size should be divided by this factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long long param_orim2vsize;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/M2VDownsizer/files/1002-libmpeg2-Linkage-Patch.diff b/multimedia/M2VDownsizer/files/1002-libmpeg2-Linkage-Patch.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bce83321754
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/M2VDownsizer/files/1002-libmpeg2-Linkage-Patch.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- main.c.Rev1    2022-07-31 14:16:35.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ main.c 2022-07-31 14:24:30.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -102,7 +102,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // - - - - - - - - - -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "mpeg2.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <mpeg2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RAWBUFSIZE (1024*1024*8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int HasAltiVec(); // defined in readPic.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int extractFrame()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mpeg2enc/readpic.c.orig        2022-07-31 14:17:18.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mpeg2enc/readpic.c     2022-07-31 14:28:55.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,7 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #warning "Compiling in RELEASE mode..."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "mpeg2.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <mpeg2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *mpeg2dec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RAWBUFSIZE 4096
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char rawbuf[RAWBUFSIZE];
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/M2VDownsizer/files/1003-Patch-config.h.diff b/multimedia/M2VDownsizer/files/1003-Patch-config.h.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..45a2d2c39d3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/M2VDownsizer/files/1003-Patch-config.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,158 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config.h.orig  2006-02-27 21:38:49.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ config.h       2022-08-07 09:08:01.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,75 +1,83 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define _GNU_SOURCE 1                     /* We make some use of C9X and POSIX and GNU facilities... */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef MY_CONFIG_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define MY_CONFIG_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define _FILE_OFFSET_BITS 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define _LARGEFILE_SOURCE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define _LARGEFILE64_SOURCE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_PTHREADSTACKSIZE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_PPCCPU 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef LINUX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #if defined(__ppc__) || defined(__ppc64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          #define HAVE_ALTIVEC 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #elif defined(__i386__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define _GNU_SOURCE 1                 /* We make some use of C9X and POSIX and GNU facilities... */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #ifndef _FILE_OFFSET_BITS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #define _FILE_OFFSET_BITS 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #elif _FILE_OFFSET_BITS != 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #undef _FILE_OFFSET_BITS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #define _FILE_OFFSET_BITS 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define _LARGEFILE_SOURCE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define _LARGEFILE64_SOURCE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_PTHREADSTACKSIZE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_PPCCPU 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_LIBPTHREAD 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #ifndef LINUX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #if defined(__ppc__) || defined(__ppc64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #define ARCH_PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #define HAVE_ALTIVEC 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #elif defined(__i386__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #define ARCH_X86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #elif defined(__x86_64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #define ARCH_X86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #elif defined ((__arm64__) && defined(__APPLE__)) || (__aarch64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #define ARCH_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #define ARCH_X86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_BUILTIN_EXPECT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define PRID64_STRING_FORMAT "lld"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define MJPEGTOOLS 1  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_GETTIMEOFDAY 1   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_FENV_H 1 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_INTTYPES_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_MEMORY_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_STDBOOL_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_STDINT_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_STDLIB_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_STRINGS_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_STRING_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_SYS_STAT_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_SYS_TIMEB_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_SYS_TIME_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_SYS_TYPES_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE_UNISTD_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define HAVE___PROGNAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define PACKAGE "M2VDownsizer"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define PACKAGE_BUGREPORT ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define PACKAGE_NAME ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define PACKAGE_STRING ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define PACKAGE_TARNAME ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define PACKAGE_VERSION ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define RETSIGTYPE void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define SIZEOF_INT 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define SIZEOF_LONG 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define SIZEOF_LONG_LONG 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define STDC_HEADERS 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define VERSION "1.1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #ifndef LINUX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #define WORDS_BIGENDIAN 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define X_DISPLAY_MISSING 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define inline inline __attribute__ ((__always_inline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #define restrict __restrict__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_LIBPTHREAD 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef LINUX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #if defined(__ppc__) || defined(__ppc64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          #define ARCH_PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #elif defined(__i386__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          #define ARCH_X86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define ARCH_X86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_STDINT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_BUILTIN_EXPECT 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define PRID64_STRING_FORMAT "lld"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define MJPEGTOOLS 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_GETTIMEOFDAY 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_FENV_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_INTTYPES_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_MEMORY_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_STDBOOL_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_STDINT_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_STDLIB_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_STRINGS_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_STRING_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_SYS_STAT_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_SYS_TIMEB_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_SYS_TIME_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_SYS_TYPES_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE_UNISTD_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define HAVE___PROGNAME 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define PACKAGE "DVDDownsizer"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define PACKAGE_BUGREPORT ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define PACKAGE_NAME ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define PACKAGE_STRING ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define PACKAGE_TARNAME ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define PACKAGE_VERSION ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define RETSIGTYPE void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define SIZEOF_INT 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define SIZEOF_LONG 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define SIZEOF_LONG_LONG 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define STDC_HEADERS 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define VERSION "0.0.1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef LINUX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define WORDS_BIGENDIAN 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define X_DISPLAY_MISSING 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define inline __attribute__ ((__always_inline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define restrict __restrict__
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/M2VDownsizer/files/1004-Fix-Includes-in-mjpeg_logging.diff b/multimedia/M2VDownsizer/files/1004-Fix-Includes-in-mjpeg_logging.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..90b349becbb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/M2VDownsizer/files/1004-Fix-Includes-in-mjpeg_logging.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- utils/mjpeg_logging.c.orig     2022-08-01 22:50:29.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ utils/mjpeg_logging.c  2022-08-01 22:51:15.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef HAVE_CONFIG_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# include "config.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <config.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/M2VDownsizer/files/M2VDownsizer.1 b/multimedia/M2VDownsizer/files/M2VDownsizer.1
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c3daa791145
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/M2VDownsizer/files/M2VDownsizer.1
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,95 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.\" Originally automatically generated by txt2man and then modified by MacPorts developers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.TH M2VDownsizer 1 "September 2, 2022" "M2VDownsizer-1.1" "MPEG-2 Video Stream Re-compression"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH NAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP - Re-compresses MPEG-2 video streams
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH SYNOPSIS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.nf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP <lowering factor> <quality 0=fast...3=high quality>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<input m2v size in bytes>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH DESCRIPTION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP is a tool that shrinks the size of MPEG-2 (or m2v) video
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+streams (typically from DVD video discs) by performing a complete
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+decompression and recompression of the MPEG-2 video streams.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Performing a complete decompression and recompression of MPEG-2 video streams
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+will result in the best possible video quality but the operation will take
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+substantially longer compared to transcoding the MPEG-2 video streams using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VRequantiser\fP.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Be forewarned!  It could take many hours for \fBM2VDownsizer\fP to perfom the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+complete decompression and recompression of large MPEG-2 video streams!  It is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+recommended that one first tries transcoding MPEG-2 streams using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VRequantiser\fP since transcoding is a lot faster and produces excellent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+results for most MPEG-2 video streams.  \fBM2VDownsizer\fP is only intended to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+be used for large MPEG-2 video streams when transcoding does not produce
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+acceptable results.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP accepts the raw MPEG-2 (or m2v) video data (not VOB) from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the standard input and writes the recompressed video frames to the standard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH OPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP takes three arguments and does not have any options.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The usage is:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.nf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.HP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $ M2VDownsizer <lowering factor> <quality 0=fast...3=high quality>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<input m2v size in bytes>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The first argument is a floating point value specifying the lowering factor for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+re-compression.  The higher the lowering factor, the higher the re-compression
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+will be.  The second argument is an integer value from 0 to 3 specifying the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+quality of the re-compressed MPEG-2 output video (0=lowest quality and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+3=highest quality).  The third argument is the size of the MPEG-2 input video
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+in bytes.  (Since the MPEG-2 video is streamed into \fBM2VDownsizer\fP,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP is unable to determine the MPEG-2 input video size by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+itself).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To shrink MPEG-2 video from a DVD-9 disc to fit on a DVD-5 disc, a lowering
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+factor of 1.5 works well in most cases.  Alternatively, use the following
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+formula to more precisely calculate the lowering factor:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.nf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lowering factor = (Total m2v video size in bytes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      ----------------------------------------  * 1.04
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      (4700000000 - Total audio size in bytes) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH NOTES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VDownsizer\fP was designed to recompress MPEG-2 (or m2v) video streams
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+from DVD video discs.  The recompression of MPEG-2 (or m2v) video streams with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+resolutions higher than those found on DVD video discs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(i.e. resolutions greater than 720x576) may lead to undesirable and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+unpredictable results.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH EXAMPLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The following command would re-compress 'original.m2v', whose size is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+5,974,039,472 bytes, by a lowering factor of 1.46 with the quality of 2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.nf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    $ M2VDownsizer 1.46 2 5974039472 < original.m2v > re-compressed.m2v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fam T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It will take a long time for \fBM2VDownsizer\fP to completely decompress and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+recompress the MPEG-2 video in the above example.  Time to take a long coffee
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+break!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH SEE ALSO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\fBM2VRequantiser\fP(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.SH AUTHOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The author is Makira.  \fBM2VDownsizer\fP was released as open source software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+on the website for Metakine Inc., the developer of DVDRemaster.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This manual page was written by Robert Kennedy <amtor@hotmail.com> for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts project (but may be used by others).
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/M2VDownsizer/files/Makefile b/multimedia/M2VDownsizer/files/Makefile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..2c35ae064b5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/M2VDownsizer/files/Makefile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,302 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Makefile for M2VDowsizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Author:   Robert Kennedy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# EMAIL:    amtor@hotmail.com
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# License for Makefile:  GPL-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'make depend'     uses makedepend to automatically generate dependencies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                   (dependencies are added to end of Makefile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'make'            build executable file 'M2VDownsizer'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'make install'    installs M2VDownsizer into $(DESTDIR)$(PREFIX)/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'make uninstall'  uninstalls M2VDownsizer from $(DESTDIR)$(PREFIX)/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'make clean'      removes all .o and executable files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'make status'     displays status of build and installation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'make print-'     prints the value of a variable used in the Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define installation Prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PREFIX ?= /usr/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the C compiler to use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+CC ?= cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define any compile-time flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+CFLAGS += -Wall -g -Wno-unused-command-line-argument
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#CFLAGS += -mmacosx-version-min=10.7 -isysroot /Developer/SDKs/MacOSX10.7.sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Not necessary for most Macs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# But will eliminate some linker warning messages especially on High Sierra and Mojave
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Multi-line comment!  Remove ifeq and corresponding endif to uncomment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifeq ("x","y")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MAJOR_MACOS_VERSION := $(shell osv="$(shell sw_vers -productVersion | cut -d '.' -f 1,2)"; echo "$${osv%}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SDK_PATH := $(shell v="$(shell xcrun --show-sdk-path)"; echo "$${v%}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+CFLAGS += -mmacosx-version-min=$(MAJOR_MACOS_VERSION) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-isysroot $(SDK_PATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Append additional architecture dependent compile-time flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+CFLAGS += -Xarch_ppc -faltivec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+CFLAGS += -Xarch_ppc64 -faltivec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Alternative code for appending additional architecture dependent compile-time flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Note: Use as last resort
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#       It is better to use "-Xarch_ppc" etc. as these CFLAGS will work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#       when cross-compiling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Multi-line comment!  Remove first ifeq and corresponding endif to uncomment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifeq ("x","y")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+UNAME_P := $(shell uname -p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifeq ($(findstring ppc, $(UNAME_P)), ppc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   CFLAGS += -faltivec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   CXXFLAGS += -flativec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define any additional linker flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+LDFLAGS +=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define any directories containing header files other than directory containing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the system header files, typically /usr/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   Statement Format: INCLUDES := -Iinclude_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   E.g. INCLUDES := -I./  -I/opt/local/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+INCLUDES := -I./ -Iutils -Iutils/altivec -Impeg2dec -Impeg2enc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#-I/System/Library/Frameworks/CoreServices.framework/Headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define library directories other than the system library directory, typically /usr/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   Statement Format:  LFLAGS := -Llibrary_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   E.g. LIBDIRS := -L/opt/local/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+LIBDIRS :=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define any macOS frameworks directories other than the system Frameworks directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   Statement Format: FFLAGS:= -Fframework_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   E.g. FWORKDIRS = -F./ -F/System/Library/Frameworks/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#FWORKDIRS := -F./ -F/System/Library/Frameworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+FWORKDIRS :=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define any libraries to link into executable:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   Statement Format: LIBS := -llibname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   E.g. if I want to link the math library, use -lm as follows:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   LIBS := -lm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+LIBS := -lmpeg2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define any macOS frameworks to link into executable:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   Statement Format: FWORKS := -framework framework_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   E.g. FWORKS := -framework CoreServices
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+FWORKS := -framework CoreServices
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the C source code files and directories
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCS-UTILS := $(shell find utils ! -path utils -prune -type f -name '*.c' -exec basename {} \;)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCS-MPEG2ENC := $(shell find mpeg2enc -type f -name '*.c' -exec basename {} \;)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCS-ALTIVEC := $(shell find utils/altivec -type f -name '*.c' -exec basename {} \;)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCS-ALTIVEC-ASSM := $(shell find utils/altivec -type f -name '*.S' -exec basename {} \;)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCS-MAIN := $(shell find ./ ! -path ./ -prune -type f -name '*.c' -exec basename {} \;)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCDIR-UTILS := utils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCDIR-ALTIVEC := utils/altivec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCDIR-MPEG2ENC := mpeg2enc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SRCDIR-MAIN := ./
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the C object files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# This uses Suffix Replacement within a macro:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   $(name:string1=string2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#         For each word in 'name' replace 'string1' with 'string2'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Below we are replacing the suffix .c of all words in the macro SRCS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# with the .o suffix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJS-UTILS := $(SRCS-UTILS:.c=.o)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJS-ALTIVEC := $(SRCS-ALTIVEC:.c=.o)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJS-ALTIVEC-ASSM:= $(SRCS-ALTIVEC-ASSM:.S=.o)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJS-MPEG2ENC := $(SRCS-MPEG2ENC:.c=.o)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJS-MAIN := $(SRCS-MAIN:.c=.o)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define main object directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJDIR := obj
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define object sub-directories
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Do not change the following directories!!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The name of the last directory MUST match the name of the corresponding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# source directory in order for makedepend to work!!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# (unless the -p option is used with makedepend)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJDIR-UTILS := $(OBJDIR)/utils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJDIR-ALTIVEC := $(OBJDIR)/altivec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJDIR-MPEG2ENC := $(OBJDIR)/mpeg2enc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OBJDIR-MAIN := $(OBJDIR)/main
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the final executable file(s)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PRODUCT := M2VDownsizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the PHONY targets
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PHONY: all depend clean utils altivec mpeg2enc main objects install uninstall \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+print- status
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# define the default target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The default target is typically the "all" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default: all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the "all" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+all: utils altivec mpeg2enc main $(PRODUCT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The following also works for the "all" PHONY target but will not display messages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# after each subdirectory has been processed (e.g. compiled).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# all: $(PRODUCT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define $(PRODUCT) real target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Note:  Do not add phony targets to the $(PRODUCT) REAL target.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Phony targets should not be a prerequisite of a real target file!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# If a phony target is a prerequisite, the recipe for the phony target will run every
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# single time the REAL target is run!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(PRODUCT): $(patsubst %,$(OBJDIR-UTILS)/%,$(OBJS-UTILS)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-ALTIVEC)/%,$(OBJS-ALTIVEC)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-ALTIVEC)/%,$(OBJS-ALTIVEC-ASSM)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-MPEG2ENC)/%,$(OBJS-MPEG2ENC)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-MAIN)/%,$(OBJS-MAIN))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** Starting Linking ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDES) -o $(PRODUCT) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-UTILS)/%,$(OBJS-UTILS)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-ALTIVEC)/%,$(OBJS-ALTIVEC)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-ALTIVEC)/%,$(OBJS-ALTIVEC-ASSM)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-MPEG2ENC)/%,$(OBJS-MPEG2ENC)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-MAIN)/%,$(OBJS-MAIN)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(LIBDIRS) $(FWORKDIRS) $(LIBS) $(FWORKS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** Linking Complete! $(PRODUCT) has been created! ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define all the other PHONY targets
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# One must use @echo here and NOT $(info ) because $(info ) will not print shell variables!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# @echo uses the shell.  One must escape special characters like * ' " \ etc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# OR place text with special characters in single quotes (')like was done above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# $(info ) is a Make command and does NOT use the shell.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Note: @echo must be used within a recipe.  $(info ) can be used anywhere in a Makefile.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+utils: $(patsubst %,$(OBJDIR-UTILS)/%,$(OBJS-UTILS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** Finished processing the utils directory ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+altivec: utils $(patsubst %,$(OBJDIR-ALTIVEC)/%,$(OBJS-ALTIVEC)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(patsubst %,$(OBJDIR-ALTIVEC)/%,$(OBJS-ALTIVEC-ASSM))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** Finished processing the utils/altivec directory ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mpeg2enc: utils altivec $(patsubst %,$(OBJDIR-MPEG2ENC)/%,$(OBJS-MPEG2ENC))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** Finished processing the mpeg2enc directory ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+main: utils altivec mpeg2enc $(patsubst %,$(OBJDIR-MAIN)/%,$(OBJS-MAIN))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** Finished processing the working directory ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+objects: utils altivec mpeg2enc main
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** objects have been created but have NOT been linked together ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '*** Run "make" or "make $(PRODUCT)" to link objects into $(PRODUCT) ***'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Suffix replacement rules for building .o's from .c's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# it uses automatic variables $<: the name of the prerequisite of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the rule(a .c file) and $@: the name of the target of the rule (a .o file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# (see the gnu make manual section about automatic variables)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#.c.o:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#  $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(OBJDIR-UTILS)/%.o: $(SRCDIR-UTILS)/%.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(OBJDIR-ALTIVEC)/%.o: $(SRCDIR-ALTIVEC)/%.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(OBJDIR-ALTIVEC)/%.o: $(SRCDIR-ALTIVEC)/%.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(OBJDIR-MPEG2ENC)/%.o: $(SRCDIR-MPEG2ENC)/%.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(OBJDIR-MAIN)/%.o: $(SRCDIR-MAIN)/%.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the "clean" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+clean:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** Removing any built object files and binaries! ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(RM) $(OBJDIR-UTILS)/*.o $(OBJDIR-ALTIVEC)/*.o \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(OBJDIR-MPEG2ENC)/*.o $(OBJDIR-MAIN)/*.o *.o *~ $(PRODUCT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** All done! ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the "depend" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depend: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#  makedepend $(INCLUDES) $^
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# $^ is a makefile symbol that represents all the prerequisites of a target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Will not work here since all the prerequisites are .PHONY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   makedepend $(INCLUDES) -p$(OBJDIR)/  $(patsubst %,$(SRCDIR-UTILS)/%,$(SRCS-UTILS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   makedepend $(INCLUDES) -a -p$(OBJDIR)/  $(patsubst %,$(SRCDIR-ALTIVEC)/%,$(SRCS-ALTIVEC))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   makedepend $(INCLUDES) -a -p$(OBJDIR)/  $(patsubst %,$(SRCDIR-ALTIVEC)/%,$(SRCS-ALTIVEC-ASSM)) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   makedepend $(INCLUDES) -a -p$(OBJDIR)/  $(patsubst %,$(SRCDIR-MPEG2ENC)/%,$(SRCS-MPEG2ENC))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   makedepend $(INCLUDES) -a -p$(OBJDIR-MAIN)/ $(SRCS-MAIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the "install" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+install:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifneq ("$(wildcard ./$(PRODUCT))","")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** Installing $(PRODUCT) ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   install -m 0755 $(PRODUCT) $(DESTDIR)$(PREFIX)/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** $(PRODUCT) has been installed into the $(DESTDIR)$(PREFIX)/bin directory ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** Nothing to install.  $(PRODUCT) does not exist!  Run \"make\" first ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the "uninstall" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+uninstall:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifneq ("$(wildcard $(DESTDIR)$(PREFIX)/bin/$(PRODUCT))","")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** Uninstalling $(PRODUCT) ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rm -f $(DESTDIR)$(PREFIX)/bin/M2VDownsizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** $(PRODUCT) has been removed from the $(DESTDIR)$(PREFIX)/bin directory ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "*** Nothing happened! $(PRODUCT) is not installed! ***"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the "print-" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Use the "print-" PHONY target to print the value of a variable used in the Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# E.g.  make print-CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#       will print the value(s) contained in CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+print-%:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo $*=$($*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the "status" PHONY target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+status:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifneq ("$(wildcard ./$(PRODUCT))","")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "$(PRODUCT) has been built."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "$(PRODUCT) has not been built. Run \"make\" to build."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ifneq ("$(wildcard $(DESTDIR)$(PREFIX)/bin/$(PRODUCT))","")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "$(PRODUCT) has been installed into the $(DESTDIR)$(PREFIX)/bin directory."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo "$(PRODUCT) has not been installed! Run \"sudo make install\" to install."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# DO NOT DELETE THIS LINE -- make depend needs it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>