Help with New Port - M2VDownsizer

Joshua Root jmr at macports.org
Mon Aug 1 01:38:12 UTC 2022


On 2022-8-1 10:11 , Robert Kennedy wrote:
> Hello everyone!
> 
> I am working on a new port, M2VDownzsizer, which is a sister port to the 
> recent existing port, M2VRequantiser.  Both ports are command line 
> programs that shrink MPEG-2 video and are commonly used when shrinking  
> a DVD-9 video disc to fit onto a much more affordable DVD-5 writable disc.
> 
> M2VDownsizer was released as an open source project many years ago and 
> was developed as an old XCode project for Macs running PowerPC and Intel 
> 32 bit.  The code is quite old.
> 
> I have converted the project from an XCode project to a much simpler 
> project using a Makefile.  I have also hacked and updated the code so it 
> will run on modern compilers.  I also eliminated the need to compile the 
> very old libraries in the source code by linking to much more up to date 
> libraries available in Macports.  I have even written a man page!  
> M2VDownsizer appears to run just fine on more modern Macs!
> 
> Now my challenge is creating a Portfile!  I have a couple of questions:
> 
>  1.   How do I tell Macports to copy my Makefile (which I will place in
>     the Files directory along with my source code patches) into my
>     working directory before building?  (The original source never had a
>     Makefile so there is nothing to patch).  P.S.  I could always create
>     my own GitHub project and download the source (with the Makefile)
>     from there.

post-extract {
     copy ${filespath}/Makefile ${worksrcpath}
}

>  2. How do I tell Macports to include the -faltivec flag in CFLAGS but
>     only when a ppc build is being done?  I have the following in my
>     Makefile but I suspect it would be much better to address this issue
>     in the Portfile in case an Intel Mac is trying to build a ppc/x86
>     FAT binary:
> 
>         ifeq ($(findstring ppc, $(UNAME_P)), ppc)
>               CFLAGS += -faltivec
>               CXXFLAGS += -flativec
>         endif

You could instead do:
CFLAGS += -Xarch_ppc -faltivec
CXXFLAGS += -Xarch_ppc -faltivec

That will apply -faltivec only when building for ppc.

>       3. Is there anything like an "if-then-else" statement in Portfiles?

Yes, Portfiles are written in Tcl and can use all Tcl's control flow 
mechanisms.

- Josh


More information about the macports-dev mailing list