| # For GNU conventions and targets see https://www.gnu.org/prep/standards/standards.html |
| # Using GNU standards makes it easier for some users to keep doing what they are used to. |
| |
| # 'mkdir -p' is non-portable, but it is widely supported. A portable solution |
| # is elusive due to race conditions on testing the directory and creating it. |
| # Anemic toolchain users can sidestep the problem using MKDIR="mkdir". |
| |
| AR = ar |
| ARFLAGS = cr |
| RM = rm -f |
| RANLIB = ranlib |
| MKDIR = mkdir -p |
| CXXFLAGS = -fPIC |
| |
| INSTALL = install |
| INSTALL_PROGRAM = $(INSTALL) |
| INSTALL_DATA = $(INSTALL) -m 644 |
| |
| prefix = /usr/local |
| bindir = $(prefix)/bin |
| libdir = $(prefix)/lib |
| includedir = $(prefix)/include |
| |
| all: xmltest staticlib |
| |
| rebuild: clean all |
| |
| xmltest: xmltest.cpp libtinyxml2.a |
| |
| effc: |
| gcc -Werror -Wall -Wextra -Wshadow -Wpedantic -Wformat-nonliteral \ |
| -Wformat-security -Wswitch-default -Wuninitialized -Wundef \ |
| -Wpointer-arith -Woverloaded-virtual -Wctor-dtor-privacy \ |
| -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo \ |
| -Wno-unused-parameter -Weffc++ xmltest.cpp tinyxml2.cpp -o xmltest |
| |
| clean: |
| -$(RM) *.o xmltest libtinyxml2.a |
| |
| # Standard GNU target |
| distclean: |
| -$(RM) *.o xmltest libtinyxml2.a |
| |
| test: clean xmltest |
| ./xmltest |
| |
| # Standard GNU target |
| check: clean xmltest |
| ./xmltest |
| |
| staticlib: libtinyxml2.a |
| |
| libtinyxml2.a: tinyxml2.o |
| $(AR) $(ARFLAGS) $@ $^ |
| $(RANLIB) $@ |
| |
| tinyxml2.o: tinyxml2.cpp tinyxml2.h |
| |
| directories: |
| $(MKDIR) $(DESTDIR)$(prefix) |
| $(MKDIR) $(DESTDIR)$(bindir) |
| $(MKDIR) $(DESTDIR)$(libdir) |
| $(MKDIR) $(DESTDIR)$(includedir) |
| |
| # Standard GNU target. |
| install: xmltest staticlib directories |
| $(INSTALL_PROGRAM) xmltest $(DESTDIR)$(bindir)/xmltest |
| $(INSTALL_DATA) tinyxml2.h $(DESTDIR)$(includedir)/tinyxml2.h |
| $(INSTALL_DATA) libtinyxml2.a $(DESTDIR)$(libdir)/libtinyxml2.a |
| |
| # Standard GNU target |
| uninstall: |
| $(RM) $(DESTDIR)$(bindir)/xmltest |
| $(RM) $(DESTDIR)$(includedir)/tinyxml2.h |
| $(RM) $(DESTDIR)$(libdir)/libtinyxml2.a |