1b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/****************************************************************************** 283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius * Copyright (C) 2008-2011, International Business Machines 3b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Corporation and others. All Rights Reserved. 4b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru ******************************************************************************* 5b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 6b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 7b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#ifndef __PKG_GENC_H__ 8b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#define __PKG_GENC_H__ 9b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 10b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "unicode/utypes.h" 1183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#include "toolutil.h" 1283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 1383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#include "unicode/putil.h" 1483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#include "putilimp.h" 1583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 1683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius/*** Platform #defines move here ***/ 1783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#if U_PLATFORM_HAS_WIN32_API 1883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __GNUC__ 1983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define WINDOWS_WITH_GNUC 2083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#else 2183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define WINDOWS_WITH_MSVC 2283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 2383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 2483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 2583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 2683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#if !defined(WINDOWS_WITH_MSVC) 2783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define BUILD_DATA_WITHOUT_ASSEMBLY 2883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 2983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 3083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef U_DISABLE_OBJ_CODE /* testing */ 3183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#if defined(WINDOWS_WITH_MSVC) || U_PLATFORM_IS_LINUX_BASED 3283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define CAN_WRITE_OBJ_CODE 3383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 3483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#if U_PLATFORM_HAS_WIN32_API || defined(U_ELF) 3583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define CAN_GENERATE_OBJECTS 3683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 3783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 3883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 3983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#if U_PLATFORM == U_PF_CYGWIN || defined(CYGWINMSVC) 4083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define USING_CYGWIN 4183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 4283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 4383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius/* 4483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius * When building the data library without assembly, 4583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius * some platforms use a single c code file for all of 4683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius * the data to generate the final data library. This can 4783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius * increase the performance of the pkdata tool. 4883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius */ 4983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#if U_PLATFORM == U_PF_OS400 5083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define USE_SINGLE_CCODE_FILE 5183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 5283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 5383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius/* Need to fix the file seperator character when using MinGW. */ 5483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#if defined(WINDOWS_WITH_GNUC) || defined(USING_CYGWIN) 5583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define PKGDATA_FILE_SEP_STRING "/" 5683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#else 5783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define PKGDATA_FILE_SEP_STRING U_FILE_SEP_STRING 5883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif 5983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 6083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define LARGE_BUFFER_MAX_SIZE 2048 6183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define SMALL_BUFFER_MAX_SIZE 512 6283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define SMALL_BUFFER_FLAG_NAMES 32 6383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#define BUFFER_PADDING_SIZE 20 6483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 6583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius/** End platform defines **/ 6683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 6783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius 68b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 69b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruU_INTERNAL void U_EXPORT2 7050294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoprintAssemblyHeadersToStdErr(void); 71b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 72b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruU_INTERNAL UBool U_EXPORT2 73b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QuerucheckAssemblyHeaderName(const char* optAssembly); 74b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 75b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruU_INTERNAL void U_EXPORT2 76b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruwriteCCode(const char *filename, const char *destdir, const char *optName, const char *optFilename, char *outFilePath); 77b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 78b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruU_INTERNAL void U_EXPORT2 79b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruwriteAssemblyCode(const char *filename, const char *destdir, const char *optEntryPoint, const char *optFilename, char *outFilePath); 80b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 81b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruU_INTERNAL void U_EXPORT2 82b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruwriteObjectCode(const char *filename, const char *destdir, const char *optEntryPoint, const char *optMatchArch, const char *optFilename, char *outFilePath); 83b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 84b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif 85