Home | History | Annotate | Download | only in tinyxml2
      1 # For GNU conventions and targets see https://www.gnu.org/prep/standards/standards.html
      2 # Using GNU standards makes it easier for some users to keep doing what they are used to.
      3 
      4 # 'mkdir -p' is non-portable, but it is widely supported. A portable solution
      5 # is elusive due to race conditions on testing the directory and creating it.
      6 # Anemic toolchain users can sidestep the problem using MKDIR="mkdir".
      7 
      8 AR = ar
      9 ARFLAGS = cr
     10 RM = rm -f
     11 RANLIB = ranlib
     12 MKDIR = mkdir -p
     13 CXXFLAGS = -fPIC
     14 
     15 INSTALL = install
     16 INSTALL_PROGRAM = $(INSTALL)
     17 INSTALL_DATA = $(INSTALL) -m 644
     18 
     19 prefix = /usr/local
     20 bindir = $(prefix)/bin
     21 libdir = $(prefix)/lib
     22 includedir = $(prefix)/include
     23 
     24 all: xmltest staticlib
     25 
     26 rebuild: clean all
     27 
     28 xmltest: xmltest.cpp libtinyxml2.a
     29 
     30 effc:
     31 	gcc -Werror -Wall -Wextra -Wshadow -Wpedantic -Wformat-nonliteral \
     32         -Wformat-security -Wswitch-default -Wuninitialized -Wundef \
     33         -Wpointer-arith -Woverloaded-virtual -Wctor-dtor-privacy \
     34         -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo \
     35         -Wno-unused-parameter -Weffc++ xmltest.cpp tinyxml2.cpp -o xmltest
     36 
     37 clean:
     38 	-$(RM) *.o xmltest libtinyxml2.a
     39 
     40 # Standard GNU target
     41 distclean:
     42 	-$(RM) *.o xmltest libtinyxml2.a
     43 
     44 test: clean xmltest
     45 	./xmltest
     46 
     47 # Standard GNU target
     48 check: clean xmltest
     49 	./xmltest
     50 
     51 staticlib: libtinyxml2.a
     52 
     53 libtinyxml2.a: tinyxml2.o
     54 	$(AR) $(ARFLAGS) $@ $^
     55 	$(RANLIB) $@
     56 
     57 tinyxml2.o: tinyxml2.cpp tinyxml2.h
     58 
     59 directories:
     60 	$(MKDIR) $(DESTDIR)$(prefix)
     61 	$(MKDIR) $(DESTDIR)$(bindir)
     62 	$(MKDIR) $(DESTDIR)$(libdir)
     63 	$(MKDIR) $(DESTDIR)$(includedir)
     64 
     65 # Standard GNU target.
     66 install: xmltest staticlib directories
     67 	$(INSTALL_PROGRAM) xmltest $(DESTDIR)$(bindir)/xmltest
     68 	$(INSTALL_DATA) tinyxml2.h $(DESTDIR)$(includedir)/tinyxml2.h
     69 	$(INSTALL_DATA) libtinyxml2.a $(DESTDIR)$(libdir)/libtinyxml2.a
     70 
     71 # Standard GNU target
     72 uninstall:
     73 	$(RM) $(DESTDIR)$(bindir)/xmltest
     74 	$(RM) $(DESTDIR)$(includedir)/tinyxml2.h
     75 	$(RM) $(DESTDIR)$(libdir)/libtinyxml2.a
     76