AC_PROG_MKDIR_P
AC_CANONICAL_HOST
+AC_CANONICAL_CPU_ARCH
# Detect the target system
build_linux=no
esac
AM_CONDITIONAL([HAVE_LINUX], [test "$build_linux" = "yes"])
+AC_SUBST(PACKAGE_TARGET_CPU_ARCH)
+AC_DEFINE_UNQUOTED(PACKAGE_TARGET_CPU_ARCH, "$target_cpu_arch", [Define to the target architecture])
+
LT_PREREQ([2.2.6])
LT_INIT([disable-static])
PKG_PROG_PKG_CONFIG([0.21])
parser/namespaces.vala \
parser/namespace-missing-bracket.test \
parser/preprocessor.vala \
+ parser/preprocessor-arch.vala \
parser/preprocessor-glib.vala \
parser/preprocessor-vala.vala \
parser/property-default-redefined.test \
--- /dev/null
+/*
+ x86_64
+ i386
+ ppc64el
+ ppc
+ aarch64
+ arm
+ sparc64
+ sparc
+ mips64
+ mips
+ alpha
+ hppa1
+ hppa2
+ m68k
+ s390x
+*/
+void main () {
+#if VALA_ARCH_X86_64
+ assert (sizeof (void*) == 8);
+ assert (sizeof (int) == 4);
+ assert (sizeof (uint8) == 1);
+ assert (sizeof (uint16) == 2);
+ assert (sizeof (uint32) == 4);
+ assert (sizeof (size_t) == 8);
+ assert (sizeof (ssize_t) == 8);
+ assert (sizeof (uint64) == 8);
+ assert (sizeof (int64) == 8);
+#elif VALA_ARCH_I386
+ assert (sizeof (void*) == 4);
+ assert (sizeof (int) == 4);
+ assert (sizeof (uint8) == 1);
+ assert (sizeof (uint16) == 2);
+ assert (sizeof (uint32) == 4);
+ assert (sizeof (size_t) == 4);
+ assert (sizeof (ssize_t) == 4);
+ assert (sizeof (uint64) == 8);
+ assert (sizeof (int64) == 8);
+#elif VALA_ARCH_PPC64EL
+#elif VALA_ARCH_PPC
+#elif VALA_ARCH_AARCH64
+#elif VALA_ARCH_ARM
+#elif VALA_ARCH_SPARC64
+#elif VALA_ARCH_SPARC
+#elif VALA_ARCH_MIPS64
+#elif VALA_ARCH_MIPS
+#elif VALA_ARCH_ALPHA
+#elif VALA_ARCH_HPPA1
+#elif VALA_ARCH_HPPA2
+#elif VALA_ARCH_M68K
+#elif VALA_ARCH_S390X
+#else
+ message ("Targeting an unkown arch");
+#endif
+}
for (int i = 16; i <= target_glib_minor; i += 2) {
defines.add ("GLIB_2_%d".printf (i));
}
+
+ defines.add ("VALA_ARCH_%s".printf (Config.PACKAGE_TARGET_CPU_ARCH.ascii_up ().replace ("-", "_")));
}
/**
namespace Config {
public const string PACKAGE_DATADIR;
public const string PACKAGE_SUFFIX;
+ public const string PACKAGE_TARGET_CPU_ARCH;
public const string PACKAGE_VALADOC_LIBDIR;
public const string PACKAGE_VALADOC_ICONDIR;
}