]>
Commit | Line | Data |
---|---|---|
b75a7d8f A |
1 | /************************************************************************** |
2 | * | |
374ca955 | 3 | * Copyright (C) 2000-2004, International Business Machines |
b75a7d8f A |
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 */ | |
28 | void | |
29 | pkg_mak_writeHeader(FileStream *f, const UPKGOptions *o); | |
30 | ||
31 | /* Write a stanza in the makefile, with specified "target: parents... \n\n\tcommands" [etc] */ | |
32 | void | |
33 | pkg_mak_writeStanza(FileStream *f, const UPKGOptions *o, | |
34 | const char *target, | |
35 | CharList* parents, | |
36 | CharList* commands); | |
37 | ||
38 | /* write any cleanup/post stuff */ | |
39 | void | |
40 | pkg_mak_writeFooter(FileStream *f, const UPKGOptions *o); | |
41 | ||
42 | ||
43 | ||
374ca955 | 44 | #ifdef U_MAKE_IS_NMAKE |
b75a7d8f | 45 | extern void pkg_mode_windows(UPKGOptions *o, FileStream *makefile, UErrorCode *status); |
374ca955 | 46 | #else /*#ifdef U_MAKE_IS_NMAKE*/ |
b75a7d8f A |
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 | */ | |
54 | extern void | |
55 | pkg_mak_writeObjRules(UPKGOptions *o, FileStream *makefile, CharList **objects, const char* objSuffix); | |
56 | #ifdef UDATA_SO_SUFFIX | |
57 | extern void pkg_mode_dll(UPKGOptions* o, FileStream *stream, UErrorCode *status); | |
58 | extern void pkg_mode_static(UPKGOptions* o, FileStream *stream, UErrorCode *status); | |
59 | #endif /*#ifdef UDATA_SO_SUFFIX*/ | |
60 | extern void pkg_mode_common(UPKGOptions* o, FileStream *stream, UErrorCode *status); | |
61 | #endif /*#ifdef WIN32*/ | |
62 | ||
63 | extern void pkg_mode_files(UPKGOptions* o, FileStream *stream, UErrorCode *status); | |
64 | ||
65 | ||
374ca955 A |
66 | extern void |
67 | pkg_mak_writeAssemblyHeader(FileStream *f, const UPKGOptions *o); | |
68 | extern void | |
69 | pkg_mak_writeAssemblyFooter(FileStream *f, const UPKGOptions *o); | |
70 | ||
b75a7d8f | 71 | #endif |