cp on sparc-solaris (SunOS) does not support -u option
[fw/sdcc] / configure
index 9a2b8809ff7d322aedeb68bed882028d9f6bf6b6..0571a87784597c3c7e8af296fa5622f1bca02e61 100755 (executable)
--- a/configure
+++ b/configure
@@ -311,7 +311,8 @@ ac_includes_default="\
 ac_subdirs_all="$ac_subdirs_all support/cpp2"
 ac_subdirs_all="$ac_subdirs_all packihx"
 ac_subdirs_all="$ac_subdirs_all sim/ucsim"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS AWK VERSION VERSIONHI VERSIONLO VERSIONP CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB LEX LEXLIB LEX_OUTPUT_ROOT YACC AUTOCONF STRIP AS CP LYX LATEX LATEX2HTML PDFLATEX DVIPDF EGREP M_OR_MM include_dir_suffix lib_dir_suffix docdir OPT_ENABLE_UCSIM OPT_ENABLE_DEVICE_LIB_BUILD OPT_ENABLE_PACKIHX subdirs LIBOBJS LTLIBOBJS'
+ac_subdirs_all="$ac_subdirs_all device/lib/pic16"
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS AWK VERSION VERSIONHI VERSIONLO VERSIONP CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB LEX LEXLIB LEX_OUTPUT_ROOT YACC AUTOCONF STRIP AS CP LYX LATEX LATEX2HTML PDFLATEX DVIPDF EGREP M_OR_MM sdccconf_h_dir_separator include_dir_suffix lib_dir_suffix docdir OPT_ENABLE_UCSIM OPT_ENABLE_DEVICE_LIB_BUILD OPT_ENABLE_PACKIHX subdirs LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -780,6 +781,22 @@ ac_env_CPP_set=${CPP+set}
 ac_env_CPP_value=$CPP
 ac_cv_env_CPP_set=${CPP+set}
 ac_cv_env_CPP_value=$CPP
+ac_env_sdccconf_h_dir_separator_set=${sdccconf_h_dir_separator+set}
+ac_env_sdccconf_h_dir_separator_value=$sdccconf_h_dir_separator
+ac_cv_env_sdccconf_h_dir_separator_set=${sdccconf_h_dir_separator+set}
+ac_cv_env_sdccconf_h_dir_separator_value=$sdccconf_h_dir_separator
+ac_env_include_dir_suffix_set=${include_dir_suffix+set}
+ac_env_include_dir_suffix_value=$include_dir_suffix
+ac_cv_env_include_dir_suffix_set=${include_dir_suffix+set}
+ac_cv_env_include_dir_suffix_value=$include_dir_suffix
+ac_env_lib_dir_suffix_set=${lib_dir_suffix+set}
+ac_env_lib_dir_suffix_value=$lib_dir_suffix
+ac_cv_env_lib_dir_suffix_set=${lib_dir_suffix+set}
+ac_cv_env_lib_dir_suffix_value=$lib_dir_suffix
+ac_env_docdir_set=${docdir+set}
+ac_env_docdir_value=$docdir
+ac_cv_env_docdir_set=${docdir+set}
+ac_cv_env_docdir_value=$docdir
 
 #
 # Report the --help message.
@@ -860,8 +877,11 @@ Optional Features:
   --disable-z80-port      Excludes the z80 port
   --disable-avr-port      Excludes the AVR port
   --disable-ds390-port    Excludes the DS390 port
+  --disable-ds400-port    Excludes the DS400 port
   --disable-pic-port      Excludes the PIC port
+  --disable-pic16-port    Excludes the PIC port
   --disable-xa51-port     Excludes the XA51 port
+  --disable-hc08-port     Excludes the HC08 port
   --disable-ucsim         Disables configuring and building of ucsim
   --disable-device-lib-build
                           Disables automatically building device libraries
@@ -879,6 +899,13 @@ Some influential environment variables:
   CXX         C++ compiler command
   CXXFLAGS    C++ compiler flags
   CPP         C preprocessor
+  sdccconf_h_dir_separator
+              needed in sdccconf.h: either "/" (default) or "\\"
+  include_dir_suffix
+              appended to datadir to define SDCC's include directory
+  lib_dir_suffix
+              appended to datadir to define SDCC's library root directory
+  docdir      documentation installation directory
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1343,8 +1370,6 @@ fi
 VERSIONHI=`echo $VERSION|$AWK 'BEGIN {FS="."} {print $1}'`
 VERSIONLO=`echo $VERSION|$AWK 'BEGIN {FS="."} {print $2}'`
 VERSIONP=`echo $VERSION|$AWK 'BEGIN {FS="."} {print $3}'`
-# Assume no special extension
-EXEEXT=`echo $EXEEXT`
 
 echo "$as_me:$LINENO: result: ${VERSION}" >&5
 echo "${ECHO_T}${VERSION}" >&6
@@ -4012,6 +4037,138 @@ done
 
 
 
+# Checking for functions/libs
+# ===========================================================================
+
+echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
+echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_socket+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char socket ();
+int
+main ()
+{
+socket ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_socket=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_socket_socket=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6
+if test $ac_cv_lib_socket_socket = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+  LIBS="-lsocket $LIBS"
+
+fi
+
+
+echo "$as_me:$LINENO: checking for xdr_short in -lnsl" >&5
+echo $ECHO_N "checking for xdr_short in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_xdr_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char xdr_short ();
+int
+main ()
+{
+xdr_short ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nsl_xdr_short=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_nsl_xdr_short=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_xdr_short" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_xdr_short" >&6
+if test $ac_cv_lib_nsl_xdr_short = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
+
+  LIBS="-lnsl $LIBS"
+
+fi
+
+
+
 # Checking for functions
 # ===========================================================================
 
@@ -6103,89 +6260,60 @@ esac
 # And we want to preserve the macros (e.g. ${prefix}) in the Makefiles.
 # The variables in the Makefiles are replaced by AC_SUBST()
 #
-# In sdccconf.h the '/' in paths are replaced by "\\" (normalized).
+# In sdccconf.h the '/' in paths can be replaced by "\\" (normalized), if
+#
 # The macros are expanded for the header.
 # The variables in the header are replaced by AC_*DEFINE*()
+# sdccconf_h_dir_separator contains a backslash.
 
-echo "$as_me:$LINENO: checking -mno-cygwin" >&5
-echo $ECHO_N "checking -mno-cygwin... $ECHO_C" >&6
-  case ${CFLAGS} in
-      *-mno-cygwin*)
-         MINGW32_HOST="yes"
-         ;;
-      *)
-         MINGW32_HOST="no"
-         ;;
-  esac
-echo "$as_me:$LINENO: result: $MINGW32_HOST" >&5
-echo "${ECHO_T}$MINGW32_HOST" >&6
-
-echo "$as_me:$LINENO: checking host mingw32" >&5
-echo $ECHO_N "checking host mingw32... $ECHO_C" >&6
-  case ${host} in
-      *mingw32*)
-         MINGW32_HOST="yes"
-         ;;
-  esac
-echo "$as_me:$LINENO: result: $MINGW32_HOST" >&5
-echo "${ECHO_T}$MINGW32_HOST" >&6
-
-if test "${MINGW32_HOST}" = "no"; then
-    dir_separator="/"
-else
-    dir_separator="\\\\"
+if test "${sdccconf_h_dir_separator}" = ""; then
+    sdccconf_h_dir_separator="/"
 fi
 
-
 # Makefiles
 ###########
 
 # include_dir_suffix:
-# *nix    default: "sdcc/include"
-# mingw32 default: "include"
-  if test "${MINGW32_HOST}" = "no"; then
-       include_dir_suffix="sdcc/include"
-  else
-       include_dir_suffix="include"
-  fi
+# *nix default: "sdcc/include"
+
+
+if test "${include_dir_suffix}" = ""; then
+    include_dir_suffix="sdcc/include"
+fi
 
 
 # lib_dir_suffix:
-# *nix    default: "sdcc/lib"
-# mingw32 default: "lib"
-  if test "${MINGW32_HOST}" = "no"; then
-       lib_dir_suffix="sdcc/lib"
-  else
-       lib_dir_suffix="lib"
-  fi
+# *nix default: "sdcc/lib"
+
+if test "${lib_dir_suffix}" = ""; then
+    lib_dir_suffix="sdcc/lib"
+fi
 
 
 # docdir:
-# *nix    default: "${datadir}/sdcc/doc"
-# mingw32 default: "${datadir}/doc"
-  if test "${MINGW32_HOST}" = "no"; then
-       doc_suffix="/sdcc/doc"
-  else
-       doc_suffix="/doc"
-  fi
-  docdir="\${datadir}"${doc_suffix}
+# *nix default: "${datadir}/sdcc/doc"
+
+if test "${docdir}" = ""; then
+    docdir="\${datadir}"/sdcc/doc
+fi
+
+
 
 
 # sdccconf.h
 ############
 
 cat >>confdefs.h <<_ACEOF
-#define DIR_SEPARATOR_STRING "${dir_separator}"
+#define DIR_SEPARATOR_STRING "${sdccconf_h_dir_separator}"
 _ACEOF
 
 cat >>confdefs.h <<_ACEOF
-#define DIR_SEPARATOR_CHAR   '${dir_separator}'
+#define DIR_SEPARATOR_CHAR   '${sdccconf_h_dir_separator}'
 _ACEOF
 
 
 # prefix:
-# *nix    default: "NONE", ${ac_default_prefix}: "/usr/local"
-# mingw32 default: "/sdcc"
+# default: "NONE", ${ac_default_prefix}: "/usr/local"
 
   test "x$prefix" = xNONE && prefix="$ac_default_prefix"
   test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
@@ -6204,7 +6332,7 @@ _ACEOF
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6212,7 +6340,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) ac_ndu=`echo "[$]ac_ndu" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6243,7 +6371,7 @@ _ACEOF
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6251,7 +6379,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) ac_ndu=`echo "[$]ac_ndu" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6282,7 +6410,7 @@ _ACEOF
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6290,7 +6418,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) ac_ndu=`echo "[$]ac_ndu" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6302,8 +6430,7 @@ _ACEOF
 
 
 # datadir:
-# *nix    default: "${prefix}/share"
-# mingw32 default: "/sdcc"
+# default: "${prefix}/share"
 
   test "x$prefix" = xNONE && prefix="$ac_default_prefix"
   test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
@@ -6322,7 +6449,7 @@ _ACEOF
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6330,7 +6457,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) ac_ndu=`echo "[$]ac_ndu" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) ac_ndu=`echo "$ac_ndu" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6351,7 +6478,7 @@ case ":$norm_inc_dir_suffix:" in
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6359,7 +6486,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) norm_inc_dir_suffix=`echo "[$]norm_inc_dir_suffix" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) norm_inc_dir_suffix=`echo "$norm_inc_dir_suffix" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) norm_inc_dir_suffix=`echo "$norm_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) norm_inc_dir_suffix=`echo "$norm_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6377,7 +6504,7 @@ case ":$norm_lib_dir_suffix:" in
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6385,7 +6512,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) norm_lib_dir_suffix=`echo "[$]norm_lib_dir_suffix" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) norm_lib_dir_suffix=`echo "$norm_lib_dir_suffix" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) norm_lib_dir_suffix=`echo "$norm_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) norm_lib_dir_suffix=`echo "$norm_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6435,7 +6562,7 @@ case '/' in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_from=`echo "[$]_lcl_from" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_from=`echo "$_lcl_from" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_from=`echo "$_lcl_from" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_from=`echo "$_lcl_from" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6456,7 +6583,7 @@ case '/' in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_to=`echo "[$]_lcl_to" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_to=`echo "$_lcl_to" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_to=`echo "$_lcl_to" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_to=`echo "$_lcl_to" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6502,7 +6629,7 @@ case "$_lcl_notation" in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_result_tmp=`echo "[$]_lcl_result_tmp" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6517,7 +6644,7 @@ case ":$bin2data_dir:" in
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6525,7 +6652,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) bin2data_dir=`echo "[$]bin2data_dir" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) bin2data_dir=`echo "$bin2data_dir" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) bin2data_dir=`echo "$bin2data_dir" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) bin2data_dir=`echo "$bin2data_dir" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6574,7 +6701,7 @@ case '/' in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_from=`echo "[$]_lcl_from" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_from=`echo "$_lcl_from" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_from=`echo "$_lcl_from" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_from=`echo "$_lcl_from" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6595,7 +6722,7 @@ case '/' in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_to=`echo "[$]_lcl_to" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_to=`echo "$_lcl_to" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_to=`echo "$_lcl_to" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_to=`echo "$_lcl_to" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6641,7 +6768,7 @@ case "$_lcl_notation" in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_result_tmp=`echo "[$]_lcl_result_tmp" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6656,7 +6783,7 @@ case ":$prefix2bin_dir:" in
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6664,7 +6791,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) prefix2bin_dir=`echo "[$]prefix2bin_dir" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) prefix2bin_dir=`echo "$prefix2bin_dir" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) prefix2bin_dir=`echo "$prefix2bin_dir" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) prefix2bin_dir=`echo "$prefix2bin_dir" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6713,7 +6840,7 @@ case '/' in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_from=`echo "[$]_lcl_from" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_from=`echo "$_lcl_from" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_from=`echo "$_lcl_from" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_from=`echo "$_lcl_from" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6734,7 +6861,7 @@ case '/' in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_to=`echo "[$]_lcl_to" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_to=`echo "$_lcl_to" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_to=`echo "$_lcl_to" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_to=`echo "$_lcl_to" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6780,7 +6907,7 @@ case "$_lcl_notation" in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) _lcl_result_tmp=`echo "[$]_lcl_result_tmp" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) _lcl_result_tmp=`echo "$_lcl_result_tmp" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6795,7 +6922,7 @@ case ":$prefix2data_dir:" in
   :*:) ;;
 esac
 # squeze repeated slashes
-case $dir_separator in
+case $sdccconf_h_dir_separator in
 # if the path contains any backslashes, turn slashes into backslashes
 
 # Bernhard Held 2003-04-06
@@ -6803,7 +6930,7 @@ case $dir_separator in
 # - convert the first slash
 # - replace a slash with a double-backslash
 # *\\*) prefix2data_dir=`echo "[$]prefix2data_dir" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
- *\\*) prefix2data_dir=`echo "$prefix2data_dir" | sed 's,[\\/][\\/]*,\1\\\\\\\\,g'` ;;
+ *\\*) prefix2data_dir=`echo "$prefix2data_dir" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g' | sed 's,^[\\/],\\\\\\\\,'` ;;
 
 # if the path contains slashes, also turn backslashes into slashes
  *) prefix2data_dir=`echo "$prefix2data_dir" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
@@ -6843,11 +6970,15 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 cat >>confdefs.h <<_ACEOF
-#define STD_xa51_LIB "xa51"
+#define STD_DS400_LIB "libds400"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define STD_XA51_LIB "libxa51"
 _ACEOF
 
 
-# environment variables
+# SDCC runtime environment variables
 sdcc_dir_name="SDCC_HOME"
 cat >>confdefs.h <<_ACEOF
 #define SDCC_DIR_NAME "${sdcc_dir_name}"
@@ -6972,6 +7103,25 @@ _ACEOF
 
 fi
 
+# Check whether --enable-ds400-port or --disable-ds400-port was given.
+if test "${enable_ds400_port+set}" = set; then
+  enableval="$enable_ds400_port"
+
+fi;
+echo ds400 >>ports.all
+if test "$enable_ds400_port" = "no"; then
+    cat >>confdefs.h <<_ACEOF
+#define OPT_DISABLE_DS400 1
+_ACEOF
+
+else
+    echo ds400 >>ports.build
+    cat >>confdefs.h <<_ACEOF
+#define OPT_DISABLE_DS400 0
+_ACEOF
+
+fi
+
 # Check whether --enable-pic-port or --disable-pic-port was given.
 if test "${enable_pic_port+set}" = set; then
   enableval="$enable_pic_port"
@@ -6991,6 +7141,25 @@ _ACEOF
 
 fi
 
+# Check whether --enable-pic16-port or --disable-pic16-port was given.
+if test "${enable_pic16_port+set}" = set; then
+  enableval="$enable_pic16_port"
+
+fi;
+echo pic16 >>ports.all
+if test "$enable_pic16_port" = "no"; then
+    cat >>confdefs.h <<_ACEOF
+#define OPT_DISABLE_PIC16 1
+_ACEOF
+
+else
+    echo pic16 >>ports.build
+    cat >>confdefs.h <<_ACEOF
+#define OPT_DISABLE_PIC16 0
+_ACEOF
+
+fi
+
 # Check whether --enable-xa51-port or --disable-xa51-port was given.
 if test "${enable_xa51_port+set}" = set; then
   enableval="$enable_xa51_port"
@@ -7010,6 +7179,25 @@ _ACEOF
 
 fi
 
+# Check whether --enable-hc08-port or --disable-hc08-port was given.
+if test "${enable_hc08_port+set}" = set; then
+  enableval="$enable_hc08_port"
+
+fi;
+echo hc08 >>ports.all
+if test "$enable_hc08_port" = "no"; then
+    cat >>confdefs.h <<_ACEOF
+#define OPT_DISABLE_HC08 1
+_ACEOF
+
+else
+    echo hc08 >>ports.build
+    cat >>confdefs.h <<_ACEOF
+#define OPT_DISABLE_HC08 0
+_ACEOF
+
+fi
+
 # Check whether --enable-ucsim or --disable-ucsim was given.
 if test "${enable_ucsim+set}" = set; then
   enableval="$enable_ucsim"
@@ -7114,9 +7302,9 @@ _ACEOF
 
 
 #remove duplicates
-cat ports.all | uniq >ports
+uniq ports.all ports
 mv ports ports.all
-cat ports.build | uniq >ports
+uniq ports.build ports
 mv ports ports.build
 
 # Generating output files
@@ -7133,7 +7321,12 @@ subdirs="$subdirs packihx"
 
 subdirs="$subdirs sim/ucsim"
 
-                                                                      ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile as/mcs51/Makefile device/include/Makefile device/lib/Makefile debugger/mcs51/Makefile Makefile.common:Makefile.common.in"
+
+
+subdirs="$subdirs device/lib/pic16"
+
+
+                                                                                ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile as/mcs51/Makefile as/hc08/Makefile device/include/Makefile device/lib/Makefile debugger/mcs51/Makefile Makefile.common:Makefile.common.in"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -7662,6 +7855,7 @@ do
   "main.mk" ) CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;;
   "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
   "as/mcs51/Makefile" ) CONFIG_FILES="$CONFIG_FILES as/mcs51/Makefile" ;;
+  "as/hc08/Makefile" ) CONFIG_FILES="$CONFIG_FILES as/hc08/Makefile" ;;
   "device/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES device/include/Makefile" ;;
   "device/lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;;
   "debugger/mcs51/Makefile" ) CONFIG_FILES="$CONFIG_FILES debugger/mcs51/Makefile" ;;
@@ -7787,6 +7981,7 @@ s,@PDFLATEX@,$PDFLATEX,;t t
 s,@DVIPDF@,$DVIPDF,;t t
 s,@EGREP@,$EGREP,;t t
 s,@M_OR_MM@,$M_OR_MM,;t t
+s,@sdccconf_h_dir_separator@,$sdccconf_h_dir_separator,;t t
 s,@include_dir_suffix@,$include_dir_suffix,;t t
 s,@lib_dir_suffix@,$lib_dir_suffix,;t t
 s,@docdir@,$docdir,;t t