/* This file is part of bsconf - a configure replacement. * * This is the configuration file used by bsconf.c to specify information * specific to your project that it needs to substitute into files listed * in g_Files. Being a configuration file, this file can be used or * modified entirely without restriction. You should change all values * appropriately to the name of your project and its requirements. The * bsconf license does not apply to this file. It can and should be * treated as a template for the creation of your own configuration file. * * All substituted variable names are given without enclosing @@. For * example: "CC" will match "@CC@" in config.h.in and replace it with * "gcc" in config.h. */ #include "uassert.h" #define BSCONF_VERSION 0x03 #define PACKAGE_NAME "ustl" #define LIB_MAJOR "1" #define LIB_MINOR "0" #define LIB_BUILD "0" #define PACKAGE_VERSION LIB_MAJOR "." LIB_MINOR #define PACKAGE_TARNAME PACKAGE_NAME #define PACKAGE_STRING PACKAGE_NAME " " PACKAGE_VERSION #define PACKAGE_BUGREPORT "Mike Sharov <msharov@users.sourceforge.net>" static cpchar_t g_Files [] = { "Config.mk", "config.h", "ustl.spec" }; /* Values substitute @VARNAME@ */ static cpchar_t g_EnvVars [] = { "CC", "LD", "CXX", "CPP", "HOME", "CXXFLAGS", "LDFLAGS", "CPPFLAGS", "LDFLAGS", "CFLAGS" }; /* VARIABLE PROGRAM HOW TO CALL IF NOT FOUND */ static cpchar_t g_ProgVars [] = { "CC", "gcc", "gcc", "@CC@", "CC", "cc", "cc", "gcc", "CXX", "g++", "g++", "@CXX@", "CXX", "c++", "c++", "g++", "LD", "ld", "ld", "ld", "AR", "ar", "ar", "echo", "RANLIB", "ranlib", "ranlib", "touch", "DOXYGEN", "doxygen", "doxygen", "echo", "INSTALL", "install", "install -c", "cp" }; /* NAME IF NOT FOUND IF FOUND */ static cpchar_t g_Headers [] = { "assert.h", "#undef HAVE_ASSERT_H", "#define HAVE_ASSERT_H 1", "ctype.h", "#undef HAVE_CTYPE_H", "#define HAVE_CTYPE_H 1", "errno.h", "#undef HAVE_ERRNO_H", "#define HAVE_ERRNO_H 1", "fcntl.h", "#undef HAVE_FCNTL_H", "#define HAVE_FCNTL_H 1", "float.h", "#undef HAVE_FLOAT_H", "#define HAVE_FLOAT_H 1", "inttypes.h", "#undef HAVE_INTTYPES_H", "#define HAVE_INTTYPES_H 1", "limits.h", "#undef HAVE_LIMITS_H", "#define HAVE_LIMITS_H 1", "locale.h", "#undef HAVE_LOCALE_H", "#define HAVE_LOCALE_H 1", "malloc.h", "#undef HAVE_MALLOC_H", "#define HAVE_MALLOC_H 1", "alloca.h", "#undef HAVE_ALLOCA_H", "#define HAVE_ALLOCA_H 1", "memory.h", "#undef HAVE_MEMORY_H", "#define HAVE_MEMORY_H 1", "signal.h", "#undef HAVE_SIGNAL_H", "#define HAVE_SIGNAL_H 1", "stdarg.h", "#undef HAVE_STDARG_H", "#define HAVE_STDARG_H 1", "stddef.h", "#undef HAVE_STDDEF_H", "#define HAVE_STDDEF_H 1", "stdint.h", "#undef HAVE_STDINT_H", "#define HAVE_STDINT_H 1", "stdio.h", "#undef HAVE_STDIO_H", "#define HAVE_STDIO_H 1", "stdlib.h", "#undef HAVE_STDLIB_H", "#define HAVE_STDLIB_H 1", "string.h", "#undef HAVE_STRING_H", "#define HAVE_STRING_H 1", "strings.h", "#undef HAVE_STRINGS_H", "#define HAVE_STRINGS_H 1", "sys/stat.h", "#undef HAVE_SYS_STAT_H", "#define HAVE_SYS_STAT_H 1", "sys/types.h", "#undef HAVE_SYS_TYPES_H", "#define HAVE_SYS_TYPES_H 1", "sys/wait.h", "#undef HAVE_SYS_WAIT_H", "#define HAVE_SYS_WAIT_H 1", "time.h", "#undef HAVE_TIME_H", "#define HAVE_TIME_H 1", "unistd.h", "#undef HAVE_UNISTD_H", "#define HAVE_UNISTD_H 1", "math.h", "#undef HAVE_MATH_H", "#define HAVE_MATH_H 1", "stdlib.h", "#undef HAVE_STDLIB_H", "#define HAVE_STDLIB_H 1" }; /* NAME IF NOT FOUND IF FOUND */ static cpchar_t g_Libs [] = { "supc++", "", "-lsupc++", #if __GNUC__ >= 4 "gcc", "-lgcc_s", "-lgcc_s", "gcc_eh", "", "", #elif __GNUC__ >= 3 "gcc", "-lgcc_s", "-lgcc", "gcc_eh", "-lgcc_s", "-lgcc_eh", #else "gcc", "", "-lgcc", "gcc_eh", "", "", #endif "SystemStubs", "", "-lSystemStubs", /* For MacOS 10.4+ */ "c", "", "-lc" }; /* NAME IF NOT FOUND IF FOUND */ static cpchar_t g_Functions [] = { "atexit", "#undef HAVE_ATEXIT", "#define HAVE_ATEXIT 1", "malloc", "#undef HAVE_MALLOC\n", "#define HAVE_MALLOC 1\n", "memchr", "#undef HAVE_MEMCHR", "#define HAVE_MEMCHR 1", "memmove", "#undef HAVE_MEMMOVE", "#define HAVE_MEMMOVE 1", "memset", "#undef HAVE_MEMSET", "#define HAVE_MEMSET 1", "ptrdiff_t", "#undef HAVE_PTRDIFF_T", "#define HAVE_PTRDIFF_T 1", "strerror", "#undef HAVE_STRERROR", "#define HAVE_STRERROR 1", "strsignal", "#undef HAVE_STRSIGNAL", "#define HAVE_STRSIGNAL 1", "strtol", "#undef HAVE_STRTOL", "#define HAVE_STRTOL 1", #if __GNUC__ >= 3 "round", "#undef HAVE_ROUND", "#define HAVE_ROUND 1", #endif "strrchr", "#undef HAVE_STRRCHR", "#define HAVE_STRRCHR 1", "__va_copy", "#undef HAVE_VA_COPY", "#define HAVE_VA_COPY 1" }; /* NAME WITHOUT TEXT WITH TEXT */ static cpchar_t g_Components [] = { "shared", "#BUILD_SHARED\t= 1", "BUILD_SHARED\t= 1 ", "static", "#BUILD_STATIC\t= 1", "BUILD_STATIC\t= 1 ", "debug", "#DEBUG\t\t= 1", "DEBUG\t\t= 1 ", "bounds", "#undef WANT_STREAM_BOUNDS_CHECKING", "#define WANT_STREAM_BOUNDS_CHECKING 1 ", "fastcopy", "#undef WANT_UNROLLED_COPY", "#define WANT_UNROLLED_COPY 1 ", #if __GNUC__ >= 3 && (__i386__ || __x86_64__) && !sun "mmx", "#undef WANT_MMX", "#define WANT_MMX 1 ", #endif "libstdc++", "#define WITHOUT_LIBSTDCPP 1", "#undef WITHOUT_LIBSTDCPP", "libstdc++", "NOLIBSTDCPP\t= -nodefaultlibs ", "#NOLIBSTDCPP\t= -nodefaultlibs" }; /* Parallel to g_Components */ static SComponentInfo g_ComponentInfos [VectorSize(g_Components) / 3] = { { 1, "Builds the shared library (if supported by the OS)" }, { 0, "Builds the static library" }, { 0, "Compiles the library with debugging information" }, { 1, "Disable runtime bounds checking on stream reads/writes" }, { 1, "Disable specializations for copy/fill" }, #if __GNUC__ >= 3 && (__i386__ || __x86_64__) && !sun { 1, "Disable use of MMX/SSE/3dNow! instructions" }, #endif #if __GNUC__ >= 3 { 0, "Link with libstdc++" }, { 0, "" } #else { 1, "" }, { 1, "" } #endif }; /* Substitutes names like @PACKAGE_NAME@ with the second field */ static cpchar_t g_CustomVars [] = { "PACKAGE_NAME", PACKAGE_NAME, "PACKAGE_VERSION", PACKAGE_VERSION, "PACKAGE_TARNAME", PACKAGE_TARNAME, "PACKAGE_STRING", PACKAGE_STRING, "PACKAGE_BUGREPORT", PACKAGE_BUGREPORT, "LIBNAME", PACKAGE_NAME, "LIB_MAJOR", LIB_MAJOR, "LIB_MINOR", LIB_MINOR, "LIB_BUILD", LIB_BUILD };