srcdir = @srcdir@
# Flags
+HAVE_LIBGC = @HAVE_LIBGC@
DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@)
-CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) -I$(PRJDIR)/support
+CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR)
+ifeq ($(HAVE_LIBGC),1)
+else
+CPPFLAGS += -I$(PRJDIR)/support
+endif
CFLAGS = @CFLAGS@ -Wall
M_OR_MM = @M_OR_MM@
-for ac_prog in gawk mawk nawk awk
+for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
EOF
+# mlh: dont compile libgc if it's available locally
+echo $ac_n "checking for GC_malloc in -lgc""... $ac_c" 1>&6
+echo "configure:2453: checking for GC_malloc in -lgc" >&5
+ac_lib_var=`echo gc'_'GC_malloc | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lgc $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2461 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char GC_malloc();
+
+int main() {
+GC_malloc()
+; return 0; }
+EOF
+if { (eval echo configure:2472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_LIBGC=1
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
# Generating output files
# ===========================================================================
s%@AS@%$AS%g
s%@CP@%$CP%g
s%@M_OR_MM@%$M_OR_MM%g
+s%@HAVE_LIBGC@%$HAVE_LIBGC%g
s%@subdirs@%$subdirs%g
CEOF
AC_DEFINE_UNQUOTED(DATADIR, "${sdcc_datadir}")
AC_DEFINE_UNQUOTED(SRCDIR, "${config_in}")
+# mlh: dont compile libgc if it's available locally
+AC_CHECK_LIB(gc,GC_malloc,HAVE_LIBGC=1)
+AC_SUBST(HAVE_LIBGC)
# Generating output files
# ===========================================================================
PORT_LIBS = $(PORTS:%=%/port.a)
LIBS = -lgc @LIBS@
+ifeq ($(HAVE_LIBGC), 1)
+else
LIBDIRS = -L$(PRJDIR)/support/gc
+LIBGC = $(PRJDIR)/support/gc/libgc.a
+endif
OBJECTS = SDCCy.o SDCClex.o SDCCerr.o SDCChasht.o SDCCmain.o \
SDCCsymt.o SDCCopt.o SDCCast.o SDCCmem.o SDCCval.o \
# Compiling entire program or any subproject
# ------------------------------------------
-all: ports checkconf $(PRJDIR)/support/gc/libgc.a $(TARGET)
+all: ports checkconf $(LIBGC) $(TARGET)
ports:
for i in $(PORTS); do $(MAKE) -C $$i; done