diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-02 12:14:54 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-02 12:14:54 +0200 |
commit | 6c63b913179127e09ed7d9da8920493ccceec6ce (patch) | |
tree | 95684b51b4ab60e6468a592a53e33c2cf00027ab /dist/libxsde | |
parent | 3fd3cfc36784be43f545f2f0973e3dc58f475996 (diff) |
Add make support for creating binary distributions
Two new make targets, dist and dist-win, were added that allow one
to create a binary distribution from the current build. The dist
target creates a UNIX distribution while dist-win -- Windows.
The simplified build systems for the runtime library and examples
that were kept separately are now part of the project (the dist/
subdirectory).
Diffstat (limited to 'dist/libxsde')
-rw-r--r-- | dist/libxsde/makefile | 10 | ||||
-rw-r--r-- | dist/libxsde/nmakefile | 9 | ||||
-rw-r--r-- | dist/libxsde/xsde/makefile | 547 | ||||
-rw-r--r-- | dist/libxsde/xsde/nmakefile | 559 |
4 files changed, 1125 insertions, 0 deletions
diff --git a/dist/libxsde/makefile b/dist/libxsde/makefile new file mode 100644 index 0000000..2f1787e --- /dev/null +++ b/dist/libxsde/makefile @@ -0,0 +1,10 @@ +dirs := xsde + +.PHONY: all $(dirs) +all: $(dirs) + +$(dirs): + $(MAKE) -C $@ $(MAKECMDGOALS) + +makefile: ; +% :: $(dirs) ; diff --git a/dist/libxsde/nmakefile b/dist/libxsde/nmakefile new file mode 100644 index 0000000..9ecb241 --- /dev/null +++ b/dist/libxsde/nmakefile @@ -0,0 +1,9 @@ +dirs = xsde + +all: + @for %i in ( $(dirs) ) do \ +@cmd /c "cd %i & $(MAKE) /nologo /f nmakefile" + +test clean: + @for %i in ( $(dirs) ) do \ +@cmd /c "cd %i & $(MAKE) /nologo /f nmakefile $@" diff --git a/dist/libxsde/xsde/makefile b/dist/libxsde/xsde/makefile new file mode 100644 index 0000000..7ce4bdc --- /dev/null +++ b/dist/libxsde/xsde/makefile @@ -0,0 +1,547 @@ +root := ../.. + +include $(root)/build/config.make +include $(root)/build/c/rules.make +include $(root)/build/cxx/rules.make + +EXTRA_CPPFLAGS := -I.. + +src := c/expat/xmlparse.c c/expat/xmlrole.c c/expat/xmltok.c +src += c/genx/genx.c c/genx/char-props.c + +src += cxx/string.cxx cxx/ro-string.cxx + +ifeq ($(XSDE_STL),n) +src += cxx/strdupx.cxx +endif + +ifeq ($(XSDE_EXCEPTIONS),n) +src += cxx/sys-error.cxx +endif + +ifneq ($(XSDE_PARSER_VALIDATION)$(XSDE_SERIALIZER_VALIDATION),nn) +src += cxx/schema-error.cxx +endif + +ifeq ($(XSDE_POLYMORPHIC),y) +src += cxx/hashmap.cxx +endif + +# Common data types. +# +src += cxx/buffer.cxx cxx/sequence-base.cxx + +ifeq ($(XSDE_STL),y) +src += cxx/string-sequence-stl.cxx +else +src += cxx/qname.cxx cxx/string-sequence.cxx +endif + + +## XML +## +ifneq ($(XSDE_PARSER_VALIDATION)$(XSDE_SERIALIZER_VALIDATION),nn) +src += cxx/xml/char-table.cxx cxx/xml/ncname.cxx +endif + + +## C++/Hybrid +## +src += cxx/hybrid/sequence.cxx + + +## C++/Parser +## +src += cxx/parser/elements.cxx cxx/parser/state.cxx +src += cxx/parser/expat/document.cxx cxx/parser/expat/xml-error.cxx + +ifeq ($(XSDE_POLYMORPHIC),y) +src += cxx/parser/map.cxx cxx/parser/substitution-map.cxx +endif + +ifeq ($(XSDE_EXCEPTIONS),y) +src += cxx/parser/exceptions.cxx +else +src += cxx/parser/error.cxx +endif + +# Parser implementations. +# +ifeq ($(XSDE_PARSER_VALIDATION),y) + +src += \ +cxx/parser/validating/parser.cxx \ +cxx/parser/validating/time-zone.cxx \ +cxx/parser/validating/xml-schema-pskel.cxx + +ifeq ($(XSDE_POLYMORPHIC),y) +src += cxx/parser/validating/inheritance-map.cxx +endif + +src += \ +cxx/parser/validating/boolean.cxx \ +cxx/parser/validating/number.cxx \ +cxx/parser/validating/byte.cxx \ +cxx/parser/validating/unsigned-byte.cxx \ +cxx/parser/validating/short.cxx \ +cxx/parser/validating/unsigned-short.cxx \ +cxx/parser/validating/int.cxx \ +cxx/parser/validating/unsigned-int.cxx \ +cxx/parser/validating/integer.cxx \ +cxx/parser/validating/negative-integer.cxx \ +cxx/parser/validating/non-positive-integer.cxx \ +cxx/parser/validating/positive-integer.cxx \ +cxx/parser/validating/non-negative-integer.cxx \ +cxx/parser/validating/float.cxx \ +cxx/parser/validating/double.cxx \ +cxx/parser/validating/decimal.cxx + +ifeq ($(XSDE_LONGLONG),y) +src += \ +cxx/parser/validating/long-long.cxx \ +cxx/parser/validating/unsigned-long-long.cxx +else +src += \ +cxx/parser/validating/long.cxx \ +cxx/parser/validating/unsigned-long.cxx +endif + +ifeq ($(XSDE_STL),y) + +src += \ +cxx/parser/validating/string-stl.cxx \ +cxx/parser/validating/normalized-string-stl.cxx \ +cxx/parser/validating/token-stl.cxx \ +cxx/parser/validating/name-stl.cxx \ +cxx/parser/validating/nmtoken-stl.cxx \ +cxx/parser/validating/nmtokens-stl.cxx \ +cxx/parser/validating/ncname-stl.cxx \ +cxx/parser/validating/id-stl.cxx \ +cxx/parser/validating/idref-stl.cxx \ +cxx/parser/validating/idrefs-stl.cxx \ +cxx/parser/validating/language-stl.cxx \ +cxx/parser/validating/uri-stl.cxx \ +cxx/parser/validating/qname-stl.cxx + +else + +src += \ +cxx/parser/validating/string.cxx \ +cxx/parser/validating/normalized-string.cxx \ +cxx/parser/validating/token.cxx \ +cxx/parser/validating/name.cxx \ +cxx/parser/validating/nmtoken.cxx \ +cxx/parser/validating/nmtokens.cxx \ +cxx/parser/validating/ncname.cxx \ +cxx/parser/validating/id.cxx \ +cxx/parser/validating/idref.cxx \ +cxx/parser/validating/idrefs.cxx \ +cxx/parser/validating/language.cxx \ +cxx/parser/validating/uri.cxx \ +cxx/parser/validating/qname.cxx + +endif # stl + +src += \ +cxx/parser/validating/base64-binary.cxx \ +cxx/parser/validating/hex-binary.cxx \ +cxx/parser/validating/gday.cxx \ +cxx/parser/validating/gmonth.cxx \ +cxx/parser/validating/gyear.cxx \ +cxx/parser/validating/gmonth-day.cxx \ +cxx/parser/validating/gyear-month.cxx \ +cxx/parser/validating/date.cxx \ +cxx/parser/validating/time.cxx \ +cxx/parser/validating/date-time.cxx \ +cxx/parser/validating/duration.cxx + +else # validation + +src += \ +cxx/parser/non-validating/parser.cxx \ +cxx/parser/non-validating/time-zone.cxx \ +cxx/parser/non-validating/xml-schema-pskel.cxx + +src += \ +cxx/parser/non-validating/boolean.cxx \ +cxx/parser/non-validating/number.cxx \ +cxx/parser/non-validating/byte.cxx \ +cxx/parser/non-validating/unsigned-byte.cxx \ +cxx/parser/non-validating/short.cxx \ +cxx/parser/non-validating/unsigned-short.cxx \ +cxx/parser/non-validating/int.cxx \ +cxx/parser/non-validating/unsigned-int.cxx \ +cxx/parser/non-validating/integer.cxx \ +cxx/parser/non-validating/negative-integer.cxx \ +cxx/parser/non-validating/non-positive-integer.cxx \ +cxx/parser/non-validating/positive-integer.cxx \ +cxx/parser/non-validating/non-negative-integer.cxx \ +cxx/parser/non-validating/float.cxx \ +cxx/parser/non-validating/double.cxx \ +cxx/parser/non-validating/decimal.cxx + +ifeq ($(XSDE_LONGLONG),y) +src += \ +cxx/parser/non-validating/long-long.cxx \ +cxx/parser/non-validating/unsigned-long-long.cxx +else +src += \ +cxx/parser/non-validating/long.cxx \ +cxx/parser/non-validating/unsigned-long.cxx +endif + +ifeq ($(XSDE_STL),y) + +src += \ +cxx/parser/non-validating/string-stl.cxx \ +cxx/parser/non-validating/normalized-string-stl.cxx \ +cxx/parser/non-validating/token-stl.cxx \ +cxx/parser/non-validating/name-stl.cxx \ +cxx/parser/non-validating/nmtoken-stl.cxx \ +cxx/parser/non-validating/nmtokens-stl.cxx \ +cxx/parser/non-validating/ncname-stl.cxx \ +cxx/parser/non-validating/id-stl.cxx \ +cxx/parser/non-validating/idref-stl.cxx \ +cxx/parser/non-validating/idrefs-stl.cxx \ +cxx/parser/non-validating/language-stl.cxx \ +cxx/parser/non-validating/uri-stl.cxx \ +cxx/parser/non-validating/qname-stl.cxx + +else + +src += \ +cxx/parser/non-validating/string.cxx \ +cxx/parser/non-validating/normalized-string.cxx \ +cxx/parser/non-validating/token.cxx \ +cxx/parser/non-validating/name.cxx \ +cxx/parser/non-validating/nmtoken.cxx \ +cxx/parser/non-validating/nmtokens.cxx \ +cxx/parser/non-validating/ncname.cxx \ +cxx/parser/non-validating/id.cxx \ +cxx/parser/non-validating/idref.cxx \ +cxx/parser/non-validating/idrefs.cxx \ +cxx/parser/non-validating/language.cxx \ +cxx/parser/non-validating/uri.cxx \ +cxx/parser/non-validating/qname.cxx + +endif # stl + +src += \ +cxx/parser/non-validating/base64-binary.cxx \ +cxx/parser/non-validating/hex-binary.cxx \ +cxx/parser/non-validating/gday.cxx \ +cxx/parser/non-validating/gmonth.cxx \ +cxx/parser/non-validating/gyear.cxx \ +cxx/parser/non-validating/gmonth-day.cxx \ +cxx/parser/non-validating/gyear-month.cxx \ +cxx/parser/non-validating/date.cxx \ +cxx/parser/non-validating/time.cxx \ +cxx/parser/non-validating/date-time.cxx \ +cxx/parser/non-validating/duration.cxx + +endif # validation + + +## C++/Serializer +## +src += cxx/serializer/elements.cxx cxx/serializer/context.cxx +src += cxx/serializer/genx/document.cxx cxx/serializer/genx/xml-error.cxx + +ifeq ($(XSDE_POLYMORPHIC),y) +src += cxx/serializer/map.cxx cxx/serializer/substitution-map.cxx +endif + +ifeq ($(XSDE_EXCEPTIONS),y) +src += cxx/serializer/exceptions.cxx +else +src += cxx/serializer/error.cxx +endif + +# Serializer implementations. +# +ifeq ($(XSDE_SERIALIZER_VALIDATION),y) + +src += \ +cxx/serializer/validating/serializer.cxx \ +cxx/serializer/validating/time-zone.cxx \ +cxx/serializer/validating/xml-schema-sskel.cxx + +ifeq ($(XSDE_POLYMORPHIC),y) +src += cxx/serializer/validating/inheritance-map.cxx +endif + +src += \ +cxx/serializer/validating/boolean.cxx \ +cxx/serializer/validating/byte.cxx \ +cxx/serializer/validating/unsigned-byte.cxx \ +cxx/serializer/validating/short.cxx \ +cxx/serializer/validating/unsigned-short.cxx \ +cxx/serializer/validating/int.cxx \ +cxx/serializer/validating/unsigned-int.cxx \ +cxx/serializer/validating/integer.cxx \ +cxx/serializer/validating/negative-integer.cxx \ +cxx/serializer/validating/non-positive-integer.cxx \ +cxx/serializer/validating/positive-integer.cxx \ +cxx/serializer/validating/non-negative-integer.cxx \ +cxx/serializer/validating/float.cxx \ +cxx/serializer/validating/double.cxx \ +cxx/serializer/validating/decimal.cxx + +ifeq ($(XSDE_LONGLONG),y) +src += \ +cxx/serializer/validating/long-long.cxx \ +cxx/serializer/validating/unsigned-long-long.cxx +else +src += \ +cxx/serializer/validating/long.cxx \ +cxx/serializer/validating/unsigned-long.cxx +endif + +ifeq ($(XSDE_STL),y) + +src += \ +cxx/serializer/validating/string-stl.cxx \ +cxx/serializer/validating/normalized-string-stl.cxx \ +cxx/serializer/validating/token-stl.cxx \ +cxx/serializer/validating/name-stl.cxx \ +cxx/serializer/validating/nmtoken-stl.cxx \ +cxx/serializer/validating/ncname-stl.cxx \ +cxx/serializer/validating/id-stl.cxx \ +cxx/serializer/validating/idref-stl.cxx \ +cxx/serializer/validating/language-stl.cxx \ +cxx/serializer/validating/uri-stl.cxx \ +cxx/serializer/validating/idrefs-stl.cxx \ +cxx/serializer/validating/nmtokens-stl.cxx \ +cxx/serializer/validating/qname-stl.cxx + +else + +src += \ +cxx/serializer/validating/string.cxx \ +cxx/serializer/validating/normalized-string.cxx \ +cxx/serializer/validating/token.cxx \ +cxx/serializer/validating/name.cxx \ +cxx/serializer/validating/nmtoken.cxx \ +cxx/serializer/validating/ncname.cxx \ +cxx/serializer/validating/id.cxx \ +cxx/serializer/validating/idref.cxx \ +cxx/serializer/validating/language.cxx \ +cxx/serializer/validating/uri.cxx \ +cxx/serializer/validating/idrefs.cxx \ +cxx/serializer/validating/nmtokens.cxx \ +cxx/serializer/validating/qname.cxx + +endif # stl + +src += \ +cxx/serializer/validating/base64-binary.cxx \ +cxx/serializer/validating/hex-binary.cxx \ +cxx/serializer/validating/gday.cxx \ +cxx/serializer/validating/gmonth.cxx \ +cxx/serializer/validating/gyear.cxx \ +cxx/serializer/validating/gmonth-day.cxx \ +cxx/serializer/validating/gyear-month.cxx \ +cxx/serializer/validating/date.cxx \ +cxx/serializer/validating/time.cxx \ +cxx/serializer/validating/date-time.cxx \ +cxx/serializer/validating/duration.cxx + +else # validation + +src += \ +cxx/serializer/non-validating/serializer.cxx \ +cxx/serializer/non-validating/time-zone.cxx \ +cxx/serializer/non-validating/xml-schema-sskel.cxx + +src += \ +cxx/serializer/non-validating/boolean.cxx \ +cxx/serializer/non-validating/byte.cxx \ +cxx/serializer/non-validating/unsigned-byte.cxx \ +cxx/serializer/non-validating/short.cxx \ +cxx/serializer/non-validating/unsigned-short.cxx \ +cxx/serializer/non-validating/int.cxx \ +cxx/serializer/non-validating/unsigned-int.cxx \ +cxx/serializer/non-validating/integer.cxx \ +cxx/serializer/non-validating/negative-integer.cxx \ +cxx/serializer/non-validating/non-positive-integer.cxx \ +cxx/serializer/non-validating/positive-integer.cxx \ +cxx/serializer/non-validating/non-negative-integer.cxx \ +cxx/serializer/non-validating/float.cxx \ +cxx/serializer/non-validating/double.cxx \ +cxx/serializer/non-validating/decimal.cxx + +ifeq ($(XSDE_LONGLONG),y) +src += \ +cxx/serializer/non-validating/long-long.cxx \ +cxx/serializer/non-validating/unsigned-long-long.cxx +else +src += \ +cxx/serializer/non-validating/long.cxx \ +cxx/serializer/non-validating/unsigned-long.cxx +endif + +ifeq ($(XSDE_STL),y) + +src += \ +cxx/serializer/non-validating/string-stl.cxx \ +cxx/serializer/non-validating/normalized-string-stl.cxx \ +cxx/serializer/non-validating/token-stl.cxx \ +cxx/serializer/non-validating/name-stl.cxx \ +cxx/serializer/non-validating/nmtoken-stl.cxx \ +cxx/serializer/non-validating/ncname-stl.cxx \ +cxx/serializer/non-validating/id-stl.cxx \ +cxx/serializer/non-validating/idref-stl.cxx \ +cxx/serializer/non-validating/language-stl.cxx \ +cxx/serializer/non-validating/uri-stl.cxx \ +cxx/serializer/non-validating/idrefs-stl.cxx \ +cxx/serializer/non-validating/nmtokens-stl.cxx \ +cxx/serializer/non-validating/qname-stl.cxx + +else + +src += \ +cxx/serializer/non-validating/string.cxx \ +cxx/serializer/non-validating/normalized-string.cxx \ +cxx/serializer/non-validating/token.cxx \ +cxx/serializer/non-validating/name.cxx \ +cxx/serializer/non-validating/nmtoken.cxx \ +cxx/serializer/non-validating/ncname.cxx \ +cxx/serializer/non-validating/id.cxx \ +cxx/serializer/non-validating/idref.cxx \ +cxx/serializer/non-validating/language.cxx \ +cxx/serializer/non-validating/uri.cxx \ +cxx/serializer/non-validating/idrefs.cxx \ +cxx/serializer/non-validating/nmtokens.cxx \ +cxx/serializer/non-validating/qname.cxx + +endif # stl + +src += \ +cxx/serializer/non-validating/base64-binary.cxx \ +cxx/serializer/non-validating/hex-binary.cxx \ +cxx/serializer/non-validating/gday.cxx \ +cxx/serializer/non-validating/gmonth.cxx \ +cxx/serializer/non-validating/gyear.cxx \ +cxx/serializer/non-validating/gmonth-day.cxx \ +cxx/serializer/non-validating/gyear-month.cxx \ +cxx/serializer/non-validating/date.cxx \ +cxx/serializer/non-validating/time.cxx \ +cxx/serializer/non-validating/date-time.cxx \ +cxx/serializer/non-validating/duration.cxx + +endif # validation + +# +# +obj := $(src:.c=.o) +obj := $(obj:.cxx=.o) + +# Build. +# +libxsde.a: $(obj) + $(AR) $(ARFLAGS) $@ $^ +ifneq ($(RANLIB),) + $(RANLIB) $@ +endif + +# It is tricky to output # with both POSIX and Windows shells. +# +ifeq ($(shell echo %PATH%),%PATH%) +h := \\\# +shell_type := posix +else +h := \# +shell_type := windows +endif + +$(obj): config.h + +config.h: + @echo generating config.h +ifeq ($(shell_type),windows) + @echo /* Generated - do not edit. */ >$@ +else + @echo "/* Generated - do not edit. */" >$@ +endif + @echo $(h)ifndef XSDE_CONFIG_H >>$@ + @echo $(h)define XSDE_CONFIG_H >>$@ +ifeq ($(XSDE_PLATFORM),wince) + @echo $(h)define XSDE_PLATFORM_WINCE >>$@ +endif +ifeq ($(XSDE_PLATFORM),win32) + @echo $(h)define XSDE_PLATFORM_WIN32 >>$@ +endif +ifeq ($(XSDE_PLATFORM),posix) + @echo $(h)define XSDE_PLATFORM_POSIX >>$@ +endif + @echo $(h)define XSDE_ARCH_WIDTH $(XSDE_ARCH_WIDTH) >>$@ +ifeq ($(XSDE_BYTEORDER),l) + @echo $(h)define XSDE_BYTEORDER 1234 >>$@ +endif +ifeq ($(XSDE_BYTEORDER),b) + @echo $(h)define XSDE_BYTEORDER 4321 >>$@ +endif +ifeq ($(XSDE_STL),y) + @echo $(h)define XSDE_STL >>$@ +endif +ifeq ($(XSDE_IOSTREAM),y) + @echo $(h)define XSDE_IOSTREAM >>$@ +endif +ifeq ($(XSDE_EXCEPTIONS),y) + @echo $(h)define XSDE_EXCEPTIONS >>$@ +endif +ifeq ($(XSDE_LONGLONG),y) + @echo $(h)define XSDE_LONGLONG >>$@ +endif +ifeq ($(XSDE_SNPRINTF),y) + @echo $(h)define XSDE_SNPRINTF >>$@ +endif +ifeq ($(XSDE_PARSER_VALIDATION),y) + @echo $(h)define XSDE_PARSER_VALIDATION >>$@ +endif +ifeq ($(XSDE_SERIALIZER_VALIDATION),y) + @echo $(h)define XSDE_SERIALIZER_VALIDATION >>$@ +endif +ifeq ($(XSDE_REUSE_STYLE),mixin) + @echo $(h)define XSDE_REUSE_STYLE_MIXIN >>$@ +else + @echo $(h)undef XSDE_REUSE_STYLE_MIXIN >>$@ +endif +ifeq ($(XSDE_REUSE_STYLE),tiein) + @echo $(h)define XSDE_REUSE_STYLE_TIEIN >>$@ +else + @echo $(h)undef XSDE_REUSE_STYLE_TIEIN >>$@ +endif +ifeq ($(XSDE_REUSE_STYLE),none) + @echo $(h)define XSDE_REUSE_STYLE_NONE >>$@ +else + @echo $(h)undef XSDE_REUSE_STYLE_NONE >>$@ +endif +ifeq ($(XSDE_POLYMORPHIC),y) + @echo $(h)define XSDE_POLYMORPHIC >>$@ + @echo $(h)define XSDE_PARSER_SMAP_BUCKETS $(XSDE_PARSER_SMAP_BUCKETS)UL >>$@ +ifeq ($(XSDE_PARSER_VALIDATION),y) + @echo $(h)define XSDE_PARSER_IMAP_BUCKETS $(XSDE_PARSER_IMAP_BUCKETS)UL >>$@ +endif + @echo $(h)define XSDE_SERIALIZER_SMAP_BUCKETS $(XSDE_SERIALIZER_SMAP_BUCKETS)UL >>$@ + @echo $(h)define XSDE_SERIALIZER_SMAP_BUCKET_BUCKETS $(XSDE_SERIALIZER_SMAP_BUCKET_BUCKETS)UL >>$@ +ifeq ($(XSDE_SERIALIZER_VALIDATION),y) + @echo $(h)define XSDE_SERIALIZER_IMAP_BUCKETS $(XSDE_SERIALIZER_IMAP_BUCKETS)UL >>$@ +endif +else + @echo $(h)undef XSDE_POLYMORPHIC >>$@ +endif + @echo $(h)endif >>$@ + + +# Test. +# +.PHONY: test +test: libxsde.a + @: + +# Clean. +# +.PHONY: clean +clean: + rm -f libxsde.a $(obj) config.h diff --git a/dist/libxsde/xsde/nmakefile b/dist/libxsde/xsde/nmakefile new file mode 100644 index 0000000..5588d57 --- /dev/null +++ b/dist/libxsde/xsde/nmakefile @@ -0,0 +1,559 @@ +root = ..\.. + +!include $(root)\build\config.nmake +!include $(root)\build\c\rules.nmake +!include $(root)\build\cxx\rules.nmake + +EXTRA_CPPFLAGS = /I.. + +######################################################################### + +src = c\expat\xmlparse.c c\expat\xmlrole.c c\expat\xmltok.c +src = $(src) c\genx\genx.c c\genx\char-props.c + +src = $(src) cxx\string.cxx cxx\ro-string.cxx + +!if "$(XSDE_STL)" == "n" +src = $(src) cxx\strdupx.cxx +!endif + +!if "$(XSDE_EXCEPTIONS)" == "n" +src = $(src) cxx\sys-error.cxx +!endif + +!if "$(XSDE_PARSER_VALIDATION)$(XSDE_SERIALIZER_VALIDATION)" != "nn" +src = $(src) cxx\schema-error.cxx +!endif + +!if "$(XSDE_POLYMORPHIC)" == "y" +src = $(src) cxx\hashmap.cxx +!endif + +# Common data types. +# +src = $(src) cxx\buffer.cxx cxx\sequence-base.cxx + +!if "$(XSDE_STL)" == "y" +src = $(src) cxx\string-sequence-stl.cxx +!else +src = $(src) cxx\qname.cxx cxx\string-sequence.cxx +!endif + + +## XML +## +!if "$(XSDE_PARSER_VALIDATION)$(XSDE_SERIALIZER_VALIDATION)" != "nn" +src = $(src) cxx\xml\char-table.cxx cxx\xml\ncname.cxx +!endif + + +## C++/Hybrid +## +src = $(src) cxx\hybrid\sequence.cxx + + +## C++/Parser +## +src = $(src) cxx\parser\elements.cxx cxx\parser\state.cxx +src = $(src) cxx\parser\expat\document.cxx cxx\parser\expat\xml-error.cxx + +!if "$(XSDE_POLYMORPHIC)" == "y" +src = $(src) cxx\parser\map.cxx cxx\parser\substitution-map.cxx +!endif + +!if "$(XSDE_EXCEPTIONS)" == "y" +src = $(src) cxx\parser\exceptions.cxx +!else +src = $(src) cxx\parser\error.cxx +!endif + +# Parser implementations. +# +!if "$(XSDE_PARSER_VALIDATION)" == "y" + +src = $(src) \ +cxx\parser\validating\parser.cxx \ +cxx\parser\validating\time-zone.cxx \ +cxx\parser\validating\xml-schema-pskel.cxx + +!if "$(XSDE_POLYMORPHIC)" == "y" +src = $(src) cxx\parser\validating\inheritance-map.cxx +!endif + +src = $(src) \ +cxx\parser\validating\boolean.cxx \ +cxx\parser\validating\number.cxx \ +cxx\parser\validating\byte.cxx \ +cxx\parser\validating\unsigned-byte.cxx \ +cxx\parser\validating\short.cxx \ +cxx\parser\validating\unsigned-short.cxx \ +cxx\parser\validating\int.cxx \ +cxx\parser\validating\unsigned-int.cxx \ +cxx\parser\validating\integer.cxx \ +cxx\parser\validating\negative-integer.cxx \ +cxx\parser\validating\non-positive-integer.cxx \ +cxx\parser\validating\positive-integer.cxx \ +cxx\parser\validating\non-negative-integer.cxx \ +cxx\parser\validating\float.cxx \ +cxx\parser\validating\double.cxx \ +cxx\parser\validating\decimal.cxx + +!if "$(XSDE_LONGLONG)" == "y" +src = $(src) \ +cxx\parser\validating\long-long.cxx \ +cxx\parser\validating\unsigned-long-long.cxx +!else +src = $(src) \ +cxx\parser\validating\long.cxx \ +cxx\parser\validating\unsigned-long.cxx +!endif + +!if "$(XSDE_STL)" == "y" + +src = $(src) \ +cxx\parser\validating\string-stl.cxx \ +cxx\parser\validating\normalized-string-stl.cxx \ +cxx\parser\validating\token-stl.cxx \ +cxx\parser\validating\name-stl.cxx \ +cxx\parser\validating\nmtoken-stl.cxx \ +cxx\parser\validating\nmtokens-stl.cxx \ +cxx\parser\validating\ncname-stl.cxx \ +cxx\parser\validating\id-stl.cxx \ +cxx\parser\validating\idref-stl.cxx \ +cxx\parser\validating\idrefs-stl.cxx \ +cxx\parser\validating\language-stl.cxx \ +cxx\parser\validating\uri-stl.cxx \ +cxx\parser\validating\qname-stl.cxx + +!else + +src = $(src) \ +cxx\parser\validating\string.cxx \ +cxx\parser\validating\normalized-string.cxx \ +cxx\parser\validating\token.cxx \ +cxx\parser\validating\name.cxx \ +cxx\parser\validating\nmtoken.cxx \ +cxx\parser\validating\nmtokens.cxx \ +cxx\parser\validating\ncname.cxx \ +cxx\parser\validating\id.cxx \ +cxx\parser\validating\idref.cxx \ +cxx\parser\validating\idrefs.cxx \ +cxx\parser\validating\language.cxx \ +cxx\parser\validating\uri.cxx \ +cxx\parser\validating\qname.cxx + +!endif # stl + +src = $(src) \ +cxx\parser\validating\base64-binary.cxx \ +cxx\parser\validating\hex-binary.cxx \ +cxx\parser\validating\gday.cxx \ +cxx\parser\validating\gmonth.cxx \ +cxx\parser\validating\gyear.cxx \ +cxx\parser\validating\gmonth-day.cxx \ +cxx\parser\validating\gyear-month.cxx \ +cxx\parser\validating\date.cxx \ +cxx\parser\validating\time.cxx \ +cxx\parser\validating\date-time.cxx \ +cxx\parser\validating\duration.cxx + +!else # validation + +src = $(src) \ +cxx\parser\non-validating\parser.cxx \ +cxx\parser\non-validating\time-zone.cxx \ +cxx\parser\non-validating\xml-schema-pskel.cxx + +src = $(src) \ +cxx\parser\non-validating\boolean.cxx \ +cxx\parser\non-validating\number.cxx \ +cxx\parser\non-validating\byte.cxx \ +cxx\parser\non-validating\unsigned-byte.cxx \ +cxx\parser\non-validating\short.cxx \ +cxx\parser\non-validating\unsigned-short.cxx \ +cxx\parser\non-validating\int.cxx \ +cxx\parser\non-validating\unsigned-int.cxx \ +cxx\parser\non-validating\integer.cxx \ +cxx\parser\non-validating\negative-integer.cxx \ +cxx\parser\non-validating\non-positive-integer.cxx \ +cxx\parser\non-validating\positive-integer.cxx \ +cxx\parser\non-validating\non-negative-integer.cxx \ +cxx\parser\non-validating\float.cxx \ +cxx\parser\non-validating\double.cxx \ +cxx\parser\non-validating\decimal.cxx + +!if "$(XSDE_LONGLONG)" == "y" +src = $(src) \ +cxx\parser\non-validating\long-long.cxx \ +cxx\parser\non-validating\unsigned-long-long.cxx +!else +src = $(src) \ +cxx\parser\non-validating\long.cxx \ +cxx\parser\non-validating\unsigned-long.cxx +!endif + +!if "$(XSDE_STL)" == "y" + +src = $(src) \ +cxx\parser\non-validating\string-stl.cxx \ +cxx\parser\non-validating\normalized-string-stl.cxx \ +cxx\parser\non-validating\token-stl.cxx \ +cxx\parser\non-validating\name-stl.cxx \ +cxx\parser\non-validating\nmtoken-stl.cxx \ +cxx\parser\non-validating\nmtokens-stl.cxx \ +cxx\parser\non-validating\ncname-stl.cxx \ +cxx\parser\non-validating\id-stl.cxx \ +cxx\parser\non-validating\idref-stl.cxx \ +cxx\parser\non-validating\idrefs-stl.cxx \ +cxx\parser\non-validating\language-stl.cxx \ +cxx\parser\non-validating\uri-stl.cxx \ +cxx\parser\non-validating\qname-stl.cxx + +!else + +src = $(src) \ +cxx\parser\non-validating\string.cxx \ +cxx\parser\non-validating\normalized-string.cxx \ +cxx\parser\non-validating\token.cxx \ +cxx\parser\non-validating\name.cxx \ +cxx\parser\non-validating\nmtoken.cxx \ +cxx\parser\non-validating\nmtokens.cxx \ +cxx\parser\non-validating\ncname.cxx \ +cxx\parser\non-validating\id.cxx \ +cxx\parser\non-validating\idref.cxx \ +cxx\parser\non-validating\idrefs.cxx \ +cxx\parser\non-validating\language.cxx \ +cxx\parser\non-validating\uri.cxx \ +cxx\parser\non-validating\qname.cxx + +!endif # stl + +src = $(src) \ +cxx\parser\non-validating\base64-binary.cxx \ +cxx\parser\non-validating\hex-binary.cxx \ +cxx\parser\non-validating\gday.cxx \ +cxx\parser\non-validating\gmonth.cxx \ +cxx\parser\non-validating\gyear.cxx \ +cxx\parser\non-validating\gmonth-day.cxx \ +cxx\parser\non-validating\gyear-month.cxx \ +cxx\parser\non-validating\date.cxx \ +cxx\parser\non-validating\time.cxx \ +cxx\parser\non-validating\date-time.cxx \ +cxx\parser\non-validating\duration.cxx + +!endif # validation + + +## C++/Serializer +## +src = $(src) \ +cxx\serializer\elements.cxx \ +cxx\serializer\context.cxx + +src = $(src) \ +cxx\serializer\genx\document.cxx \ +cxx\serializer\genx\xml-error.cxx + +!if "$(XSDE_POLYMORPHIC)" == "y" +src = $(src) cxx\serializer\map.cxx cxx\serializer\substitution-map.cxx +!endif + +!if "$(XSDE_EXCEPTIONS)" == "y" +src = $(src) cxx\serializer\exceptions.cxx +!else +src = $(src) cxx\serializer\error.cxx +!endif + +# Serializer implementations. +# +!if "$(XSDE_SERIALIZER_VALIDATION)" == "y" + +src = $(src) \ +cxx\serializer\validating\serializer.cxx \ +cxx\serializer\validating\time-zone.cxx \ +cxx\serializer\validating\xml-schema-sskel.cxx + +!if "$(XSDE_POLYMORPHIC)" == "y" +src = $(src) cxx\serializer\validating\inheritance-map.cxx +!endif + +src = $(src) \ +cxx\serializer\validating\boolean.cxx \ +cxx\serializer\validating\byte.cxx \ +cxx\serializer\validating\unsigned-byte.cxx \ +cxx\serializer\validating\short.cxx \ +cxx\serializer\validating\unsigned-short.cxx \ +cxx\serializer\validating\int.cxx \ +cxx\serializer\validating\unsigned-int.cxx \ +cxx\serializer\validating\integer.cxx \ +cxx\serializer\validating\negative-integer.cxx \ +cxx\serializer\validating\non-positive-integer.cxx \ +cxx\serializer\validating\positive-integer.cxx \ +cxx\serializer\validating\non-negative-integer.cxx \ +cxx\serializer\validating\float.cxx \ +cxx\serializer\validating\double.cxx \ +cxx\serializer\validating\decimal.cxx + +!if "$(XSDE_LONGLONG)" == "y" +src = $(src) \ +cxx\serializer\validating\long-long.cxx \ +cxx\serializer\validating\unsigned-long-long.cxx +!else +src = $(src) \ +cxx\serializer\validating\long.cxx \ +cxx\serializer\validating\unsigned-long.cxx +!endif + +!if "$(XSDE_STL)" == "y" + +src = $(src) \ +cxx\serializer\validating\string-stl.cxx \ +cxx\serializer\validating\normalized-string-stl.cxx \ +cxx\serializer\validating\token-stl.cxx \ +cxx\serializer\validating\name-stl.cxx \ +cxx\serializer\validating\nmtoken-stl.cxx \ +cxx\serializer\validating\ncname-stl.cxx \ +cxx\serializer\validating\id-stl.cxx \ +cxx\serializer\validating\idref-stl.cxx \ +cxx\serializer\validating\language-stl.cxx \ +cxx\serializer\validating\uri-stl.cxx \ +cxx\serializer\validating\idrefs-stl.cxx \ +cxx\serializer\validating\nmtokens-stl.cxx \ +cxx\serializer\validating\qname-stl.cxx + +!else + +src = $(src) \ +cxx\serializer\validating\string.cxx \ +cxx\serializer\validating\normalized-string.cxx \ +cxx\serializer\validating\token.cxx \ +cxx\serializer\validating\name.cxx \ +cxx\serializer\validating\nmtoken.cxx \ +cxx\serializer\validating\ncname.cxx \ +cxx\serializer\validating\id.cxx \ +cxx\serializer\validating\idref.cxx \ +cxx\serializer\validating\language.cxx \ +cxx\serializer\validating\uri.cxx \ +cxx\serializer\validating\idrefs.cxx \ +cxx\serializer\validating\nmtokens.cxx \ +cxx\serializer\validating\qname.cxx + +!endif # stl + +src = $(src) \ +cxx\serializer\validating\base64-binary.cxx \ +cxx\serializer\validating\hex-binary.cxx \ +cxx\serializer\validating\gday.cxx \ +cxx\serializer\validating\gmonth.cxx \ +cxx\serializer\validating\gyear.cxx \ +cxx\serializer\validating\gmonth-day.cxx \ +cxx\serializer\validating\gyear-month.cxx \ +cxx\serializer\validating\date.cxx \ +cxx\serializer\validating\time.cxx \ +cxx\serializer\validating\date-time.cxx \ +cxx\serializer\validating\duration.cxx + +!else # validation + +src = $(src) \ +cxx\serializer\non-validating\serializer.cxx \ +cxx\serializer\non-validating\time-zone.cxx \ +cxx\serializer\non-validating\xml-schema-sskel.cxx + +src = $(src) \ +cxx\serializer\non-validating\boolean.cxx \ +cxx\serializer\non-validating\byte.cxx \ +cxx\serializer\non-validating\unsigned-byte.cxx \ +cxx\serializer\non-validating\short.cxx \ +cxx\serializer\non-validating\unsigned-short.cxx \ +cxx\serializer\non-validating\int.cxx \ +cxx\serializer\non-validating\unsigned-int.cxx \ +cxx\serializer\non-validating\integer.cxx \ +cxx\serializer\non-validating\negative-integer.cxx \ +cxx\serializer\non-validating\non-positive-integer.cxx \ +cxx\serializer\non-validating\positive-integer.cxx \ +cxx\serializer\non-validating\non-negative-integer.cxx \ +cxx\serializer\non-validating\float.cxx \ +cxx\serializer\non-validating\double.cxx \ +cxx\serializer\non-validating\decimal.cxx + +!if "$(XSDE_LONGLONG)" == "y" +src = $(src) \ +cxx\serializer\non-validating\long-long.cxx \ +cxx\serializer\non-validating\unsigned-long-long.cxx +!else +src = $(src) \ +cxx\serializer\non-validating\long.cxx \ +cxx\serializer\non-validating\unsigned-long.cxx +!endif + +!if "$(XSDE_STL)" == "y" + +src = $(src) \ +cxx\serializer\non-validating\string-stl.cxx \ +cxx\serializer\non-validating\normalized-string-stl.cxx \ +cxx\serializer\non-validating\token-stl.cxx \ +cxx\serializer\non-validating\name-stl.cxx \ +cxx\serializer\non-validating\nmtoken-stl.cxx \ +cxx\serializer\non-validating\ncname-stl.cxx \ +cxx\serializer\non-validating\id-stl.cxx \ +cxx\serializer\non-validating\idref-stl.cxx \ +cxx\serializer\non-validating\language-stl.cxx \ +cxx\serializer\non-validating\uri-stl.cxx \ +cxx\serializer\non-validating\idrefs-stl.cxx \ +cxx\serializer\non-validating\nmtokens-stl.cxx \ +cxx\serializer\non-validating\qname-stl.cxx + +!else + +src = $(src) \ +cxx\serializer\non-validating\string.cxx \ +cxx\serializer\non-validating\normalized-string.cxx \ +cxx\serializer\non-validating\token.cxx \ +cxx\serializer\non-validating\name.cxx \ +cxx\serializer\non-validating\nmtoken.cxx \ +cxx\serializer\non-validating\ncname.cxx \ +cxx\serializer\non-validating\id.cxx \ +cxx\serializer\non-validating\idref.cxx \ +cxx\serializer\non-validating\language.cxx \ +cxx\serializer\non-validating\uri.cxx \ +cxx\serializer\non-validating\idrefs.cxx \ +cxx\serializer\non-validating\nmtokens.cxx \ +cxx\serializer\non-validating\qname.cxx + +!endif # stl + +src = $(src) \ +cxx\serializer\non-validating\base64-binary.cxx \ +cxx\serializer\non-validating\hex-binary.cxx \ +cxx\serializer\non-validating\gday.cxx \ +cxx\serializer\non-validating\gmonth.cxx \ +cxx\serializer\non-validating\gyear.cxx \ +cxx\serializer\non-validating\gmonth-day.cxx \ +cxx\serializer\non-validating\gyear-month.cxx \ +cxx\serializer\non-validating\date.cxx \ +cxx\serializer\non-validating\time.cxx \ +cxx\serializer\non-validating\date-time.cxx \ +cxx\serializer\non-validating\duration.cxx + +!endif # validation + + +# +# +obj = $(src:.cxx=.obj) +obj = $(obj:.c=.obj) + + +# Build. +# +xsde.lib: $(obj) + $(AR) $(ARFLAGS) /OUT:$@ $** +!if "$(RANLIB)" != "" + $(RANLIB) $@ +!endif + +$(obj): config.h + +config.h: + @echo generating config.h + @echo /* Generated - do not edit. */ >$@ + @echo #ifndef XSDE_CONFIG_H >>$@ + @echo #define XSDE_CONFIG_H >>$@ +!if "$(XSDE_PLATFORM)" == "wince" + @echo #define XSDE_PLATFORM_WINCE >>$@ +!endif +!if "$(XSDE_PLATFORM)" == "win32" + @echo #define XSDE_PLATFORM_WIN32 >>$@ +!endif +!if "$(XSDE_PLATFORM)" == "posix" + @echo #define XSDE_PLATFORM_POSIX >>$@ +!endif + @echo #define XSDE_ARCH_WIDTH $(XSDE_ARCH_WIDTH) >>$@ +!if "$(XSDE_BYTEORDER)" == "l" + @echo #define XSDE_BYTEORDER 1234 >>$@ +!endif +!if "$(XSDE_BYTEORDER)" == "b" + @echo #define XSDE_BYTEORDER 4321 >>$@ +!endif +!if "$(XSDE_STL)" == "y" + @echo #define XSDE_STL >>$@ +!endif +!if "$(XSDE_IOSTREAM)" == "y" + @echo #define XSDE_IOSTREAM >>$@ +!endif +!if "$(XSDE_EXCEPTIONS)" == "y" + @echo #define XSDE_EXCEPTIONS >>$@ +!endif +!if "$(XSDE_LONGLONG)" == "y" + @echo #define XSDE_LONGLONG >>$@ +!endif +!if "$(XSDE_SNPRINTF)" == "y" + @echo #define XSDE_SNPRINTF >>$@ +!endif +!if "$(XSDE_PARSER_VALIDATION)" == "y" + @echo #define XSDE_PARSER_VALIDATION >>$@ +!endif +!if "$(XSDE_SERIALIZER_VALIDATION)" == "y" + @echo #define XSDE_SERIALIZER_VALIDATION >>$@ +!endif + +!if "$(XSDE_REUSE_STYLE)" == "mixin" + @echo #define XSDE_REUSE_STYLE_MIXIN >>$@ +!else + @echo #undef XSDE_REUSE_STYLE_MIXIN >>$@ +!endif +!if "$(XSDE_REUSE_STYLE)" == "tiein" + @echo #define XSDE_REUSE_STYLE_TIEIN >>$@ +!else + @echo #undef XSDE_REUSE_STYLE_TIEIN >>$@ +!endif +!if "$(XSDE_REUSE_STYLE)" == "none" + @echo #define XSDE_REUSE_STYLE_NONE >>$@ +!else + @echo #undef XSDE_REUSE_STYLE_NONE >>$@ +!endif +!if "$(XSDE_POLYMORPHIC)" == "y" + @echo #define XSDE_POLYMORPHIC >>$@ + @echo #define XSDE_PARSER_SMAP_BUCKETS $(XSDE_PARSER_SMAP_BUCKETS)UL >>$@ +!if "$(XSDE_PARSER_VALIDATION)" == "y" + @echo #define XSDE_PARSER_IMAP_BUCKETS $(XSDE_PARSER_IMAP_BUCKETS)UL >>$@ +!endif + @echo #define XSDE_SERIALIZER_SMAP_BUCKETS $(XSDE_SERIALIZER_SMAP_BUCKETS)UL >>$@ + @echo #define XSDE_SERIALIZER_SMAP_BUCKET_BUCKETS $(XSDE_SERIALIZER_SMAP_BUCKET_BUCKETS)UL >>$@ +!if "$(XSDE_SERIALIZER_VALIDATION)" == "y" + @echo #define XSDE_SERIALIZER_IMAP_BUCKETS $(XSDE_SERIALIZER_IMAP_BUCKETS)UL >>$@ +!endif +!else + @echo #undef XSDE_POLYMORPHIC >>$@ +!endif + @echo #endif >>$@ + +# Test. +# +test: xsde.lib + +# Clean. +# +# Nmake that comes with eVC++ 4 cannot handle del $(obj) +# because the resulting line is too long. +# +clean: + -del xsde.lib config.h + -del c\expat\*.obj + -del c\genx\*.obj + -del cxx\*.obj + -del cxx\parser\*.obj + -del cxx\parser\expat\*.obj +!if "$(XSDE_PARSER_VALIDATION)" == "y" + -del cxx\parser\validating\*.obj +!else + -del cxx\parser\non-validating\*.obj +!endif + -del cxx\serializer\*.obj + -del cxx\serializer\genx\*.obj +!if "$(XSDE_SERIALIZER_VALIDATION)" == "y" + -del cxx\serializer\validating\*.obj +!else + -del cxx\serializer\non-validating\*.obj +!endif |