text: /*!The Make-like Build Utility based on Lua
   *
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   * 
   * Copyright (C) 2015 - 2017, TBOOX Open Source Group.
   *
   * @author      ruki
   * @file        xmake.h
   *
   */
  #ifndef XM_XMAKE_H
  #define XM_XMAKE_H
  
  /* //////////////////////////////////////////////////////////////////////////////////////
   * includes
   */
  #include "prefix.h"
  #include "machine.h"
  
  /* //////////////////////////////////////////////////////////////////////////////////////
   * extern
   */
  __tb_extern_c_enter__
  
  /* //////////////////////////////////////////////////////////////////////////////////////
   * macros
   */
  
  #ifdef __xm_debug__
  #   define __xm_mode_debug__    TB_MODE_DEBUG
  #else
  #   define __xm_mode_debug__    (0)
  #endif
  
  #ifdef __xm_small__
  #   define __xm_mode_small__    TB_MODE_SMALL
  #else
  #   define __xm_mode_small__    (0)
  #endif
  
  /*! init xmake
   *
   * @return          tb_true or tb_false
   *
   * @code
      #include "xmake/xmake.h"
  
      int main(int argc, char** argv)
      {
          // init xmake
          if (!xm_init()) return 0;
  
  
          // exit xmake
          xm_exit();
          return 0;
      }
   * @endcode
   */
  #define xm_init()     xm_init_((tb_size_t)(__xm_mode_debug__ | __xm_mode_small__), XM_VERSION_BUILD)
  
  /* //////////////////////////////////////////////////////////////////////////////////////
   * interfaces
   */
  
  /*! init the xmake library
   *
   * @param mode      the compile mode for check __tb_small__ and __tb_debug__
   * @param build     the build version
   *
   * @return          tb_true or tb_false
   */
  tb_bool_t           xm_init_(tb_size_t mode, tb_hize_t build);
  
  /// exit the xmake library
  tb_void_t           xm_exit(tb_noarg_t);
  
  /*! the xmake version
   *
   * @return          the xmake version
   */
  tb_version_t const* xm_version(tb_noarg_t);
  
  /* //////////////////////////////////////////////////////////////////////////////////////
   * extern
   */
  __tb_extern_c_leave__
  
  #endif
  