Traversing the source directories

Ryan Schmidt ryandesign at macports.org
Mon Apr 2 10:17:16 PDT 2012


On Apr 1, 2012, at 20:17, Craig Treleaven wrote:

> http://dl.dropbox.com/u/26787680/Portfile.2012Apr01

In this email I'll offer some suggestions on how the Portfile is written. Later, I'll try to build the port, and in a second email I'll try to help you figure out why there are empty "-L" arguments and what's going wrong with your efforts to remove them.


> github.setup        MythTV mythtv v0.25-rc-0-g92f7d1f

The version number in the github.setup line should only be the version number, typically as it appears in the tag name. There should not be a "v" or other prefix, nor the git revision/branch number. The github.setup procedure accepts a fourth argument for the tag prefix, and the portgroup automatically handles the presence of the randomish branch number in the folder name. So you want simply:

github.setup        MythTV mythtv 0.25-rc v


> configure.args-delete       "-arch i386"

There is no "-arch i386" in configure.args, so this statement does nothing.


> configure.cflags-delete     "-arch i386"
> configure.cflags-append     "-m32"

Why delete "-arch i386" and append "-m32"? Aren't those the same thing?


> configure.ldflags-append    "-m32 -F/System/Library/Frameworks"
> configure.cppflags-append   "-m32"
> configure.cxxflags-append   "-m32"


configure.ldflags and configure.cxxflags similarly already have "-arch i386" in them and thus shouldn't need "-m32". configure.cppflags doesn't need arch flags because the preprocessor doesn't compile anything.


> configure.env-append    QMAKESPEC="macx-g++" \
>                         QMAKE_LIBDIR_OPENGL="/opt/local/lib" \

Don't hardcode /opt/local; use ${prefix}.


> configure.env-delete    -arch i386	# messes up qmake?

That's not a valid environment specifier (which would always have the form KEY=value). So I don't believe this statement does anything.

If you really want MacPorts not to add the -arch flags it normally adds, clear the configure.cc_archflags configure.cxx_archflags configure.ld_archflags variables. Normally you don't want to do that.


> 		system "find ${configure.dir} -name \"Makefile\" -print "
> 		system "find ${configure.dir} -name \"Makefile\" -exec sed -i '' 's/ -L / /g' {} \\; "

"find" can print and exec in the same invocation:

		system "find ${configure.dir} -name \"Makefile\" -print -exec sed -i '' 's/ -L / /g' {} \\; "





More information about the macports-dev mailing list