netcdf-c/libncxml/Makefile.am
Dennis Heimbigner 24e49b818e Update internal tinyxml2 code to the latest version
Periodic update of the internal tinyxml2 code for processing
XML.  This also required some changes to the "tinyxml2" target
in libncxml/Makefile.am to modify the code to compile in the
netcdf-c environment.
2023-10-12 16:22:47 -06:00

55 lines
1.4 KiB
Makefile

# WARNING: this is not the libxml2 library
# It comes from https://github.com/recp/xml
# Copyright 2009, UCAR/Unidata
# See the COPYRIGHT file for more information.
# Use automake or CMake for building under nix
# Use CMake for building under windows
# Get AM_CPPFLAGS and AM_LDFLAGS
include $(top_srcdir)/lib_flags.am
if ENABLE_LIBXML2
AM_CPPFLAGS += ${XML2FLAGS}
endif
# This is our output. The ZARR convenience library.
noinst_LTLIBRARIES = libncxml.la
libncxml_la_LIBADD =
libncxml_la_LDFLAGS =
if ENABLE_LIBXML2
libncxml_la_SOURCES = ncxml_xml2.c
else
AM_CXXFLAGS = -std=c++11
libncxml_la_SOURCES = ncxml_tinyxml2.cpp tinyxml2.cpp tinyxml2.h
endif
EXTRA_DIST = CMakeLists.txt license.txt
# Download and massage the tinyxml2 source
REPO = https://github.com/leethomason/tinyxml2.git
tinyxml2::
rm -fr ./tinyxml2 ./license.txt
git clone --depth=1 ${REPO}
cat tinyxml2/LICENSE.txt > ./license.txt
tr -d '\r' < tinyxml2/tinyxml2.h > tinyxml2.h
cat tinyxml2/tinyxml2.cpp \
| sed -e 's/__BORLANDC__/__APPLE__/' \
| sed -e 's/ptrdiff_t/long/g' \
| sed -e '/^static[ ]*FILE[*][ ]*callfopen(/i\
\#if 0' \
| sed -e '/^void[ ]*XMLDocument::DeleteNode(/i\
\#endif /*0*/\
' \
| sed -e '/^XMLError[ ]*XMLDocument::LoadFile([ ]*const[ ]*char[*]/i\
\#if 0' \
| sed -e '/^XMLError[ ]*XMLDocument::Parse(/i\
\#endif /*0*/\
' \
| tr -d '\r' \
| cat > ./tinyxml2.cpp
rm -fr tinyxml2