Initialize the gmime for upstream
[platform/upstream/gmime.git] / mono / Makefile.am
1 API = gmime-api.xml
2 SNK = gmime-sharp.snk
3 RAW_API = gmime-api.raw
4 METADATA = GMime.metadata
5 ASSEMBLY_NAME = gmime-sharp
6 references = $(GLIB_SHARP_LIBS)
7 SOURCES_XML = sources.xml
8
9 PACKAGE_SHARP = $(PACKAGE)-sharp-$(GMIME_API_VERSION)
10 ASSEMBLY = $(ASSEMBLY_NAME).dll
11 TARGET = $(ASSEMBLY) $(ASSEMBLY).config
12 TARGET_API = $(API)
13 noinst_DATA = $(API) $(ASSEMBLY) $(ASSEMBLY).config
14 CLEANFILES = $(ASSEMBLY) generated-stamp generated/*.cs $(API)
15 DISTCLEANFILES = $(ASSEMBLY).config AssemblyInfo.cs gmime-sharp-$(GMIME_API_VERSION).pc
16 GACUTIL_DESTDIR_FLAGS = -package $(PACKAGE_SHARP) -root $(DESTDIR)$(gacdir)
17 GACUTIL_FLAGS = -package $(PACKAGE_SHARP) -gacdir $(gacdir)
18
19 pkgconfigdir = $(libdir)/pkgconfig
20 pkgconfig_DATA = $(PACKAGE_SHARP).pc
21 gapidir = $(datadir)/gapi-2.0
22 gapi_DATA = $(TARGET_API)
23
24 sources =                                       \
25         StreamWrapper.cs                        \
26         HeaderEnumerator.cs                     \
27         Header.cs
28
29 build_sources =                                 \
30         $(srcdir)/StreamWrapper.cs              \
31         $(srcdir)/HeaderEnumerator.cs           \
32         $(srcdir)/Header.cs                     \
33         AssemblyInfo.cs
34
35 customs =                                       \
36         CertificateCollection.custom            \
37         DataWrapper.custom                      \
38         Global.custom                           \
39         HeaderList.custom                       \
40         InternetAddress.custom                  \
41         InternetAddressList.custom              \
42         Message.custom                          \
43         Multipart.custom                        \
44         Object.custom                           \
45         SignatureCollection.custom              \
46         Stream.custom
47
48 build_customs =                                 \
49         $(srcdir)/CertificateCollection.custom  \
50         $(srcdir)/DataWrapper.custom            \
51         $(srcdir)/Global.custom                 \
52         $(srcdir)/HeaderList.custom             \
53         $(srcdir)/InternetAddress.custom        \
54         $(srcdir)/InternetAddressList.custom    \
55         $(srcdir)/Message.custom                \
56         $(srcdir)/Multipart.custom              \
57         $(srcdir)/Object.custom                 \
58         $(srcdir)/SignatureCollection.custom    \
59         $(srcdir)/Stream.custom
60
61 EXTRA_DIST =                                    \
62         $(ASSEMBLY).config.in                   \
63         AssemblyInfo.cs.in                      \
64         $(SNK)                                  \
65         $(METADATA)                             \
66         $(RAW_API)                              \
67         $(customs)                              \
68         $(sources)                              \
69         $(SOURCES_XML)                          \
70         gmime-sharp.pc.in
71
72 $(PACKAGE_SHARP).pc: gmime-sharp.pc
73         -cp gmime-sharp.pc $(PACKAGE_SHARP).pc
74
75 $(API): $(srcdir)/$(RAW_API) $(srcdir)/$(METADATA)
76         cp $(srcdir)/$(RAW_API) $(API)
77         chmod u+w $(API)
78         $(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA)
79
80 generated-stamp: $(API) $(build_customs)
81         rm -f generated/* &&    \
82         $(GAPI_CODEGEN) --generate $(API) --outdir=generated --customdir=$(srcdir) --assembly-name=$(ASSEMBLY_NAME) \
83         && touch generated-stamp
84
85 if PLATFORM_WIN32
86 GAPI_CDECL_INSERT=$(top_srcdir)/gapi-cdecl-insert --keyfile=$(SNK) $(ASSEMBLY)
87 else
88 GAPI_CDECL_INSERT=
89 endif
90
91 $(ASSEMBLY): $(build_sources) generated-stamp $(srcdir)/$(ASSEMBLY_NAME).snk
92         $(CSC) -unsafe /out:$(ASSEMBLY) /target:library $(references) \
93         -keyfile:$(srcdir)/$(ASSEMBLY_NAME).snk $(build_sources) generated/*.cs
94         $(GAPI_CDECL_INSERT)
95         sn -q -R $(ASSEMBLY) $(srcdir)/$(SNK)
96
97 install-data-local:
98         @if test -n '$(TARGET)'; then                                           \
99           if test -n '$(DESTDIR)'; then                                         \
100             echo "$(GACUTIL) -i $(ASSEMBLY) -f $(GACUTIL_DESTDIR_FLAGS)";       \
101             $(GACUTIL) -i $(ASSEMBLY) -f $(GACUTIL_DESTDIR_FLAGS) || exit 1;    \
102           else                                                                  \
103             echo "$(GACUTIL) -i $(ASSEMBLY) -f $(GACUTIL_FLAGS)";               \
104             $(GACUTIL) -i $(ASSEMBLY) -f $(GACUTIL_FLAGS) || exit 1;            \
105           fi;                                                                   \
106         fi
107
108 uninstall-local:
109         @if test -n '$(TARGET)'; then                                           \
110           if test -n '$(DESTDIR)'; then                                         \
111             echo "$(GACUTIL) -u $(ASSEMBLY_NAME) $(GACUTIL_DESTDIR_FLAGS)";     \
112             $(GACUTIL) -u $(ASSEMBLY_NAME) $(GACUTIL_DESTDIR_FLAGS) || exit 1;  \
113           else                                                                  \
114             echo "$(GACUTIL) -u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS)";             \
115             $(GACUTIL) -u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS) || exit 1;          \
116           fi;                                                                   \
117         fi
118
119 parse:
120         $(GAPI_PARSER) $(SOURCES_XML)