# makefile written for gnu make CXX = g++ SRC = ./src SHARED = -shared CPPFLAGS += -I$(SRC) -fPIC -Wno-deprecated-declarations DEBUG = -g OPTIMIZE = -O2 GCCWARN = -Wall #-Wstrict-prototypes CXXFLAGS = -std=c++20 $(DEBUG) $(GCCWARN) $(OPTIMIZE) $(INCLUDES) ARFLAGS = rvs VERSION = 0.8 DESTDIR = prefix = /usr MKDIR = mkdir -p CP = cp LN = ln -s LIB = ./libXmlRpc.a LIBALT = ./libxmlrpc++.a SO = ./libxmlrpc++.so.$(VERSION) # Add your system-dependent network libs here. These are # only used to build the tests (your application will need them too). # Linux: none # Solaris: -lsocket -lnsl #SYSTEMLIBS = -lsocket -lnsl SYSTEMLIBS = LDLIBS = $(LIB) $(SYSTEMLIBS) OBJ = $(SRC)/XmlRpcClient.o $(SRC)/XmlRpcDispatch.o \ $(SRC)/XmlRpcServer.o $(SRC)/XmlRpcServerConnection.o \ $(SRC)/XmlRpcServerMethod.o $(SRC)/XmlRpcSocket.o $(SRC)/XmlRpcSource.o \ $(SRC)/XmlRpcUtil.o $(SRC)/XmlRpcValue.o all: $(LIB) $(SO) tests $(LIB): $(OBJ) $(AR) $(ARFLAGS) $(LIB) $(OBJ) cp $(LIB) $(LIBALT) $(SO): $(OBJ) $(CXX) -o $(SO) $(SHARED) $(OBJ) tests: $(LIB) cd test && $(MAKE) CXX=$(CXX) CXXFLAGS="$(CXXFLAGS)" SYSTEMLIBS="$(SYSTEMLIBS)" doc doxygen: cd src && doxygen Doxyfile distclean: clean clean: rm -f $(SRC)/*.o rm -f $(SRC)/*~ rm -f $(LIB) $(LIBALT) $(SO) rm -f build cd test && $(MAKE) clean install: $(MKDIR) $(DESTDIR)$(prefix)/lib $(CP) $(SO) $(LIB) $(DESTDIR)$(prefix)/lib $(MKDIR) $(DESTDIR)$(prefix)/include $(CP) src/*.h $(DESTDIR)$(prefix)/include ( cd $(DESTDIR)$(prefix)/lib; rm -f libxmlrpc++.so; $(LN) $(SO) libxmlrpc++.so ) # Does not install tests right now # Debian package make target, in case you want to manually build a package # from the distribution. deb: dpkg-buildpackage -rfakeroot