| # -*-perl-*- |
| |
| $description = "Test the -C option to GNU Make."; |
| |
| use File::Spec; |
| |
| # Pre-set $makefile to be in a subdirectory |
| $makefile = 'Makefile'; |
| |
| my $_srcdir = 'src'; |
| mkdir($_srcdir, 0775); |
| |
| my $_incdir = 'inc'; |
| mkdir($_incdir, 0775); |
| |
| my $_mkpath = File::Spec->catfile($_srcdir, $makefile); |
| create_file($_mkpath, "include \$(file)\nall: ;\n"); |
| |
| # TEST #1 |
| # ------- |
| run_make_test('', "-C $_srcdir --no-print-directory", |
| "#MAKE#: 'all' is up to date."); |
| |
| # TEST #2 |
| # ------- |
| # Do it again with trailing "/"; this should work the same |
| |
| run_make_test(undef, "-C $_srcdir/ --no-print-directory", |
| "#MAKE#: 'all' is up to date."); |
| |
| # Test stringing together multiple -C options |
| |
| run_make_test(undef, "-C $_incdir -C .. -C $_srcdir --no-print-directory", |
| "#MAKE#: 'all' is up to date."); |
| |
| # SV 63552 - Ensure -I is considered after -C |
| |
| my $_incfile = 'test'; |
| my $_incpath = File::Spec->catfile($_incdir, $_incfile); |
| create_file($_incpath, '$(info included)'); |
| |
| my $_incopt = File::Spec->catfile('..', $_incdir); |
| |
| run_make_test(undef, "-C src -I $_incopt --no-print-directory file=$_incfile", |
| "included\n#MAKE#: 'all' is up to date."); |
| |
| unlink($_incpath); |
| rmdir($_incdir); |
| |
| unlink($_mkpath); |
| rmdir($_srcdir); |
| 1; |