My latest patch against the cygwin070patches branch r30596.
* Finished implementation of the makefile expansion - "perl-style" * Changed all relevant makefile templates.make fulltest and make codetest has the same few mt-thread and resume errors as always.
A new idea: =========== #IF(darwin): #ALSO:# MACOSX_DEPLOYMENT_TARGET must be defined for OS X #ALSO:export MACOSX_DEPLOYMENT_TARGET := @osx_version@ The POD for this change: ======================== =item conditioned_lines #IF #UNLESS #ELSIF #ELSE If conditioned_lines is true, then several expressions at the first column are evaluated and replaced by the content after the C<:> dependending on the evaluation of the expression. Lines beginning with C<#IF(expr):> are skipped if the expr condition is false, otherwise the content after the C<:> is inserted. Lines beginning with C<#UNLESS(expr):> are skipped if the expr condition is true.Lines beginning with C<#ELSIF(expr):> are evaluated if the former C<#IF(expr):>
evaluated to false. Lines beginning with C<#ELSE:> are evaluated if the former C<#IF(expr):> or C<#ELSIF(expr):> evaluated to false. For legacy the old syntax #CONDITIONED_LINE(var): and #INVERSE_CONDITIONED_LINE(var): is also supported. For lispers the well-known reader-macro syntax #+(and key1 (not key2)): is also supported, #+ #- with and, or and not, or being the default for multiple keys without operator. But note the ending C<:>. A condition expr may be: * a single key, which is true if a config key is true - not 0 and not undef and not an empty string, * or equal to the platform name, the perl5 osname - case-sensitive, * or a key=value expression, which checks for the config key, Note that values may contain no spaces here. Quotes in values are not supported. * or a logical combination of C<|> (or), C<&> (and) and C<!> (not), with the following order of precedence: ! & | A key must only consist of word characters, and is checked case-sensitively against the config key or the platform name. For instance: #IF(win32): $(SRC_DIR)/atomic/gcc_x86$(O) will be processed if the platform is win32. #IF(cpuarch=i386): $(SRC_DIR)/atomic/gcc_x86$(O) will be skipped if the value of the config key "cpuarch" is not "i386". #IF(cpuarch=i386): $(SRC_DIR)/atomic/gcc_x86$(O) #ELSIF(cpuarch=sparcv9): $(SRC_DIR)/atomic/sparc_v9.s #ELSE: will use " $(SRC_DIR)/atomic/gcc_x86$(O)" on cpuarch=i386, " $(SRC_DIR)/atomic/sparc_v9.s" on cpuarch=sparcv9 and print an empty line otherwise. #IF(win32 & glut & !cygwin): will be used on win32 and if glut is defined, but not on cygwin. The hairy parts from the testsuite ================================== dummy1=true, dummy2=false, dummy3=xx ["IF(dummy1&!dummy2&dummy3)", 1], ["UNLESS(!(dummy1&!dummy2&dummy3))", 1], ["IF(dummy1&(!dummy2&dummy3))", 1], ["IF(dummy1 & (dummy3=xx & (!dummy2)))", 1], -- Reini Urban http://phpwiki.org/ http://murbreak.at/
cygwin070patches_4.patch.gz
Description: GNU Zip compressed data