XML Security Library

LibXML2
LibXSLT
OpenSSL

Compiling and linking on Unix.

There are several ways to get necessary compilation and linking information on Unix and application can use any of these methods to do crypto engine selection either at linking or run time.

  • PKG_CHECK_MODULES() macro

    Example 2. Using PKG_CHECK_MODULES() macro in a configure.in file to select crypto engine (openssl) at linking time.

    dnl 
    dnl Check for xmlsec and friends
    dnl
    PKG_CHECK_MODULES(XMLSEC, xmlsec1-openssl >= 1.0.0 xml2 libxslt,,exit)
    CFLAGS="$CFLAGS $XMLSEC_CFLAGS"
    CPPFLAGS="$CPPFLAGS $XMLSEC_CFLAGS"
    LDFLAGS="$LDFLAGS $XMLSEC_LIBS"
    		    

    Example 3. Using PKG_CHECK_MODULES() macro in a configure.in file to enable dynamical loading of xmlsec-crypto library.

    dnl 
    dnl Check for xmlsec and friends
    dnl
    PKG_CHECK_MODULES(XMLSEC, xmlsec1 >= 1.0.0 xml2 libxslt,,exit)
    CFLAGS="$CFLAGS $XMLSEC_CFLAGS"
    CPPFLAGS="$CPPFLAGS $XMLSEC_CFLAGS"
    LDFLAGS="$LDFLAGS $XMLSEC_LIBS"
    		    
  • pkg-config script

    Example 4. Using pkg-config script in a Makefile to select crypto engine (nss) at linking time.

    PROGRAM = test
    PROGRAM_FILES = test.c
    
    CFLAGS	+= -g $(shell pkg-config --cflags xmlsec1-nss)
    LDFLAGS	+= -g
    LIBS 	+= $(shell pkg-config --libs xmlsec1-nss) 
    
    all: $(PROGRAM)
    
    %: %.c 
    	$(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
    
    clean:
    	@rm -rf $(PROGRAM)
    		    

    Example 5. Using pkg-config script in a Makefile to enable dynamical loading of xmlsec-crypto library.

    PROGRAM = test
    PROGRAM_FILES = test.c
    
    CFLAGS	+= -g $(shell pkg-config --cflags xmlsec1)
    LDFLAGS	+= -g
    LIBS 	+= $(shell pkg-config --libs xmlsec1) 
    
    all: $(PROGRAM)
    
    %: %.c 
    	$(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
    
    clean:
    	@rm -rf $(PROGRAM)
    		    
  • xmlsec1-config script

    Example 6. Using xmlsec1-config script in a Makefile to select crypto engine (e.g. gnutls) at linking time.

    PROGRAM = test
    PROGRAM_FILES = test.c
    
    CFLAGS	+= -g $(shell xmlsec1-config --crypto gnutls --cflags)
    LDFLAGS	+= -g
    LIBS 	+= $(shell xmlsec1-config --crypto gnutls --libs) 
    
    all: $(PROGRAM)
    
    %: %.c 
    	$(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
    
    clean:
    	@rm -rf $(PROGRAM)
    		    

    Example 7. Using xmlsec1-config script in a Makefile to enable dynamical loading of xmlsec-crypto library.

    PROGRAM = test
    PROGRAM_FILES = test.c
    
    CFLAGS	+= -g $(shell xmlsec1-config --cflags)
    LDFLAGS	+= -g
    LIBS 	+= $(shell xmlsec1-config --libs) 
    
    all: $(PROGRAM)
    
    %: %.c 
    	$(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
    
    clean:
    	@rm -rf $(PROGRAM)