1999-09-14 10:03:19 +08:00
|
|
|
# -*-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));
|
|
|
|
|
2002-09-10 15:27:28 +08:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2004-01-21 14:32:59 +08:00
|
|
|
|
|
|
|
DEF3 = no
|
|
|
|
FUNC = $1
|
|
|
|
ifdef $(call FUNC,DEF)3
|
|
|
|
DEF3 = yes
|
|
|
|
endif
|
|
|
|
|
|
|
|
all:; @echo DEF=$(DEF) DEF2=$(DEF2) DEF3=$(DEF3)
|
2002-09-10 15:27:28 +08:00
|
|
|
|
|
|
|
EOF
|
|
|
|
|
2002-09-11 06:23:20 +08:00
|
|
|
close(MAKEFILE)
|
|
|
|
|
2002-09-10 15:27:28 +08:00
|
|
|
&run_make_with_options($makefile2,"",&get_logfile,0);
|
2004-01-21 14:32:59 +08:00
|
|
|
$answer = "DEF=yes DEF2=yes DEF3=yes\n";
|
2002-09-10 15:27:28 +08:00
|
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
|
|
|
|
|
1999-09-14 10:03:19 +08:00
|
|
|
# This tells the test driver that the perl test script executed properly.
|
|
|
|
1;
|