diff -Naur OpenDDS-3.12.orig/configure OpenDDS-3.12/configure
--- OpenDDS-3.12.orig/configure	2017-09-01 20:05:59.000000000 +0530
+++ OpenDDS-3.12/configure	2017-09-07 20:50:29.232436534 +0530
@@ -137,6 +137,7 @@
     'inline!', 'Inlining (yes)',
     'static!', 'Static libraries (no)',
     'ipv6!', 'IPv6 support (no)',
+    'force-cross-compile!', 'Cross-compile, even on same target (no)',
    ],
    ['Required dependencies for OpenDDS:',
     'ace=s', 'ACE (use ACE_ROOT, ACE_wrappers, or download)',
@@ -339,7 +340,8 @@
   $opts{'safety-profile'} = 'extended';
 }
 
-if ($opts{'host'} ne $opts{'target'} || $opts{'safety-profile'}) {
+if ($opts{'host'} ne $opts{'target'} || $opts{'safety-profile'} ||
+    $opts{'force-cross-compile'}) {
   print "Setting cross-compile build\n" if $opts{'verbose'};
   $cross_compile = 1;
 }
@@ -1422,6 +1424,15 @@
     setEnv('HOST_ACE', 'build/host' . $ace_sub_dds);
     setEnv('ACE_ROOT', 'build/target' . $ace_sub_dds);
   }
+  elsif (defined($ENV{HOST_ACE})) {
+    setHostEnv('ACE_ROOT', $ENV{HOST_ACE});
+    setEnv('HOST_ACE', $ENV{HOST_ACE});
+    setEnv('ACE_ROOT', $ace_src);
+    if ($tao_sub_ace) {
+      setHostEnv('TAO_ROOT', $ENV{HOST_ACE} . $tao_sub_ace);
+      setEnv('TAO_ROOT', $ace_src . $tao_sub_ace);
+    }
+  }
   else {
     clone_host_and_target($ace_src);
     setHostEnv('ACE_ROOT', $ace_src . '/build/host');
