# -*-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 all:; @echo DEF=$(DEF) DEF2=$(DEF2) EOF close(MAKEFILE) &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;