Thanks Joshua. I have never seen "-Xarch" before in a Makefile. That looks like very simple and elegant way to address the issue. I will give it a shot. I will be able to easily verify that it works because Intel builds will fail with following error if CFLAGS contains the -faltivec flag:
clang: error: invalid argument '-faltivec' only allowed with 'ppc/ppc64' I am glad to hear that I can use conditional expressions in my Portfiles, if need be. It looks like I will need to brush up on my Tcl. Thanks again, Rob ________________________________ From: Joshua Root <j...@macports.org> Sent: July 31, 2022 9:38 PM To: Robert Kennedy <am...@hotmail.com> Cc: MacPorts Development <macports-dev@lists.macports.org> Subject: Re: Help with New Port - M2VDownsizer 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