1/************************************************************************** 2* 3* Copyright (C) 2000-2005, International Business Machines 4* Corporation and others. All Rights Reserved. 5* 6*************************************************************************** 7* file name: makefile.h 8* encoding: ANSI X3.4 (1968) 9* tab size: 8 (not used) 10* indentation:4 11* 12* created on: 2000may17 13* created by: Steven \u24C7 Loomis 14* 15* definition for code to create a makefile. 16* implementation is OS dependent (i.e. gmake.c, nmake.c, .. ) 17*/ 18 19#ifndef _MAKEFILE 20#define _MAKEFILE 21 22/* headers */ 23#include "unicode/utypes.h" 24#include "pkgtypes.h" 25 26 27/* Write any setup/initialization stuff */ 28void 29pkg_mak_writeHeader(FileStream *f, const UPKGOptions *o); 30 31/* Write a stanza in the makefile, with specified "target: parents... \n\n\tcommands" [etc] */ 32void 33pkg_mak_writeStanza(FileStream *f, const UPKGOptions *o, 34 const char *target, 35 CharList* parents, 36 CharList* commands); 37 38/* write any cleanup/post stuff */ 39void 40pkg_mak_writeFooter(FileStream *f, const UPKGOptions *o); 41 42 43 44#ifdef U_MAKE_IS_NMAKE 45extern void pkg_mode_windows(UPKGOptions *o, FileStream *makefile, UErrorCode *status); 46#else /*#ifdef U_MAKE_IS_NMAKE*/ 47/** 48 * Write stanzas for generating .o (and .c) files for each data file in 'o->filePaths'. 49 * @param o Package options struct 50 * @param makefile Current makefile being written 51 * @param objects On output, list of object files 52 * @param objSuffix Suffix of object files including dot, typically OBJ_SUFFIX or ".o" or ".obj" 53 */ 54extern void 55pkg_mak_writeObjRules(UPKGOptions *o, FileStream *makefile, CharList **objects, const char* objSuffix); 56#ifdef UDATA_SO_SUFFIX 57extern void pkg_mode_dll(UPKGOptions* o, FileStream *stream, UErrorCode *status); 58extern void pkg_mode_static(UPKGOptions* o, FileStream *stream, UErrorCode *status); 59#endif /*#ifdef UDATA_SO_SUFFIX*/ 60extern void pkg_mode_common(UPKGOptions* o, FileStream *stream, UErrorCode *status); 61#endif /*#ifdef U_MAKE_IS_NMAKE*/ 62 63extern void pkg_mode_files(UPKGOptions* o, FileStream *stream, UErrorCode *status); 64 65 66extern void 67pkg_mak_writeAssemblyHeader(FileStream *f, const UPKGOptions *o); 68extern void 69pkg_mak_writeAssemblyFooter(FileStream *f, const UPKGOptions *o); 70 71#endif 72