1/* 2 * This file is part of Freecell Solver. It is subject to the license terms in 3 * the COPYING.txt file found in the top-level directory of this distribution 4 * and at http://fc-solve.shlomifish.org/docs/distro/COPYING.html . No part of 5 * Freecell Solver, including this file, may be copied, modified, propagated, 6 * or distributed except according to the terms contained in the COPYING file. 7 * 8 * Copyright (c) 2000 Shlomi Fish 9 */ 10/* 11 * config.h - Configuration file for Freecell Solver 12 * 13 * ${AUTOGENERATED_CONFIG_H} 14*/ 15#pragma once 16 17#ifdef __cplusplus 18extern "C" { 19#endif 20 21#include "freecell-solver/fcs_back_compat.h" 22 23#cmakedefine COMPACT_STATES 24#cmakedefine INDIRECT_STACK_STATES 25 26#cmakedefine FCS_RCS_STATES 27#cmakedefine CARD_DEBUG_PRES 28 29/* The size of a single pack in alloc.c/alloc.h measured in 1024 chars. */ 30#cmakedefine FCS_IA_PACK_SIZE ${FCS_IA_PACK_SIZE} 31 32#ifndef FCS_FREECELL_ONLY 33#cmakedefine FCS_FREECELL_ONLY 34#endif 35 36#cmakedefine FCS_DISABLE_SIMPLE_SIMON 37#cmakedefine FCS_SINGLE_HARD_THREAD 38#cmakedefine FCS_WITHOUT_FC_PRO_MOVES_COUNT 39#cmakedefine FCS_WITHOUT_TRIM_MAX_STORED_STATES 40/* 41 * Get rid of the visited_iter counter on each state's extra_info. It is 42 * used a little for debugging, but otherwise is not needed for the run-time 43 * operation. 44 * */ 45#cmakedefine FCS_WITHOUT_VISITED_ITER 46/* 47 * Disable the patsolve code at compile time in case it isn't wanted. 48 * */ 49#ifndef FCS_DISABLE_PATSOLVE 50#cmakedefine FCS_DISABLE_PATSOLVE 51#endif 52/* 53 * Get rid of the "depth" field on each state's extra_info. It is 54 * used a little, but otherwise is not needed for the run-time 55 * operation. 56 * */ 57#cmakedefine FCS_HARD_CODE_STATE_DEPTH_FIELD 58#cmakedefine FCS_WITHOUT_DEPTH_FIELD 59#cmakedefine FCS_WITHOUT_CMD_LINE_HELP 60#cmakedefine FCS_WITHOUT_ITER_HANDLER 61#cmakedefine FCS_WITHOUT_MAX_NUM_STATES 62#cmakedefine FCS_DISABLE_MULTI_FLARES 63#cmakedefine FCS_DISABLE_MULTI_NEXT_INSTS 64#cmakedefine FCS_DISABLE_MOVES_TRACKING 65#cmakedefine FCS_DISABLE_NUM_STORED_STATES 66#cmakedefine FCS_WITHOUT_EXPORTED_RESUME_SOLUTION 67#cmakedefine FCS_DISABLE_STATE_VALIDITY_CHECK 68#cmakedefine FCS_ENABLE_PRUNE__R_TF__UNCOND 69#cmakedefine FCS_USE_PRECOMPILED_CMD_LINE_THEME 70#cmakedefine FCS_RANGE_SOLVERS_PRINT_SOLVED 71#cmakedefine FCS_UNSAFE 72/* 73 * This flag controls a hash behaviour. It seems to improve things somewhat. 74 * */ 75#cmakedefine FCS_INLINED_HASH_COMPARISON ${FCS_INLINED_HASH_COMPARISON} 76#cmakedefine FCS_INT_BIT_SIZE_LOG2 ${FCS_INT_BIT_SIZE_LOG2} 77#cmakedefine FCS_WITH_CONTEXT_VARIABLE 78/* This is an integer that specifies the maximal size of identifiers 79 * in chars/bytes. */ 80#cmakedefine FCS_MAX_IDENT_LEN ${FCS_MAX_IDENT_LEN} 81/* 82 * The size of void*. 83 */ 84@SIZEOF_VOID_P_CODE@ 85 86// This flag determines whether we are using the more compact but slower, 87// internal move tokens. 88#cmakedefine FCS_USE_COMPACT_MOVE_TOKENS 89#define FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY ${FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY} 90 91#ifndef FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY 92#define FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY 4 93#endif 94 95#ifndef FCS_HARD_CODE_SCANS_SYNERGY_AS_TRUE 96#cmakedefine FCS_HARD_CODE_SCANS_SYNERGY_AS_TRUE 97#endif 98 99#ifndef FCS_HARD_CODE_REPARENT_STATES_AS_FALSE 100#cmakedefine FCS_HARD_CODE_REPARENT_STATES_AS_FALSE 101#endif 102 103#ifndef FCS_HARD_CODE_CALC_REAL_DEPTH_AS_FALSE 104#cmakedefine FCS_HARD_CODE_CALC_REAL_DEPTH_AS_FALSE 105#endif 106 107#ifdef FCS_FREECELL_ONLY 108#define HARD_CODED_NUM_FREECELLS FCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY 109#define HARD_CODED_NUM_STACKS 8 110#define HARD_CODED_NUM_DECKS 1 111#endif 112 113#ifdef HARD_CODED_NUM_FREECELLS 114#define MAX_NUM_FREECELLS HARD_CODED_NUM_FREECELLS 115#else 116#define MAX_NUM_FREECELLS ${MAX_NUM_FREECELLS} 117#endif 118 119#cmakedefine FCS_DBM_FREECELLS_NUM ${FCS_DBM_FREECELLS_NUM} 120 121#ifdef HARD_CODED_NUM_STACKS 122#define MAX_NUM_STACKS HARD_CODED_NUM_STACKS 123#else 124#define MAX_NUM_STACKS ${MAX_NUM_STACKS} 125#endif 126 127#define MAX_NUM_INITIAL_CARDS_IN_A_STACK ${MAX_NUM_INITIAL_CARDS_IN_A_STACK} 128 129#ifdef HARD_CODED_NUM_DECKS 130#define MAX_NUM_DECKS HARD_CODED_NUM_DECKS 131#else 132#define MAX_NUM_DECKS ${MAX_NUM_DECKS} 133#endif 134 135 136#define FCS_STATE_STORAGE_INDIRECT 0 137#define FCS_STATE_STORAGE_INTERNAL_HASH 1 138#define FCS_STATE_STORAGE_LIBAVL2_TREE 2 139#define FCS_STATE_STORAGE_LIBREDBLACK_TREE 3 140#define FCS_STATE_STORAGE_GLIB_TREE 4 141#define FCS_STATE_STORAGE_GLIB_HASH 5 142#define FCS_STATE_STORAGE_DB_FILE 6 143#define FCS_STATE_STORAGE_JUDY 7 144#define FCS_STATE_STORAGE_GOOGLE_DENSE_HASH 8 145#define FCS_STATE_STORAGE_KAZ_TREE 9 146 147#define FCS_STACK_STORAGE_NULL (-1) 148#define FCS_STACK_STORAGE_INTERNAL_HASH 0 149#define FCS_STACK_STORAGE_LIBAVL2_TREE 1 150#define FCS_STACK_STORAGE_LIBREDBLACK_TREE 2 151#define FCS_STACK_STORAGE_GLIB_TREE 3 152#define FCS_STACK_STORAGE_GLIB_HASH 4 153#define FCS_STACK_STORAGE_JUDY 5 154#define FCS_STACK_STORAGE_GOOGLE_DENSE_HASH 6 155 156#define FCS_STATE_STORAGE ${FCS_STATE_STORAGE} 157#define FCS_STACK_STORAGE ${FCS_STACK_STORAGE} 158 159#define FCS_RCS_CACHE_STORAGE_JUDY 0 160#define FCS_RCS_CACHE_STORAGE_KAZ_TREE 1 161 162#define FCS_RCS_CACHE_STORAGE ${FCS_RCS_CACHE_STORAGE} 163 164#cmakedefine FCS_ZERO_FREECELLS_MODE 165 166#cmakedefine HAVE_STRNCASECMP 167#cmakedefine HAVE_STRNDUP 168#cmakedefine HAVE_VASPRINTF 169#cmakedefine FCS_USE_INT128_FOR_VAR_BASE 170#define FCS_CMD_LINE_ENABLE_INCREMENTAL_SOLVING ${FCS_CMD_LINE_ENABLE_INCREMENTAL_SOLVING} 171 172/* Version number of package */ 173#define VERSION "${VERSION}" 174 175#define FCS_WHICH_STATES_GOOGLE_HASH__DENSE 0 176#define FCS_WHICH_STATES_GOOGLE_HASH__SPARSE 1 177 178#define FCS_WHICH_COLUMNS_GOOGLE_HASH__DENSE 0 179#define FCS_WHICH_COLUMNS_GOOGLE_HASH__SPARSE 1 180 181#define FCS_WHICH_COLUMNS_GOOGLE_HASH ${FCS_WHICH_COLUMNS_GOOGLE_HASH} 182#define FCS_WHICH_STATES_GOOGLE_HASH ${FCS_WHICH_STATES_GOOGLE_HASH} 183 184// How many ranks there are - Ace to King == 13. 185#define FCS_MAX_RANK ${FCS_MAX_RANK} 186#ifdef __cplusplus 187}; 188#endif 189