mirror of
https://github.com/mirror/make.git
synced 2025-01-05 09:50:09 +08:00
7ea029a07c
Fix bug #103: allow ifdef, export, and unexport to expand their arguments.
102 lines
1.6 KiB
Perl
102 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);
|
|
|
|
# Create the answer to what should be produced by this Makefile
|
|
$answer = "arg1 NOT equal arg2
|
|
arg2 equals arg5
|
|
arg3 NOT equal arg4
|
|
variable is undefined
|
|
arg4 is defined
|
|
";
|
|
|
|
# COMPARE RESULTS
|
|
|
|
&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
|
|
|
|
all:; @echo DEF=$(DEF) DEF2=$(DEF2)
|
|
|
|
EOF
|
|
|
|
&run_make_with_options($makefile2,"",&get_logfile,0);
|
|
$answer = "DEF=yes DEF2=yes\n";
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
|
|
# This tells the test driver that the perl test script executed properly.
|
|
1;
|