Buffer overflow hunt: removing strcpy, strcat, sprintf
[fw/sdcc] / configure.in
index 926ba7eed345a131222ecd3573034f77bd267674..73482e6dd16efb4cd8a88d86fcc992b77481063c 100755 (executable)
@@ -16,6 +16,9 @@ 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)
 AC_SUBST(VERSIONHI)
@@ -25,6 +28,7 @@ AC_DEFINE_UNQUOTED(SDCC_VERSION_LO, ${VERSIONLO})
 AC_DEFINE_UNQUOTED(SDCC_VERSION_HI, ${VERSIONHI})
 AC_DEFINE_UNQUOTED(SDCC_VERSION_P, ${VERSIONP})
 AC_DEFINE_UNQUOTED(SDCC_VERSION_STR, "${VERSION}")
+AC_ARG_PROGRAM
 sdcc_cv_version=$VERSION
 sdcc_cv_versionhi=$VERSIONHI
 sdcc_cv_versionlo=$VERSIONLO
@@ -40,6 +44,7 @@ AC_PROG_RANLIB
 AC_PROG_LEX(flex, :)
 AC_CHECK_PROG(YACC, bison, bison -y, :)
 AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, :)
+AC_CHECK_PROG(STRIP, strip, strip, :)
 AC_CHECK_PROG(AS, as, as, :)
 AC_CHECK_PROG(CP, cp, cp, :)
 
@@ -60,6 +65,7 @@ AC_HEADER_STDC
 AC_CHECK_HEADERS(getopt.h)
 AC_CHECK_HEADERS(unistd.h)
 AC_CHECK_HEADERS(endian.h)
+AC_CHECK_HEADERS(machine/endian.h)
 AC_CHECK_HEADERS(malloc.h)
 AC_CHECK_HEADERS(sys/isa_defs.h)
 AC_CHECK_HEADERS(sys/socket.h)
@@ -111,7 +117,7 @@ AC_DEFINE_UNQUOTED(HEADER_FD, ${sdcc_cv_fd})
 # Checking for functions
 # ===========================================================================
 AC_CHECK_FUNCS(strlen strcpy strcat strstr strcmp strerror strtok strdup)
-AC_CHECK_FUNCS(strchr memcpy)
+AC_CHECK_FUNCS(strchr memcpy vsnprintf snprintf vsprintf)
 dnl AC_CHECK_FUNCS(getline)
 dnl AC_CHECK_FUNCS(getdelim)
 AC_CHECK_FUNCS(fgets)
@@ -196,15 +202,21 @@ else
     sdcc_datadir_tmp=${datadir}/sdcc
 fi
 
+if test "${includedir}" = "\${prefix}/include"; then
+   AC_DEFINE_UNQUOTED(STANDARD_INCLUDE_DIR, "${sdcc_datadir_tmp}/include")
+   AC_DEFINE_UNQUOTED(SDCC_INCLUDE_DIR, "${sdcc_datadir_tmp}/include")
+else 
+   AC_DEFINE_UNQUOTED(STANDARD_INCLUDE_DIR, "${includedir}")
+   AC_DEFINE_UNQUOTED(SDCC_INCLUDE_DIR, "${includedir}")
+fi
 
-AC_DEFINE_UNQUOTED(STANDARD_INCLUDE_DIR, "${sdcc_datadir_tmp}/include")
-AC_DEFINE_UNQUOTED(SDCC_INCLUDE_DIR, "${sdcc_datadir_tmp}/include")
 AC_DEFINE_UNQUOTED(SDCC_LIB_DIR, "${sdcc_datadir_tmp}/lib")
 AC_DEFINE_UNQUOTED(STD_LIB, "libsdcc")
 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_UNQUOTED(PREFIX, "${prefix}")
 AC_DEFINE_UNQUOTED(DATADIR, "${sdcc_datadir_tmp}")
@@ -214,7 +226,7 @@ AC_DEFINE_UNQUOTED(SRCDIR, "${config_in}")
 
 # Now handle the port selection
 rm -f ports.all ports.build
-AC_ARG_ENABLE(mcs51-port,--disable-mcs51-port: Excludes the Intel mcs51 port)
+AC_ARG_ENABLE(mcs51-port,[  --disable-mcs51-port    Excludes the Intel mcs51 port])
 echo mcs51 >>ports.all
 if test "$enable_mcs51_port" = "no"; then
     AC_DEFINE_UNQUOTED(OPT_DISABLE_MCS51, 1)
@@ -223,7 +235,7 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_MCS51, 0)
 fi
 
-AC_ARG_ENABLE(gbz80-port,--disable-gbz80-port: Excludes the Gameboy gbz80 port)
+AC_ARG_ENABLE(gbz80-port,[  --disable-gbz80-port    Excludes the Gameboy gbz80 port])
 echo z80 >>ports.all
 if test "$enable_gbz80_port" = "no"; then
     AC_DEFINE_UNQUOTED(OPT_DISABLE_GBZ80, 1)
@@ -232,7 +244,7 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_GBZ80, 0)
 fi
 
-AC_ARG_ENABLE(z80-port,--disable-z80-port: Excludes the z80 port)
+AC_ARG_ENABLE(z80-port,[  --disable-z80-port      Excludes the z80 port])
 echo z80 >>ports.all
 if test "$enable_z80_port" = "no"; then
     AC_DEFINE_UNQUOTED(OPT_DISABLE_Z80, 1)
@@ -241,7 +253,7 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_Z80, 0)
 fi
 
-AC_ARG_ENABLE(avr-port,--disable-avr-port: Excludes the AVR port)
+AC_ARG_ENABLE(avr-port,[  --disable-avr-port      Excludes the AVR port])
 echo avr >>ports.all
 if test "$enable_avr_port" = "no"; then
     AC_DEFINE_UNQUOTED(OPT_DISABLE_AVR, 1)
@@ -250,16 +262,18 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_AVR, 0)
 fi
 
-AC_ARG_ENABLE(ds390-port,--disable-ds390-port: Excludes the DS390 port)
+AC_ARG_ENABLE(ds390-port,[  --disable-ds390-port    Excludes the DS390 port])
 echo ds390 >>ports.all
 if test "$enable_ds390_port" = "no"; then
     AC_DEFINE_UNQUOTED(OPT_DISABLE_DS390, 1)
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_TININative, 1)
 else
     echo ds390 >>ports.build
     AC_DEFINE_UNQUOTED(OPT_DISABLE_DS390, 0)
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_TININative, 0)
 fi
 
-AC_ARG_ENABLE(pic-port,--disable-pic-port: Excludes the PIC port)
+AC_ARG_ENABLE(pic-port,[  --disable-pic-port      Excludes the PIC port])
 echo pic >>ports.all
 if test "$enable_pic_port" = "no"; then
     AC_DEFINE_UNQUOTED(OPT_DISABLE_PIC, 1)
@@ -268,23 +282,35 @@ else
     AC_DEFINE_UNQUOTED(OPT_DISABLE_PIC, 0)
 fi
 
-AC_ARG_ENABLE(i186-port,--disable-i186-port: Excludes the I186 port)
-echo izt >>ports.all
-if test "$enable_i186_port" = "no"; then
-    AC_DEFINE_UNQUOTED(OPT_DISABLE_I186, 1)
+AC_ARG_ENABLE(xa51-port,[  --disable-xa51-port Excludes the XA51 port])
+echo xa51 >>ports.all
+if test "$enable_xa51_port" = "no"; then
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_XA51, 1)
 else
-    echo izt >>ports.build
-    AC_DEFINE_UNQUOTED(OPT_DISABLE_I186, 0)
+    echo xa51 >>ports.build
+    AC_DEFINE_UNQUOTED(OPT_DISABLE_XA51, 0)
 fi
 
-AC_ARG_ENABLE(tlcs900h-port,--disable-tlcs900h-port: Excludes the TLCS900H port)
-echo izt >>ports.all
-if test "$enable_tlcs900h_port" = "no"; then
-    AC_DEFINE_UNQUOTED(OPT_DISABLE_TLCS900H, 1)
+AC_ARG_ENABLE(ucsim,[  --disable-ucsim         Disables configuring and building of ucsim])
+OPT_ENABLE_UCSIM=$enable_ucsim
+AC_SUBST(OPT_ENABLE_UCSIM)
+
+AC_ARG_ENABLE(device-lib-build,[  --disable-device-lib-build Disables automatically building device libraries])
+OPT_ENABLE_DEVICE_LIB_BUILD=$enable_device_lib_build
+AC_SUBST(OPT_ENABLE_DEVICE_LIB_BUILD)
+
+AC_ARG_ENABLE(packihx,[  --disable-packihx       Disables building packihx])
+OPT_ENABLE_PACKIHX=$enable_packihx
+AC_SUBST(OPT_ENABLE_PACKIHX)
+
+AC_ARG_ENABLE(libgc,[  --enable-libgc          Use the Bohem memory allocator.  Lower runtime footprint.])
+if test "$enable_libgc" = "yes"; then
+        AC_CHECK_LIB(gc, GC_malloc)
+        OPT_ENABLE_LIBGC=1
 else
-    echo izt >>ports.build
-    AC_DEFINE_UNQUOTED(OPT_DISABLE_TLCS900H, 0)
+        OPT_ENABLE_LIBGC=0
 fi
+AC_DEFINE_UNQUOTED(OPT_ENABLE_LIBGC, $OPT_ENABLE_LIBGC)
 
 #remove duplicates
 cat ports.all | uniq >ports
@@ -294,15 +320,15 @@ mv ports ports.build
 
 # Generating output files
 # ===========================================================================
-AC_CONFIG_SUBDIRS(sim/ucsim)
+AC_CONFIG_SUBDIRS(support/cpp2)
 AC_CONFIG_SUBDIRS(packihx)
+AC_CONFIG_SUBDIRS(sim/ucsim)
 # MLH: removed as the rules are already in Makefile.common
 #as/z80/Makefile
 #link/z80/Makefile
 AC_OUTPUT(main.mk:main_in.mk
 src/Makefile
 as/mcs51/Makefile
-support/cpp/Makefile
 device/include/Makefile
 device/lib/Makefile
 debugger/mcs51/Makefile