enable_external_effects := @enable_external_effects@
# do we want to use the libcore for debug and ADT support
enable_libcore := @enable_libcore@
+enable_backend := @enable_backend@
+backends := @BACKENDS@
LIBCORE_CFLAGS = @LIBCORE_CFLAGS@
LIBCORE_LIBS = @LIBCORE_LFLAGS@
ir/opt ir/tr ir/ana ir/stat ir/ana2 ir/arch ir/lower \
$(plugin_subdirs)
-ifeq (@enable_external_effects@,yes)
+ifeq ($(enable_external_effects),yes)
build_subdirs += ir/external
endif
+ifeq ($(enable_backend),yes)
+build_subdirs += ir/be $(addprefix ir/be/, $(backends))
+endif
build_add_lib := libfirm_xmalloc.a
-/* config.h.in. Generated from configure.in by autoheader. */
-
-
-
-/* define to enable debugging stuff */
-#undef DEBUG_libfirm
-
-/* enable heap analysis */
-#undef DO_HEAPANALYSIS
-
-/* enable firm hooks */
-#undef FIRM_ENABLE_HOOKS
-
-/* enable wchar_t support for identifiers */
-#undef FIRM_ENABLE_WCHAR
-
-/* enable statistics code */
-#undef FIRM_STATISTICS
+/*
+ * Project: libFIRM
+ * File name: acconfig.h
+ * Purpose:
+ * Author: Till Riedel
+ * Modified by:
+ * Created:
+ * CVS-ID: $Id$
+ * Copyright: (c) 2002-2003 Universität Karlsruhe
+ * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ */
/* Define to 1 if you have the <alloca.h> header file. */
#undef HAVE_ALLOCA_H
/* Define to 1 if you have the <jni.h> header file. */
#undef HAVE_JNI_H
-/* Define to 1 if you have the <libxml/parser.h> header file. */
-#undef HAVE_LIBXML_PARSER_H
-
-/* Define to 1 if the type `long double' works and has more range or precision
- than `double'. */
-#undef HAVE_LONG_DOUBLE
-
-/* Define to 1 if the type `long double' works and has more range or precision
- than `double'. */
-#undef HAVE_LONG_DOUBLE_WIDER
-
/* Define to 1 if you have the <math.h> header file. */
#undef HAVE_MATH_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-/* define to disable asserts */
-#undef NDEBUG
-
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
-/* use inlining */
-#undef USE_INLINING
-
-/* compile with ilp solver support */
-#undef WITH_ILP
-
-/* compile with jvm support */
-#undef WITH_JVM
+/* ---------------snip, snip ---------------------- */
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
-/* we use gnu extensions */
-#undef _GNU_SOURCE
+/* Define to 1 if long double works and has more range or precision than
+ double. */
+#undef HAVE_LONG_DOUBLE
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
+/* Define to 1 for heap analysis support */
+#undef DO_HEAPANALYSIS
+
+/* Define the right volatile token */
+#undef volatile
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
+/* Define the right inline token */
#undef inline
-#endif
-/* Define to empty if the keyword `volatile' does not work. Warning: valid
- code using `volatile' can become incorrect without. Disable with care. */
-#undef volatile
+/* Define the right const token */
+#undef const
+
+/* define to 1 to enable debugging stuff. */
+#undef DEBUG_libfirm
+
+/* define to 1 to use the libcore */
+#undef WITH_LIBCORE
+
+/* define to 1 to use the ILP solver */
+#undef WITH_ILP
+/* define to 1 to enable Firm to call the JVM */
+#undef WITH_JVM
+
+/* define to 1 if we use gnu extensions */
+#undef _GNU_SOURCE
+
+/* define to 1 to have wchar_t support for identifiers */
+#define FIRM_ENABLE_WCHAR
+
+/* Define to disable assertion checking. */
+#undef NDEBUG
+
+/* undef to disable inlining */
+#undef USE_INLINING
+
+/* Define to 1 if Firm hooks are activated */
+#undef FIRM_ENABLE_HOOKS
+
+/* Define to 1 if Firm statistics are activated */
+#undef FIRM_STATISTICS
#ifdef USE_INLINING
#define INLINE inline
[AS_HELP_STRING([--disable-libcore], [disable libcore support])],
[enable_libcore="$enableval"],[enable_libcore="yes"])
-#if test "$enable_libcore" = yes; then
-# AC_MSG_CHECKING([for libcore])
-# PKG_CHECK_MODULES([libcore],
-# LIBS="$LIBS -lcore"
-# AC_LINK_IFELSE(
-# AC_LANG_PROGRAM([#include <libcore/lc_opts.h>],
-# [lc_opts_init("", 0, "", 1, 0)]),
-# [],
-# [AC_MSG_ERROR(
-# [Couldn't build libcore testprogramm. Check config.log for details])])
-# AC_DEFINE([WITH_LIBCORE], [], [compile with libcore support])
-#fi
AC_SUBST([enable_libcore])
dnl enable ILP solver support
AC_SUBST(enable_external_effects)
+dnl disable backend
+dnl ---------------
+AC_ARG_ENABLE([backend],
+[AS_HELP_STRING([--disable-backend], [disable backends])],
+[enable_backend="$enableval"], [enable_backend="yes"])
+
+AC_SUBST(enable_backend)
+
dnl Checks for programs.
dnl ====================
dnl ===============
+dnl Output results
AC_CONFIG_FILES([
Makefile
MakeRules
dnl snip the lower part of config.h and put it to ir/config/firm_config.h
AC_CONFIG_COMMANDS([firm_config.h],
[awk -f ${ac_top_srcdir}/filter.awk < ${ac_top_builddir}config.h > ${ac_top_builddir}ir/config/firm_config.h])
+
+BACKENDS=""
+if test "$enable_backend" == yes; then
+ BACKENDS="arm ia32 mips ppc32"
+fi
+AC_SUBST([BACKENDS])
+
+if test "$BACKENDS"; then
+ AC_CONFIG_FILES([ir/be/Makefile])
+ for backend in $BACKENDS; do
+ AC_CONFIG_FILES([ir/be/$backend/Makefile])
+ done
+fi
+
AC_OUTPUT
dnl output summary of firm configuration
echo ""
echo "firm configuration summary:"
+echo " backends $BACKENDS"
echo " profiling $enable_profile_libfirm"
echo " debug/verifiers $enable_debug_libfirm"
echo " assertions $enable_assert"
#define true 1
#define false 0
+#define static
+
//static int *row;
// queen in column c is at row[c]
int j = 0;
boolean res;
+#if 0
+ if(0 >= i)
+ return true;
+
+ do {
+ int rj = r[j];
+ if ((rj == ri) || ((myabs(ri-rj)) == (i-j))) {
+ res = false;
+ return(res);
+ }
+ j = j+1;
+ } while(j < i);
+
+ res = true;
+ return(res);
+#else
while (j < i) {
int rj = r[j];
if ((rj == ri) || ((myabs(ri-rj)) == (i-j))) {
res = true;
return(res);
+#endif
}
int solve (int n) {