From owner-freebsd-ports Fri Mar 3 02:06:53 1995 Return-Path: ports-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.9/8.6.6) id CAA08431 for ports-outgoing; Fri, 3 Mar 1995 02:06:53 -0800 Received: from idiom.com (idiom.com [140.174.82.4]) by freefall.cdrom.com (8.6.9/8.6.6) with ESMTP id CAA08417; Fri, 3 Mar 1995 02:06:42 -0800 Received: (from muir@localhost) by idiom.com (8.6.10/8.6.10) id CAA19336; Fri, 3 Mar 1995 02:06:37 -0800 Date: Fri, 3 Mar 1995 02:06:37 -0800 From: David Muir Sharnoff Message-Id: <199503031006.CAA19336@idiom.com> To: jkh@FreeBSD.org Subject: Re: Ok, I'm stumped. Cc: ports@freefall.cdrom.com Sender: ports-owner@FreeBSD.org Precedence: bulk * What would be neat would be some way of picking off the `entry' in * bsd.port.subdir.mk and checking to see if the value of "X${NO_$${ENTRY}}" * = "X", but I don't see any easy way of doing the recursive shell * variable expansion. I'm not much of an sh programmer, but when working with shells, there's just one rule to follow: eval Everything complicated can be done with eval. So, how about? eval SKIP='$'{NO_${ENTRY}} if "X${SKIP}" = "X" ... Hmmm, I'm not sure what's going on with the make interaction. That can get complicated, but it's still probably solveable. Make's reules aren't so easy. I haven't played with the bsd make yet. Hmmm, looks like it happens in bsd.port.mk. At the IS_INTERACTIVE test, you want to test agains the current name... Don't you need to do this in make, not the shell? bsd make doesn't allow $($(X)). Darn. That means it needs to happen at a higher level. Checking... The loop in bsd.port.subdir.mk. I don't know where you can set the variables, but if there are make variables like "NO_gcc-2.6.3", then ... you're out of luck. You can't get at them. 'Hokay, let's put 'em in a file. In a directory with subdir port makes, create a file called ... Skip. Anything in skip is skipped. Use grep in the for loop to check for the presense of the file. Not everything can be done by make. Maybe I'm missing something because I don't know bsd make. gmake does $($(X)) just fine, so I'm a little surprised bsd make doesn't. -Dave