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