summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Hay <steve.m.hay@googlemail.com>2017-03-12 15:37:57 +0000
committerSteve Hay <steve.m.hay@googlemail.com>2017-03-12 15:37:57 +0000
commit458ea8f78a2917d05a5d5ff7877f279f6403eb67 (patch)
tree418f21a123c59dc897c226db8bf63ab51cd4d21b
parent5173674b1cb46b59301b559929904bc67fa15056 (diff)
downloadperl-458ea8f78a2917d05a5d5ff7877f279f6403eb67.tar.gz
Make DEFAULT_INC_EXCLUDES_DOT the default on Windows
and provide a makefile option of the same name to control it. It is set to 'define' by default, but can be commented out or set to 'undef' in the usual manner to switch it off and return to the legacy default behaviour of including '.' at the end of @INC.
-rw-r--r--t/win32/runenv.t7
-rw-r--r--win32/GNUmakefile8
-rw-r--r--win32/Makefile11
-rw-r--r--win32/Makefile.ce11
-rw-r--r--win32/config_H.ce6
-rw-r--r--win32/config_H.gc6
-rw-r--r--win32/config_H.vc6
-rw-r--r--win32/makefile.mk8
8 files changed, 62 insertions, 1 deletions
diff --git a/t/win32/runenv.t b/t/win32/runenv.t
index 0e2b0ca015..514eda0c20 100644
--- a/t/win32/runenv.t
+++ b/t/win32/runenv.t
@@ -206,7 +206,12 @@ is ($err, '', 'No errors when determining @INC');
my @default_inc = split /\n/, $out;
-is ($default_inc[-1], '.', '. is last in @INC');
+if ($Config{default_inc_excludes_dot}) {
+ ok !(grep { $_ eq '.' } @default_inc), '. is not in @INC';
+}
+else {
+ is ($default_inc[-1], '.', '. is last in @INC');
+}
my $sep = $Config{path_sep};
my @test_cases = (
diff --git a/win32/GNUmakefile b/win32/GNUmakefile
index 0821b4d461..c5374ef8a0 100644
--- a/win32/GNUmakefile
+++ b/win32/GNUmakefile
@@ -136,6 +136,12 @@ USE_LARGE_FILES := define
#USE_LONG_DOUBLE :=define
#
+# Comment this out if you want the legacy default behavior of including '.' at
+# the end of @INC.
+#
+DEFAULT_INC_EXCLUDES_DOT := define
+
+#
# Uncomment this if you want to disable looking up values from
# HKEY_CURRENT_USER\Software\Perl and HKEY_LOCAL_MACHINE\Software\Perl in
# the Registry.
@@ -296,6 +302,7 @@ USE_PERLIO ?= undef
USE_LARGE_FILES ?= undef
USE_64_BIT_INT ?= undef
USE_LONG_DOUBLE ?= undef
+DEFAULT_INC_EXCLUDES_DOT ?= undef
USE_NO_REGISTRY ?= undef
ifeq ($(USE_IMP_SYS),define)
@@ -1128,6 +1135,7 @@ CFG_VARS = \
"uselongdouble=$(USE_LONG_DOUBLE)" \
"uselargefiles=$(USE_LARGE_FILES)" \
"usesitecustomize=$(USE_SITECUST)" \
+ "default_inc_excludes_dot=$(DEFAULT_INC_EXCLUDES_DOT)" \
"LINK_FLAGS=$(subst ",\",$(LINK_FLAGS))"\
"optimize=$(subst ",\",$(OPTIMIZE))" \
"ARCHPREFIX=$(ARCHPREFIX)" \
diff --git a/win32/Makefile b/win32/Makefile
index e13291bc2d..1fa2bfe515 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -96,6 +96,12 @@ USE_LARGE_FILES = define
#USE_64_BIT_INT = define
#
+# Comment this out if you want the legacy default behavior of including '.' at
+# the end of @INC.
+#
+DEFAULT_INC_EXCLUDES_DOT = define
+
+#
# Uncomment this if you want to disable looking up values from
# HKEY_CURRENT_USER\Software\Perl and HKEY_LOCAL_MACHINE\Software\Perl in
# the Registry.
@@ -305,6 +311,10 @@ USE_LARGE_FILES = undef
USE_64_BIT_INT = undef
!ENDIF
+!IF "$(DEFAULT_INC_EXCLUDES_DOT)" == ""
+DEFAULT_INC_EXCLUDES_DOT = undef
+!ENDIF
+
!IF "$(USE_NO_REGISTRY)" == ""
USE_NO_REGISTRY = undef
!ENDIF
@@ -905,6 +915,7 @@ CFG_VARS = \
"uselongdouble=undef" \
"uselargefiles=$(USE_LARGE_FILES)" \
"usesitecustomize=$(USE_SITECUST)" \
+ "default_inc_excludes_dot=$(DEFAULT_INC_EXCLUDES_DOT)" \
"LINK_FLAGS=$(LINK_FLAGS:"=\")" \
"optimize=$(OPTIMIZE:"=\")" \
"WIN64=$(WIN64)"
diff --git a/win32/Makefile.ce b/win32/Makefile.ce
index 0762f2c73f..38419a59a5 100644
--- a/win32/Makefile.ce
+++ b/win32/Makefile.ce
@@ -37,6 +37,12 @@ CCLIBDIR = $(CCHOME)\lib
CECOPY = cecopy
#
+# comment this out if you want the legacy default behavior of including '.' at
+# the end of @INC.
+#
+DEFAULT_INC_EXCLUDES_DOT = define
+
+#
# set this if you wish to use perl's malloc
# This will make perl run few times faster
# WARNING: Turning this on/off WILL break binary compatibility with extensions
@@ -438,6 +444,10 @@ CRYPT_FLAG = -DHAVE_DES_FCRYPT
PERL_MALLOC = undef
!ENDIF
+!IF "$(DEFAULT_INC_EXCLUDES_DOT)" == ""
+DEFAULT_INC_EXCLUDES_DOT = undef
+!ENDIF
+
!IF "$(USE_MULTI)" == ""
USE_MULTI = undef
!ENDIF
@@ -754,6 +764,7 @@ CFG_VARS = \
"usemultiplicity=$(USE_MULTI)" \
"use64bitint=undef" \
"uselargefiles=undef" \
+ "default_inc_excludes_dot=$(DEFAULT_INC_EXCLUDES_DOT)" \
"LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
"optimize=$(OPTIMIZE)" \
"WIN64=$(WIN64)"
diff --git a/win32/config_H.ce b/win32/config_H.ce
index f1434899bd..6f368ad270 100644
--- a/win32/config_H.ce
+++ b/win32/config_H.ce
@@ -2660,6 +2660,12 @@
*/
/*#define HAS_WRITEV /**/
+/* DEFAULT_INC_EXCLUDES_DOT:
+ * This symbol, if defined, removes the legacy default behavior of
+ * including '.' at the end of @INC.
+ */
+/*#define DEFAULT_INC_EXCLUDES_DOT /**/
+
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 591e72d5a1..933f0b7602 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -4308,6 +4308,12 @@
*/
/*#define HAS_WRITEV / **/
+/* DEFAULT_INC_EXCLUDES_DOT:
+ * This symbol, if defined, removes the legacy default behavior of
+ * including '.' at the end of @INC.
+ */
+/*#define DEFAULT_INC_EXCLUDES_DOT / **/
+
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
diff --git a/win32/config_H.vc b/win32/config_H.vc
index b87c58e874..5dfccf169e 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -4300,6 +4300,12 @@
*/
/*#define HAS_WRITEV / **/
+/* DEFAULT_INC_EXCLUDES_DOT:
+ * This symbol, if defined, removes the legacy default behavior of
+ * including '.' at the end of @INC.
+ */
+/*#define DEFAULT_INC_EXCLUDES_DOT / **/
+
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 2685e53ec2..aceda12c26 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -108,6 +108,12 @@ USE_LARGE_FILES *= define
#USE_LONG_DOUBLE *=define
#
+# Comment this out if you want the legacy default behavior of including '.' at
+# the end of @INC.
+#
+DEFAULT_INC_EXCLUDES_DOT *= define
+
+#
# Uncomment this if you want to disable looking up values from
# HKEY_CURRENT_USER\Software\Perl and HKEY_LOCAL_MACHINE\Software\Perl in
# the Registry.
@@ -304,6 +310,7 @@ USE_IMP_SYS *= undef
USE_LARGE_FILES *= undef
USE_64_BIT_INT *= undef
USE_LONG_DOUBLE *= undef
+DEFAULT_INC_EXCLUDES_DOT *= undef
USE_NO_REGISTRY *= undef
@@ -1096,6 +1103,7 @@ CFG_VARS = \
uselongdouble=$(USE_LONG_DOUBLE) ~ \
uselargefiles=$(USE_LARGE_FILES) ~ \
usesitecustomize=$(USE_SITECUST) ~ \
+ default_inc_excludes_dot=$(DEFAULT_INC_EXCLUDES_DOT) ~ \
LINK_FLAGS=$(LINK_FLAGS) ~ \
optimize=$(OPTIMIZE) ~ \
ARCHPREFIX=$(ARCHPREFIX) ~ \