* src/SDCCsymt.c (compStructSize): make bitfields without (un)signed specifier unsigned
[fw/sdcc] / configure.in
index 5396bad2af0335ca0b1f1af58dc187e7cfe98fb1..fdea578bef3ba63b9d6764a48f5139e8ee12e831 100755 (executable)
@@ -18,8 +18,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`
 
 AC_MSG_RESULT(${VERSION})
 AC_SUBST(VERSION)
@@ -57,7 +55,7 @@ AC_CHECK_PROG(LATEX2HTML, latex2html, latex2html, :)
 AC_CHECK_PROG(PDFLATEX,   pdflatex,   pdflatex, :)
 AC_CHECK_PROG(DVIPDF,     dvipdf,     dvipdf, :)
 
-AC_DEFUN(SDCC_REQUIRE_PROG, 
+AC_DEFUN(SDCC_REQUIRE_PROG,
 [if test "$1" = ":"; then
   AC_MSG_ERROR([Cannot find required program $2.])
  fi
@@ -74,6 +72,12 @@ AC_LANG([C])
 AC_CHECK_HEADERS(sys/socket.h)
 
 
+# Checking for functions/libs
+# ===========================================================================
+AC_CHECK_LIB(socket,socket)
+AC_CHECK_LIB(nsl,xdr_short)
+
+
 # Checking for functions
 # ===========================================================================
 AC_CHECK_FUNCS(strerror)
@@ -102,25 +106,202 @@ fi
 rm -f _test_.* a.out)
 ])
 
-# This macro _AC_DEFINEs VARNAME to the expansion of the DIR variable,
-# taking care of fixing up ${prefix} and such.
+# This macro expands DIR and assigns it to RET.
+# If DIR is NONE, then it's replaced by DEFAULT.
 #
-# Note that the 3 argument form is only supported with autoconf 2.13
-# and later (i.e. only where _AC_DEFINE supports 3 arguments).
+# Based on AC_DEFINE_DIR
 #
 # Examples:
 #
-#  AC_DEFINE_DIR(DATADIR, datadir)
-#  AC_DEFINE_DIR(PROG_PATH, bindir, [Location of installed binaries])
+#  AC_EXPAND(prefix, "/usr/local", expanded_prefix)
 
-AC_DEFUN([AC_DEFINE_DIR], [
+AC_DEFUN([AC_EXPAND], [
   test "x$prefix" = xNONE && prefix="$ac_default_prefix"
   test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-  ac_define_dir=`eval echo [$]$2`
-  ac_define_dir=`eval echo [$]ac_define_dir`
-  ifelse($3, ,
-    AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
-    AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
+  ac_expand=[$]$1
+  test "x$ac_expand" = xNONE && ac_expand="[$]$2"
+  ac_expand=`eval echo [$]ac_expand`
+  $3=`eval echo [$]ac_expand`
+])
+
+# adl_NORMALIZE_PATH
+#
+#  - empty paths are changed to '.'
+#  - trailing slashes are removed
+#  - repeated slashes are squeezed except a leading doubled slash '//'
+#    (which might indicate a networked disk on some OS).
+#
+#
+# REFERENCE_STRING is used to turn '/' into '\' and vice-versa: if
+# REFERENCE_STRING contains some backslashes, all slashes and backslashes
+# are turned into backslashes, otherwise they are all turned into slashes.
+#
+# This makes processing of DOS filenames quite easier, because you can turn a
+# filename to the Unix notation, make your processing, and turn it back to
+# original notation.
+
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/normpath.html
+dnl
+AC_DEFUN([adl_NORMALIZE_PATH],
+[case ":[$]$1:" in
+# change empty paths to '.'
+  ::) $1='.' ;;
+# strip trailing slashes
+  :*[[\\/]]:) $1=`echo "[$]$1" | sed 's,[[\\/]]*[$],,'` ;;
+  :*:) ;;
+esac
+# squeze repeated slashes
+case ifelse($2,,"[$]$1",$2) in
+# if the path contains any backslashes, turn slashes into backslashes
+
+# Bernhard Held 2003-04-06
+# This was the original line. It doesn't:
+# - convert the first slash
+# - replace a slash with a double-backslash
+# *\\*) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
+ *\\*) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\\\\\,g' | sed 's,^[[\\/]],\\\\\\\\,'` ;;
+
+# if the path contains slashes, also turn backslashes into slashes
+ *) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1/,g'` ;;
+esac])
+
+
+# adl_COMPUTE_RELATIVE_PATH
+#
+# PATH_LIST is a space-separated list of colon-separated triplets of the form
+# 'FROM:TO:RESULT'. This function iterates over these triplets and set $RESULT
+# to the relative path from $FROM to $TO. Note that $FROM and $TO needs to be
+# absolute filenames for this macro to success.
+
+AC_DEFUN([adl_COMPUTE_RELATIVE_PATHS],
+[for _lcl_i in $1; do
+  _lcl_from=\[$]`echo "[$]_lcl_i" | sed 's,:.*$,,'`
+  _lcl_to=\[$]`echo "[$]_lcl_i" | sed 's,^[[^:]]*:,,' | sed 's,:[[^:]]*$,,'`
+  _lcl_result_var=`echo "[$]_lcl_i" | sed 's,^.*:,,'`
+  adl_RECURSIVE_EVAL([[$]_lcl_from], [_lcl_from])
+  adl_RECURSIVE_EVAL([[$]_lcl_to], [_lcl_to])
+  _lcl_notation="$_lcl_from$_lcl_to"
+  adl_NORMALIZE_PATH([_lcl_from],['/'])
+  adl_NORMALIZE_PATH([_lcl_to],['/'])
+  adl_COMPUTE_RELATIVE_PATH([_lcl_from], [_lcl_to], [_lcl_result_tmp])
+  adl_NORMALIZE_PATH([_lcl_result_tmp],["[$]_lcl_notation"])
+  eval $_lcl_result_var='[$]_lcl_result_tmp'
+done])
+
+## Note:
+## *****
+## The following helper macros are too fragile to be used out
+## of adl_COMPUTE_RELATIVE_PATHS (mainly because they assume that
+## paths are normalized), that's why I'm keeping them in the same file.
+## Still, some of them maybe worth to reuse.
+
+dnl adl_COMPUTE_RELATIVE_PATH(FROM, TO, RESULT)
+dnl ===========================================
+dnl Compute the relative path to go from $FROM to $TO and set the value
+dnl of $RESULT to that value.  This function work on raw filenames
+dnl (for instead it will considerate /usr//local and /usr/local as
+dnl two distinct paths), you should really use adl_COMPUTE_REALTIVE_PATHS
+dnl instead to have the paths sanitized automatically.
+dnl
+dnl For instance:
+dnl    first_dir=/somewhere/on/my/disk/bin
+dnl    second_dir=/somewhere/on/another/disk/share
+dnl    adl_COMPUTE_RELATIVE_PATH(first_dir, second_dir, first_to_second)
+dnl will set $first_to_second to '../../../another/disk/share'.
+AC_DEFUN([adl_COMPUTE_RELATIVE_PATH],
+[adl_COMPUTE_COMMON_PATH([$1], [$2], [_lcl_common_prefix])
+adl_COMPUTE_BACK_PATH([$1], [_lcl_common_prefix], [_lcl_first_rel])
+adl_COMPUTE_SUFFIX_PATH([$2], [_lcl_common_prefix], [_lcl_second_suffix])
+$3="[$]_lcl_first_rel[$]_lcl_second_suffix"])
+
+dnl adl_COMPUTE_COMMON_PATH(LEFT, RIGHT, RESULT)
+dnl ============================================
+dnl Compute the common path to $LEFT and $RIGHT and set the result to $RESULT.
+dnl
+dnl For instance:
+dnl    first_path=/somewhere/on/my/disk/bin
+dnl    second_path=/somewhere/on/another/disk/share
+dnl    adl_COMPUTE_COMMON_PATH(first_path, second_path, common_path)
+dnl will set $common_path to '/somewhere/on'.
+AC_DEFUN([adl_COMPUTE_COMMON_PATH],
+[$3=''
+_lcl_second_prefix_match=''
+while test "[$]_lcl_second_prefix_match" != 0; do
+  _lcl_first_prefix=`expr "x[$]$1" : "x\([$]$3/*[[^/]]*\)"`
+  _lcl_second_prefix_match=`expr "x[$]$2" : "x[$]_lcl_first_prefix"`
+  if test "[$]_lcl_second_prefix_match" != 0; then
+    if test "[$]_lcl_first_prefix" != "[$]$3"; then
+      $3="[$]_lcl_first_prefix"
+    else
+      _lcl_second_prefix_match=0
+    fi
+  fi
+done])
+
+dnl adl_COMPUTE_SUFFIX_PATH(PATH, SUBPATH, RESULT)
+dnl ==============================================
+dnl Substrack $SUBPATH from $PATH, and set the resulting suffix
+dnl (or the empty string if $SUBPATH is not a subpath of $PATH)
+dnl to $RESULT.
+dnl
+dnl For instace:
+dnl    first_path=/somewhere/on/my/disk/bin
+dnl    second_path=/somewhere/on
+dnl    adl_COMPUTE_SUFFIX_PATH(first_path, second_path, common_path)
+dnl will set $common_path to '/my/disk/bin'.
+AC_DEFUN([adl_COMPUTE_SUFFIX_PATH],
+[$3=`expr "x[$]$1" : "x[$]$2/*\(.*\)"`])
+
+dnl adl_COMPUTE_BACK_PATH(PATH, SUBPATH, RESULT)
+dnl ============================================
+dnl Compute the relative path to go from $PATH to $SUBPATH, knowing that
+dnl $SUBPATH is a subpath of $PATH (any other words, only repeated '../'
+dnl should be needed to move from $PATH to $SUBPATH) and set the value
+dnl of $RESULT to that value.  If $SUBPATH is not a subpath of PATH,
+dnl set $RESULT to the empty string.
+dnl
+dnl For instance:
+dnl    first_path=/somewhere/on/my/disk/bin
+dnl    second_path=/somewhere/on
+dnl    adl_COMPUTE_BACK_PATH(first_path, second_path, back_path)
+dnl will set $back_path to '../../../'.
+AC_DEFUN([adl_COMPUTE_BACK_PATH],
+[adl_COMPUTE_SUFFIX_PATH([$1], [$2], [_lcl_first_suffix])
+$3=''
+_lcl_tmp='xxx'
+while test "[$]_lcl_tmp" != ''; do
+  _lcl_tmp=`expr "x[$]_lcl_first_suffix" : "x[[^/]]*/*\(.*\)"`
+  if test "[$]_lcl_first_suffix" != ''; then
+     _lcl_first_suffix="[$]_lcl_tmp"
+     $3="../[$]$3"
+  fi
+done])
+
+
+dnl adl_RECURSIVE_EVAL(VALUE, RESULT)
+dnl =================================
+dnl Interpolate the VALUE in loop until it doesn't change,
+dnl and set the result to $RESULT.
+dnl WARNING: It's easy to get an infinite loop with some unsane input.
+AC_DEFUN([adl_RECURSIVE_EVAL],
+[_lcl_receval="$1"
+$2=`(test "x$prefix" = xNONE && prefix="$ac_default_prefix"
+     test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
+     _lcl_receval_old=''
+     while test "[$]_lcl_receval_old" != "[$]_lcl_receval"; do
+       _lcl_receval_old="[$]_lcl_receval"
+       eval _lcl_receval="\"[$]_lcl_receval\""
+     done
+     echo "[$]_lcl_receval")`])
+
+
+# AC_NORMALIZE_DEFINE_UNQUOTED(var, DEFINE, REFERENCE_STRING)
+
+AC_DEFUN([AC_NORMALIZE_DEFINE_UNQUOTED], [
+  ac_ndu=[$]$1
+  adl_NORMALIZE_PATH([ac_ndu], [$]$3)
+  AC_DEFINE_UNQUOTED($2, "${ac_ndu}")
 ])
 
 
@@ -142,14 +323,15 @@ AC_SUBST(M_OR_MM)
 # This is the first time when CFLAGS are set/modified!!
 DD_COPT(CC, ggdb)
 if test "$sdcc_cv_CCggdb" = "yes"; then
-  CFLAGS="-ggdb -O2"
+  CFLAGS="-ggdb ${CFLAGS}"
 fi
 
 DD_COPT(CC, pipe)
 if test "$sdcc_cv_CCpipe" = "yes"; then
-  CFLAGS="$CFLAGS -pipe"
+  CFLAGS="-pipe $CFLAGS"
 fi
 
+
 # Checks for typedefs, structures, and compiler characteristics.
 # ===========================================================================
 AC_TYPE_SIGNAL
@@ -197,38 +379,107 @@ AC_C_BIGENDIAN
 
 # Set standard installation paths
 # ===========================================================================
-case $host in
-    *mingw32*)
-       MINGW32_HOST="yes"
-       ;;
-    *)
-       MINGW32_HOST="no"
-       ;;
-esac
 
-AC_MSG_CHECKING(host mingw32)
-AC_MSG_RESULT($MINGW32_HOST)
+# In the Makefiles we need paths with '/' as directory separator, even if
+# crosscompiling for Win32.
+# 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 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.
+AC_ARG_VAR(sdccconf_h_dir_separator, needed in sdccconf.h: either "/" (default) or "\\")
+if test "${sdccconf_h_dir_separator}" = ""; then
+    sdccconf_h_dir_separator="/"
+fi
+
+# Makefiles
+###########
 
-# prefix: *nix default is "NONE"
-# prefix: mingw32 default is "/sdcc"
-if test "$prefix" = NONE; then
-    if test "$MINGW32_HOST" = "no"; then
-       prefix="/usr/local"
-    else
-       prefix="/sdcc"
-    fi
+# include_dir_suffix:
+# *nix default: "sdcc/include"
+
+AC_ARG_VAR(include_dir_suffix, appended to datadir to define SDCC's include directory)
+if test "${include_dir_suffix}" = ""; then
+    include_dir_suffix="sdcc/include"
 fi
+AC_SUBST(include_dir_suffix)
 
-# datadir: *nix default is "${prefix}/share"
-if test "$datadir" = "\${prefix}/share"; then
-    if test "$MINGW32_HOST" = "no"; then
-       datadir="\${prefix}/share/sdcc"
-    fi
-# mingw32 default is "/sdcc"
-elif test "$datadir" = "/sdcc"; then
-    if test "$MINGW32_HOST" = "yes"; then
-       datadir="\${prefix}"
-    fi
+# lib_dir_suffix:
+# *nix default: "sdcc/lib"
+AC_ARG_VAR(lib_dir_suffix, appended to datadir to define SDCC's library root directory)
+if test "${lib_dir_suffix}" = ""; then
+    lib_dir_suffix="sdcc/lib"
+fi
+AC_SUBST(lib_dir_suffix)
+
+# docdir:
+# *nix default: "${datadir}/sdcc/doc"
+AC_ARG_VAR(docdir, documentation installation directory)
+if test "${docdir}" = ""; then
+    docdir="\${datadir}"/sdcc/doc
+fi
+AC_SUBST(docdir)
+
+AC_SUBST(EXEEXT)
+
+# sdccconf.h
+############
+
+AC_DEFINE_UNQUOTED(DIR_SEPARATOR_STRING, "${sdccconf_h_dir_separator}")
+AC_DEFINE_UNQUOTED(DIR_SEPARATOR_CHAR  , '${sdccconf_h_dir_separator}')
+
+# prefix:
+# default: "NONE", ${ac_default_prefix}: "/usr/local"
+AC_EXPAND(prefix, ac_default_prefix, expanded_prefix)
+AC_NORMALIZE_DEFINE_UNQUOTED(expanded_prefix, PREFIX, sdccconf_h_dir_separator)
+
+# exec_prefix:
+# default: "${prefix}"
+AC_EXPAND(exec_prefix, expanded_prefix, expanded_exec_prefix)
+AC_NORMALIZE_DEFINE_UNQUOTED(expanded_exec_prefix, EXEC_PREFIX, sdccconf_h_dir_separator)
+
+# bindir:
+# default: "${exec_prefix}/bin"
+AC_EXPAND(bindir, "NONE", expanded_bindir)
+AC_NORMALIZE_DEFINE_UNQUOTED(expanded_bindir, BINDIR, sdccconf_h_dir_separator)
+
+# datadir:
+# default: "${prefix}/share"
+AC_EXPAND(datadir, "NONE", expanded_datadir)
+AC_NORMALIZE_DEFINE_UNQUOTED(expanded_datadir, DATADIR, sdccconf_h_dir_separator)
+
+# include/lib suffix
+norm_inc_dir_suffix=${include_dir_suffix}
+adl_NORMALIZE_PATH([norm_inc_dir_suffix], [$sdccconf_h_dir_separator])
+AC_DEFINE_UNQUOTED(INCLUDE_DIR_SUFFIX,
+                   DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}")
+norm_lib_dir_suffix=${lib_dir_suffix}
+adl_NORMALIZE_PATH([norm_lib_dir_suffix], [$sdccconf_h_dir_separator])
+AC_DEFINE_UNQUOTED(LIB_DIR_SUFFIX,
+                   DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}")
+
+# relative paths
+adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir])
+adl_NORMALIZE_PATH(bin2data_dir, [$sdccconf_h_dir_separator])
+AC_DEFINE_UNQUOTED(BIN2DATA_DIR,
+                   DIR_SEPARATOR_STRING "${bin2data_dir}")
+
+adl_COMPUTE_RELATIVE_PATHS([expanded_prefix:expanded_bindir:prefix2bin_dir])
+adl_NORMALIZE_PATH(prefix2bin_dir, [$sdccconf_h_dir_separator])
+AC_DEFINE_UNQUOTED(PREFIX2BIN_DIR,
+                   DIR_SEPARATOR_STRING "${prefix2bin_dir}")
+
+adl_COMPUTE_RELATIVE_PATHS([expanded_prefix:expanded_datadir:prefix2data_dir])
+adl_NORMALIZE_PATH(prefix2data_dir, [$sdccconf_h_dir_separator])
+if test "${prefix2data_dir}" = "."; then
+    # small optimization for Mingw32; otherwise Borut will complain ;-)
+    AC_DEFINE_UNQUOTED(PREFIX2DATA_DIR, "")
+else
+    AC_DEFINE_UNQUOTED(PREFIX2DATA_DIR,
+                       DIR_SEPARATOR_STRING "${prefix2data_dir}")
 fi
 
 # standard libs
@@ -237,49 +488,18 @@ AC_DEFINE_UNQUOTED(STD_INT_LIB,   "libint")
 AC_DEFINE_UNQUOTED(STD_LONG_LIB,  "liblong")
 AC_DEFINE_UNQUOTED(STD_FP_LIB,    "libfloat")
 AC_DEFINE_UNQUOTED(STD_DS390_LIB, "libds390")
-AC_DEFINE_UNQUOTED(STD_xa51_LIB,  "xa51")
-
-AC_DEFINE_DIR(PREFIX,  "${prefix}")
-AC_DEFINE_DIR(DATADIR, "$datadir")
-AC_SUBST(datadir)
-
-# search paths
-bin_dir_suffix="bin"
-AC_DEFINE_DIR(BIN_DIR_SUFFIX, "${bin_dir_suffix}")
-
-    if test "$MINGW32_HOST" = "no"; then
-       search_suffix="share/sdcc"
-    else
-       search_suffix=""
-    fi
-AC_DEFINE_DIR(SEARCH_SUFFIX, "${search_suffix}")
-
-include_dir_suffix="include"
-AC_DEFINE_DIR(INCLUDE_DIR_SUFFIX, "${include_dir_suffix}")
-
-lib_dir_suffix="lib"
-AC_DEFINE_UNQUOTED(LIB_DIR_SUFFIX, "${lib_dir_suffix}")
-
-### <Obsolete>
-# sdcc_datadir is still used in [device,lib]/Makefile
-sdcc_datadir=${datadir}
-AC_SUBST(sdcc_datadir)
-
-# SDCC_[INCLUDE,LIB]_DIR is still used in SDCCmain.c
-if test "${includedir}" = "\${prefix}/include"; then
-    includedir="${datadir}/include"
-fi
-AC_DEFINE_DIR(SDCC_INCLUDE_DIR, "${includedir}")
-AC_DEFINE_DIR(SDCC_LIB_DIR,     "${datadir}/lib")
-### </Obsolete>
+AC_DEFINE_UNQUOTED(STD_DS400_LIB, "libds400")
+AC_DEFINE_UNQUOTED(STD_XA51_LIB,  "libxa51")
 
-# environment variables
+# SDCC runtime environment variables
 sdcc_dir_name="SDCC_HOME"
-AC_DEFINE_DIR(SDCC_DIR_NAME, "${sdcc_dir_name}")
+AC_DEFINE_UNQUOTED(SDCC_DIR_NAME, "${sdcc_dir_name}")
+
 sdcc_include_name="SDCC_INCLUDE"
-AC_DEFINE_DIR(SDCC_INCLUDE_NAME, "${sdcc_include_name}")
+AC_DEFINE_UNQUOTED(SDCC_INCLUDE_NAME, "${sdcc_include_name}")
+
 sdcc_lib_name="SDCC_LIB"
-AC_DEFINE_DIR(SDCC_LIB_NAME, "${sdcc_lib_name}")
+AC_DEFINE_UNQUOTED(SDCC_LIB_NAME, "${sdcc_lib_name}")
 
 # Now handle the port selection
 # ===========================================================================
@@ -341,6 +561,17 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_TININative, 0)
 fi
 
+AC_ARG_ENABLE(ds400-port,
+            AC_HELP_STRING([--disable-ds400-port],
+                           [Excludes the DS400 port]))
+echo ds400 >>ports.all
+if test "$enable_ds400_port" = "no"; then
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_DS400, 1)
+else
+    echo ds400 >>ports.build
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_DS400, 0)
+fi
+
 AC_ARG_ENABLE(pic-port,
             AC_HELP_STRING([--disable-pic-port],
                            [Excludes the PIC port]))
@@ -352,6 +583,17 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_PIC, 0)
 fi
 
+AC_ARG_ENABLE(pic16-port,
+            AC_HELP_STRING([--disable-pic16-port],
+                           [Excludes the PIC port]))
+echo pic16 >>ports.all
+if test "$enable_pic16_port" = "no"; then
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_PIC16, 1)
+else
+    echo pic16 >>ports.build
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_PIC16, 0)
+fi
+
 AC_ARG_ENABLE(xa51-port,
             AC_HELP_STRING([--disable-xa51-port],
                            [Excludes the XA51 port]))
@@ -363,6 +605,17 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_XA51, 0)
 fi
 
+AC_ARG_ENABLE(hc08-port,
+            AC_HELP_STRING([--disable-hc08-port],
+                           [Excludes the HC08 port]))
+echo hc08 >>ports.all
+if test "$enable_hc08_port" = "no"; then
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_HC08, 1)
+else
+    echo hc08 >>ports.build
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_HC08, 0)
+fi
+
 AC_ARG_ENABLE(ucsim,
               AC_HELP_STRING([--disable-ucsim],
                              [Disables configuring and building of ucsim]))
@@ -393,9 +646,9 @@ fi
 AC_DEFINE_UNQUOTED(OPT_ENABLE_LIBGC, $OPT_ENABLE_LIBGC)
 
 #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
@@ -403,12 +656,17 @@ mv ports ports.build
 AC_CONFIG_SUBDIRS(support/cpp2)
 AC_CONFIG_SUBDIRS(packihx)
 AC_CONFIG_SUBDIRS(sim/ucsim)
+AC_CONFIG_SUBDIRS(device/lib/pic16)
+AC_CONFIG_SUBDIRS(device/lib/pic)
+
 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
+support/regression/Makefile
 Makefile.common:Makefile.common.in
 ])
 AC_OUTPUT