mirror of
https://git.savannah.gnu.org/git/make.git
synced 2025-01-01 01:33:51 +00:00
1f16ee5c2d
- Apply a fix for the "thundering herd" problem when using "-j -l". This also fixes bug #4693. - Fix bug #7257: allow functions as ifdef arguments - Fix bug #4518: make sure we print all double-colon rules with -p. - Upgrade to autconf 2.58/automake 1.8/gettext 0.13.1 - Various doc cleanups, etc.
107 lines
1.6 KiB
Perl
107 lines
1.6 KiB
Perl
# -*-perl-*-
|
|
$description = "Check GNU make conditionals.";
|
|
|
|
$details = "Attempt various different flavors of GNU make conditionals.";
|
|
|
|
open(MAKEFILE,"> $makefile");
|
|
|
|
# The Contents of the MAKEFILE ...
|
|
|
|
print MAKEFILE <<'EOMAKE';
|
|
objects = foo.obj
|
|
arg1 = first
|
|
arg2 = second
|
|
arg3 = third
|
|
arg4 = cc
|
|
arg5 = second
|
|
|
|
all:
|
|
ifeq ($(arg1),$(arg2))
|
|
@echo arg1 equals arg2
|
|
else
|
|
@echo arg1 NOT equal arg2
|
|
endif
|
|
|
|
ifeq '$(arg2)' "$(arg5)"
|
|
@echo arg2 equals arg5
|
|
else
|
|
@echo arg2 NOT equal arg5
|
|
endif
|
|
|
|
ifneq '$(arg3)' '$(arg4)'
|
|
@echo arg3 NOT equal arg4
|
|
else
|
|
@echo arg3 equal arg4
|
|
endif
|
|
|
|
ifndef undefined
|
|
@echo variable is undefined
|
|
else
|
|
@echo variable undefined is defined
|
|
endif
|
|
ifdef arg4
|
|
@echo arg4 is defined
|
|
else
|
|
@echo arg4 is NOT defined
|
|
endif
|
|
|
|
EOMAKE
|
|
|
|
close(MAKEFILE);
|
|
|
|
&run_make_with_options($makefile,"",&get_logfile,0);
|
|
|
|
$answer = "arg1 NOT equal arg2
|
|
arg2 equals arg5
|
|
arg3 NOT equal arg4
|
|
variable is undefined
|
|
arg4 is defined
|
|
";
|
|
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
|
|
# Test expansion of variables inside ifdef.
|
|
|
|
$makefile2 = &get_tmpfile;
|
|
|
|
open(MAKEFILE, "> $makefile2");
|
|
|
|
print MAKEFILE <<'EOF';
|
|
|
|
foo = 1
|
|
|
|
FOO = foo
|
|
F = f
|
|
|
|
DEF = no
|
|
DEF2 = no
|
|
|
|
ifdef $(FOO)
|
|
DEF = yes
|
|
endif
|
|
|
|
ifdef $(F)oo
|
|
DEF2 = yes
|
|
endif
|
|
|
|
|
|
DEF3 = no
|
|
FUNC = $1
|
|
ifdef $(call FUNC,DEF)3
|
|
DEF3 = yes
|
|
endif
|
|
|
|
all:; @echo DEF=$(DEF) DEF2=$(DEF2) DEF3=$(DEF3)
|
|
|
|
EOF
|
|
|
|
close(MAKEFILE)
|
|
|
|
&run_make_with_options($makefile2,"",&get_logfile,0);
|
|
$answer = "DEF=yes DEF2=yes DEF3=yes\n";
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
|
|
# This tells the test driver that the perl test script executed properly.
|
|
1;
|