1# zxid/Makefile - How to build ZXID (try: make help) 2# Copyright (c) 2012-2016 Synergetics NV (sampo@synergetics.be), All Rights Reserved. 3# Copyright (c) 2010-2011 Sampo Kellomaki (sampo@iki.fi), All Rights Reserved. 4# Copyright (c) 2006-2009 Symlabs (symlabs@symlabs.com), All Rights Reserved. 5# Author: Sampo Kellomaki (sampo@iki.fi) 6# This is confidential unpublished proprietary source code of the author. 7# NO WARRANTY, not even implied warranties. Contains trade secrets. 8# Distribution prohibited unless authorized in writing. 9# Licensed under Apache License 2.0, see file COPYING. 10# $Id: Makefile,v 1.154 2010-01-08 02:10:09 sampo Exp $ 11# 15.10.2006, refactor sources to be per namespace --Sampo 12# 19.1.2006, added new zxid_simple() / Hello World targets and JNI --Sampo 13# 26.2.2007, tweaks for the great SOAP merger, WSC support --Sampo 14# 3.3.2007, added many service schemata --Sampo 15# 22.2.2008, added mod_auth_saml --Sampo 16# 14.4.2008, added SAML POST-SimpleSign binding and Orange APIs --Sampo 17# 25.8.2009, added improvements from TAS3 workshop in Lisbon --Sampo 18# 29.8.2009, merged in smime support --Sampo 19# 15.9.2009, added TAS3 packaging --Sampo 20# 14.11.2009, added yubikey support --Sampo 21# 12.2.2010, added pthread support --Sampo 22# 25.2.2010, added gcov support --Sampo 23# 15.9.2010, major hacking to support win32cl (MSVC cl compiler, link (ld), and lib (ar) --Sampo 24# 6.2.2012, improved multiple config support --Sampo 25# 16.8.2012, added zxbusd build --Sampo 26# 16.4.2013, added diet64 statically linked targets --Sampo 27# 21.6.2013, added mini_httpd --Sampo 28# 4.11.2013, reformed the TARGET system; include and lib paths per Debian --Sampo 29# 21.11.2013, added zxid_httpd --Sampo 30# 9.2.2014, added musl-libc compile --Sampo 31# 29.5.2015 upgraded the version due to addition of two factor authentication --Sampo 32# 33# Build so far only tested on Linux, Solaris 8, MacOS 10.3, and mingw-w64. This 34# makefile needs gmake-3.78 or newer. 35# (See dietlibc (fefe.de) Makefile for some useful wizardry.) 36# Try `make help' 37# 38# N.B. Before you edit this file, consider overriding select options in 39# localconf.mk (see below for details). 40# 41# gcc's '-ffunction-sections' + '-fdata-sections' options. (dead code elimn.) 42 43vpath %.c ../zxid 44vpath %.h ../zxid 45 46### This is the authorative spot to set version number. Document in Changes file. 47### c/zxidvers.h is generated from these, see `make updatevers' 48ZXIDVERSION=0x000142 49ZXIDREL=1.42 50 51TOP=$(shell pwd) 52 53### Where package is installed (use `make PREFIX=/your/path' to change) 54PREFIX=/var/zxid/$(ZXIDREL) 55 56### Where runtime configuration and temporary data is kept. 57### If you change the following, be sure to edit zxidconf.h as 58### well. N.B. Trailing / (forward slash) is needed. 59ZXID_PATH=/var/zxid/ 60 61### 62### Module selection options (you should enable all, unless building embedded) 63### 64 65ENA_SSO=1 66ENA_SAML2=1 67ENA_FF12=1 68ENA_SAML11=1 69ENA_WSF=1 70ENA_WSF2=1 71ENA_WSF11=1 72ENA_XACML2=1 73ENA_WST=1 74ENA_ZXID_HTTPD=1 75ENA_SMIME=1 76ENA_TAS3=1 77 78### You may supply additional defines on command line. 79### make CDEF='-DZXID_CONF_PATH="/opt/zxid/zxid.conf"' 80 81# Advise other software, such as mini_httpd, to use ZXID specific features 82CDEF+= -DUSE_ZXID -DUSE_SSL 83# Without cURL the Artifact Profile, WSC, and metadata fetch features are disabled. 84CDEF+= -DUSE_CURL 85# Without OpenSSL signing and signature verification are not possible 86CDEF+= -DUSE_OPENSSL 87 88### The CDEF variable can be later overridden or modified in 89### one of the target sections or after all in localconf.mk 90### The CDEF is used for dependency computation. For actual 91### compilation it is added to CFLAGS. 92 93### Environment dependent options and dependency packages. 94### The default values are according to their usual locations 95### in Ubuntu and Debian based Linux distributions. 96 97# Try find / -name ap_config.h; find / -name apr.h; find / -name mod_auth_basic.so 98# apt-get install libapr1-dev 99# apt-get install apache2-dev 100APACHE_INC ?= -I/usr/include/apache2 101APR_INC ?= -I/usr/include/apr-1.0 102APACHE_MODULES ?= /usr/lib/apache2/modules 103DIET_ROOT?=/usr/local/dietlibc-0.33 104PHP_CONFIG?=php-config 105CSHARP_CONFIG?=true 106PY_CONFIG?=true 107RUBY_CONFIG?=true 108 109### 110### Java options (watch out javac running out of heap) 111### 112 113JAR?=jar 114JAVAC?=javac 115JAVAC_FLAGS?=-J-Xmx128m -classpath . -g 116ZXIDJNI_SO?=zxidjava/libzxidjni.so 117# JNI library name is very platform dependent (see macosx and mingw) 118# find / -name jni.h; find / -name jni_md.h 119# apt-get install openjdk-6-jdk 120#JNI_INC?=-I/usr/java/include -I/usr/java/include/linux 121#JNI_INC?=-I/usr/lib/jvm/java-6-openjdk/include -I/usr/lib/jvm/java-6-openjdk/include/linux 122JNI_INC?=-I/usr/lib/jvm/java-6-openjdk-amd64/include -I/usr/lib/jvm/java-6-openjdk-amd64/include/linux 123#JNI_INC?=-I/usr/lib/jvm/java-6-openjdk-i386/include -I/usr/lib/jvm/java-6-openjdk-i386/include/linux 124#JNI_INC?=-I/usr/lib/jvm/java-6-openjdk-amd64/include -I/usr/lib/jvm/java-6-openjdk-amd64/include/linux 125# Path where HttpServlet supplied by your application server resides 126# find / -name 'servlet*api*.jar' 127# sudo apt-get install tomcat6 128SERVLET_PATH=/usr/share/tomcat6/lib/servlet-api.jar 129#SERVLET_PATH=../apache-tomcat-5.5.20/common/lib/servlet-api.jar 130#SERVLET_PATH=../apache-tomcat-6.0.18/lib/servlet-api.jar 131 132### You may supply additional include paths on command line. 133### For example if you compiled the openssl and libcurl from original 134### sources, you might specify: 135### make CINC='-I/usr/local/include -I/usr/local/ssl/include' 136CINC+=-I. -I$(TOP) 137### This CINC variable can be later overridden or modified in 138### localconf.mk or in one of the target sections. The CINC is 139### used for dependency computation. For actual compilation it 140### is added to CFLAGS. 141 142### You may supply additional libs and library paths from the command line. 143### For example if you compiled the openssl and libcurl from original 144### sources, you might specify: 145### make LIBS='-L/usr/local/lib -L/usr/local/ssl/lib' 146### If you need some special platform dependent libraries afterwards, 147### supply them using POSTLIBS, e.g. 148### make POSTLIBS='-lxnet -lsocket' 149LIBS+= -lcurl -lssl -lcrypto -lz $(POSTLIBS) 150#LIBS+= -lpthread -static -lcurl -lssl -lcrypto -lz -dynamic 151#LIBS+= -lidn -lrt 152#LIBS+= -ldl 153### This LIBS variable can be later overridden or modified in 154### localconf.mk or in one of the target sections. 155 156### Where commands for build are found (override for cross compiler or Windows) 157 158#CC=ccache gcc 159CC=gcc 160# If you want to override LD setting you must supply LD_ALT on command line or use localconf.mk 161LD_ALT?=$(CC) 162LD=$(LD_ALT) 163ARC?=ar -crs 164ARX?=ar -x 165STRIP?=strip 166GCOV?=gcov 167LCOV?=lcov 168ECHO?=echo 169CP?=cp 170PERL?=perl 171XSD2SG_PL?= ../pd/xsd2sg.pl 172XSD2SG?=$(PERL) $(XSD2SG_PL) 173PD2TEX_PL?= ../pd/pd2tex 174PD2TEX?=$(PERL) $(PD2TEX_PL) 175PULVERIZE=$(PERL) ./pulverize.pl 176GPERF?=gperf 177SWIG?=swig 178GENHTML?=genhtml 179 180#SHARED_FLAGS=-shared --export-all-symbols -Wl,--whole-archive -Wl,--allow-multiple-definition 181# --export-all-symbols does not seem to work on gcc-4.6.1... try -Wl,--export-dynamic instead 182SHARED_FLAGS=-shared -Wl,--export-dynamic -Wl,--whole-archive -Wl,--allow-multiple-definition 183SHARED_CLOSE=-Wl,--no-whole-archive 184### Form CFLAGS from its components 185CDEF+= -D_REENTRANT -DDEBUG 186CDEF+= -DMUTEX_DEBUG=1 187CFLAGS+= -g -fPIC -fno-strict-aliasing 188#CFLAGS += -Os # gcc-3.4.6 miscompiles with -Os on ix86 (2010 --Sampo) 189CFLAGS+= -fmessage-length=0 190CFLAGS+= -Wall -Wno-parentheses -Wno-unused-label -Wno-unknown-pragmas -Wno-char-subscripts 191#LDFLAGS += -Wl,--gc-sections 192LIBZXID_A?=libzxid.a 193LIBZXID?=-L. -lzxid 194PLATFORM_OBJ?= 195OUTOPT?=-o 196OBJ_EXT?=o 197EXE?= 198SO?=.so 199 200ifeq ($(ENA_PG),1) 201### To compile for profiling your should run make ENA_PG=1 202### See also: make gcov, make lcov (and lcovhtml directory), man gcov, man gprof 203### N.B. ccache seems to be incompatible with profiling. 204$(info Profiling build) 205CFLAGS+= -pg -ftest-coverage -fprofile-arcs 206LDFLAGS+= -pg -ftest-coverage -fprofile-arcs 207else 208# -ffunction-sections is incompatible with profiling 209CFLAGS+= -ffunction-sections -fdata-sections 210# Following ld flags as well as C flag -ffunction-sections are a quest to 211# eliminate unused functions from final link. 212#LDFLAGS= -Wl,-O -Wl,2 --gc-sections 213endif 214 215#################################################################### 216### Platform dependent options (choose one with `make TARGET=foo') 217### 218 219ifeq ($(TARGET),) 220# Target guesser (only works for native builds and only of output of uname is the target name) 221TARGET=$(shell uname) 222$(warning Guessed TARGET=$(TARGET)) 223endif 224 225ifeq ($(TARGET),Linux) 226### Flags for Linux 2.6 native compile (gcc + gnu binutils) 227CDEF+=-DLINUX 228# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 229CDEF+= -DUSE_PTHREAD -pthread 230ifeq ($(DISTRO),fedora) 231CDEF+=-DFEDORA 232endif 233LIBS+=-lpthread 234SO_LIBS+=$(LIBS) 235# Marks that target has been detected 236TARGET_FOUND=1 237endif 238 239ifeq ($(TARGET),diet-linux) 240CROSS_COMPILE=1 241DIETDIR=/usr/local/dietlibc-0.33 242CC=$(DIETDIR)/bin/diet gcc 243LD=$(DIETDIR)/bin/diet gcc 244CDEF+=-DLINUX 245# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 246CDEF+= -DUSE_PTHREAD -pthread 247CINC= -I. -I$(DIETDIR)/include 248# -fno-stack-protector is needed to eliminate unwanted function plrologue code that causes segv 249CFLAGS+= -fno-stack-protector 250LDFLAGS= -L$(DIETDIR)/lib-i386 -L$(DIETDIR)/lib 251LIBS+=-lpthread 252# Marks that target has been detected 253TARGET_FOUND=1 254endif 255 256ifeq ($(TARGET),musl-linux) 257CROSS_COMPILE=1 258MUSLDIR=/usr/local/musl-0.9.15 259CC=$(MUSLDIR)/bin/musl-gcc 260LD=$(MUSLDIR)/bin/musl-gcc 261CDEF+=-DLINUX 262# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 263CDEF+= -DUSE_PTHREAD -pthread 264CINC= -I. -I$(MUSLDIR)/include 265# -fno-stack-protector is needed to eliminate unwanted function plrologue code that causes segv 266CFLAGS+= -fno-stack-protector 267LDFLAGS= -L$(MUSLDIR)/lib-i386 -L$(MUSLDIR)/lib 268LIBS+=-lpthread 269# Marks that target has been detected 270TARGET_FOUND=1 271endif 272 273ifeq ($(TARGET),xsol8) 274### Cross compilation for Solaris 8 target (on Linux host). Invoke as `make TARGET=xsol8' 275# You must have the cross compiler installed in /apps/gcc/sol8 and in path. Similarily 276# the cross binutils must be in path. 277# export PATH=/apps/gcc/sol8/bin:/apps/binutils/sol8/bin:$PATH 278 279SYSROOT=/apps/gcc/sol8/sysroot 280CROSS_COMPILE=1 281CC=sparc-sun-solaris2.8-gcc 282LD=sparc-sun-solaris2.8-gcc 283CDEF+=-DSUNOS -DBYTE_ORDER=4321 -DBIG_ENDIAN=4321 284# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 285CDEF+= -DUSE_PTHREAD -pthread 286LIBS+=-lxnet -lsocket 287SO_LIBS+=$(LIBS) 288TARGET_FOUND=1 289endif 290 291ifeq ($(TARGET),sol8) 292### Flags for Solaris 8 native compile (with gc and gnu binutils) (BIG_ENDIAN BYTE_ORDER) 293CDEF+=-DSUNOS -DBYTE_ORDER=4321 -DBIG_ENDIAN=4321 -I/opt/sfw/include -I/usr/sfw/include 294# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 295CDEF+= -DUSE_PTHREAD -pthread 296LIBS=-R/opt/sfw/lib -R/usr/sfw/lib -lcurl -lssl -lcrypto -lz -lxnet -lsocket 297SO_LIBS+=$(LIBS) 298SHARED_FLAGS=-shared --export-all-symbols -Wl,-z -Wl,allextract 299SHARED_CLOSE=-Wl,-z -Wl,defaultextract 300TARGET_FOUND=1 301endif 302 303ifeq ($(TARGET),sol8x86) 304# Flags for Solaris 8/x86 native compile (with gc and gnu binutils) (LITTLE_ENDIAN BYTE_ORDER) 305CDEF+=-DSUNOS -DBYTE_ORDER=1234 -I/opt/sfw/include -I/usr/sfw/include 306# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 307CDEF+= -DUSE_PTHREAD -pthread 308LIBS=-R/opt/sfw/lib -R/usr/sfw/lib -lcurl -lssl -lcrypto -lz -lxnet -lsocket 309SO_LIBS+=$(LIBS) 310SHARED_FLAGS=-shared --export-all-symbols -Wl,-z -Wl,allextract 311SHARED_CLOSE=-Wl,-z -Wl,defaultextract 312endif 313 314ifeq ($(TARGET),macosx) 315#### Flags for MacOS 10 / Darwin native compile (gcc + Apple linker) 316# alias ldd='otool -L' 317# alias strace=ktrace or dtrace or dtruss 318CFLAGS=-g -fPIC -fmessage-length=0 -Wno-unused-label -Wno-unknown-pragmas -fno-strict-aliasing -DMAYBE_UNUSED='' 319CDEF+=-DMACOSX 320# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 321CDEF+= -DUSE_PTHREAD -pthread 322JNI_INC=-I/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers 323SHARED_FLAGS=-dylib -all_load -bundle 324SHARED_CLOSE= 325SO_LIBS+=$(LIBS) 326ZXIDJNI_SO=zxidjava/libzxidjni.jnilib 327#SHARED_FLAGS=-dylib -all_load -keep_private_externs 328#OPENSSL_ROOT=/Developer/SDKs/MacOSX10.4u.sdk/usr 329#CURL_ROOT=/Developer/SDKs/MacOSX10.4u.sdk/usr 330# Try find / -name ap_config.h; find / -name apr.h 331APACHE_INC = -I/Developer/SDKs/MacOSX10.6.sdk/usr/include/apache2 332APR_INC = -I/Developer/SDKs/MacOSX10.6.sdk/usr/include/apr-1 333APACHE_MODULES = /usr/libexec/apache2 334MOD_AUTH_SAML_LIBS=-lapr-1 335# -lhttpd2core 336TARGET_FOUND=1 337endif 338 339ifeq ($(TARGET),FreeBSD) 340# Some freebsd guesses result "FreeBSD" so we map it to "freebsd" 341TARGET=freebsd 342endif 343ifeq ($(TARGET),freebsd) 344### Putative flags for Freebsd compile 345CDEF+=-DFREEBSD 346# Using PTHREAD helps to avoid problems in multithreaded programs, such as Java servlets 347CDEF+= -DUSE_PTHREAD -pthread 348LIBS+=-lpthread 349SO_LIBS+=$(LIBS) 350TARGET_FOUND=1 351endif 352 353ifeq ($(TARGET),CYGWIN_NT-6.1) 354TARGET=cygwin 355endif 356 357ifeq ($(TARGET),cygwin) 358### Native Windows build using Cygwin environment and gcc 359CDEF+=-DCYGWIN -DUSE_LOCK=dummy_no_flock -DCURL_STATICLIB -DLOCK_UN=0 360MOD_AUTH_SAML_LIBS=-lapr-1 -lhttpd2core 361SO_LIBS+=$(LIBS) 362TARGET_FOUND=1 363endif 364 365ifeq ($(TARGET),mingw) 366### These options work with late 2010 vintage mingw (x86-mingw32-build-1.0-sh.tar.bz2?) 367CP=ln 368ZXID_PATH=/c/zxid/ 369EXE=.exe 370SO=.dll 371PRECHECK_PREP=precheck_prep_win 372CDEF+=-DMINGW -DUSE_LOCK=dummy_no_flock -DCURL_STATICLIB -DUSE_PTHREAD 373SO_LIBS= -L/mingw/lib -lcurl -lssl -lcrypto -lz -lssh2 -lidn -lwldap32 -lgdi32 -lwsock32 -lwinmm -lkernel32 -lz 374LIBS= -mconsole $(SO_LIBS) -lpthread 375# --dll -mdll 376SHARED_FLAGS= -mdll -Wl,--add-stdcall-alias -static -Wl,--export-all-symbols -Wl,--whole-archive -Wl,-no-undefined -Wl,--enable-runtime-pseudo-reloc -Wl,--allow-multiple-definition 377CFLAGS=-g -fmessage-length=0 -Wno-unused-label -Wno-unknown-pragmas -fno-strict-aliasing -mno-cygwin -D'ZXID_PATH="$(ZXID_PATH)"' 378#JNI_INC=-I"C:/Program Files/Java/jdk1.5.0_14/include" -I"C:/Program Files/Java/jdk1.5.0_14/include/win32" 379JNI_INC=-I"/cygdrive/c/Program Files (x86)/Java/jdk1.7.0_21/include/" -I"/cygdrive/c/Program Files (x86)/Java/jdk1.7.0_21/include/win32/" 380ZXIDJNI_SO=zxidjava/zxidjni.dll 381ifeq ($(SHARED),1) 382LIBZXID=-L. -lzxiddll 383endif 384TARGET_FOUND=1 385endif 386 387ifeq ($(TARGET),xmingw) 388### Cross compilation for MINGW 32bit target (on Linux host). 389# Invoke as `make zxid.dll TARGET=xmingw' 390# You must have the cross compiler installed in /apps/gcc/mingw and in 391# path. Similarily the cross binutils must be in path. 392# export PATH=/apps/gcc/mingw/bin:/apps/binutils/mingw/bin:$PATH 393# 394# For best results use the same cross compiler for compiling the dependency 395# libraries like curl, openssl, and zlib. Furthermore: your cross compiler 396# should be for MinGW target, not for Cygwin (i.e. default compiler of Cygwin 397# may have trouble due to linking against cygwin dependent libraries). 398# 399# Cross compiling curl 400# CPPFLAGS='-I/apps/gcc/mingw/sysroot/include' LDFLAGS='-L/apps/gcc/mingw/sysroot/lib' LIBS='-lz' ./configure --prefix=/usr --with-ssl=/apps/gcc/mingw/sysroot --without-gnutls --enable-thread --enable-nonblocking --host=i586-pc-mingw32 --with-random=/random.txt --disable-shared --enable-static 401# # Despite apparent misdetection of ar, the compile finishes 402# make 403# cp lib/.libs/libcurl* /apps/gcc/mingw/sysroot/lib 404# cp -r include/curl/ /apps/gcc/mingw/sysroot/include 405# 406# Symbol hunting 407# undefined reference to `WinMain@16' --> add -Wl,--no-whole-archive after all libs 408# undefined reference to `_imp__curl_easy_setopt' --> compile with -DCURL_STATICLIB 409# undefined reference to `_imp__curl_easy_strerror' --> compile with -DCURL_STATICLIB 410# undefined reference to `timeGetTime@0' --> add -lwinmm 411 412MINGWDIR=/apps/gcc/mingw 413SYSROOT=$(MINGWDIR)/sysroot 414CROSS_COMPILE=1 415EXE=.exe 416SO=.dll 417CC=$(MINGWDIR)/bin/i586-pc-mingw32-gcc 418LD=$(MINGWDIR)/bin/i586-pc-mingw32-gcc 419ARC=/apps/binutils/mingw/bin/i586-pc-mingw32-ar -crs 420ARX=/apps/binutils/mingw/bin/i586-pc-mingw32-ar -x 421PRECHECK_PREP=precheck_prep_win 422#CDEF+=-DMINGW -DUSE_LOCK=flock -DCURL_STATICLIB 423CDEF+=-DMINGW -DUSE_LOCK=dummy_no_flock -DCURL_STATICLIB -DUSE_PTHREAD 424# All dependency libraries are assumed to be in the mingw environment 425CINC=-I. -I$(TOP) -I$(SYSROOT)/include 426APACHE_INC = -I$(SYSROOT)/include 427APR_INC = -I$(SYSROOT)/srclib/apr-util/include 428ZXIDJNI_SO=zxidjava/zxidjni.dll 429ifeq ($(SHARED),1) 430LIBZXID=-L. -lzxiddll 431endif 432# -lws2_32 -lmingw32 -u _imp__curl_easy_setopt -u _imp__curl_easy_strerror 433SO_LIBS= -L$(SYSROOT)/lib -lcurl -lssl -lcrypto -lz -lwinmm -lwsock32 -lgdi32 -lkernel32 434LIBS= -mconsole $(SO_LIBS) 435# --dll -mdll 436#SHARED_FLAGS=-shared --export-all-symbols -Wl,--whole-archive -Wl,-no-undefined -Wl,--enable-runtime-reloc -Wl,--whole-archive 437SHARED_FLAGS= -shared -Wl,--add-stdcall-alias --export-all-symbols -Wl,--whole-archive -Wl,-no-undefined -Wl,--enable-runtime-pseudo-reloc -Wl,--allow-multiple-definition 438CFLAGS=-g -fmessage-length=0 -Wno-unused-label -Wno-unknown-pragmas -fno-strict-aliasing -mno-cygwin 439 440# java.lang.UnsatisfiedLinkError: Given procedure could not be found 441# -mno-cygwin -mrtd -Wl,--kill-at -Wl,--add-stdcall-alias 442# http://www.inonit.com/cygwin/jni/helloWorld/c.html 443# http://www.1702.org/jniswigdll.html 444# http://maba.wordpress.com/2004/07/28/generating-dll-files-for-jni-under-windowscygwingcc/ 445 446#/apps/gcc/mingw/bin/i586-pc-mingw32-gcc -o zxid.dll -Wl,--add-stdcall-alias -shared --export-all-symbols -Wl,-whole-archive -Wl,-no-undefined -Wl,--enable-runtime-pseudo-reloc -Wl,--allow-multiple-definition -Wl,--output-def,zxid.def,--out-implib,zxidimp.lib libzxid.a -Wl,-no-whole-archive -L/apps/gcc/mingw/sysroot/lib -L/apps/gcc/mingw/sysroot/lib -lcurl -lssl -lcrypto -lz -lwinmm -lwsock32 -lgdi32 -lkernel32 -mdll 447#i586-pc-mingw32-gcc: shared and mdll are not compatible 448#make: *** [zxid.dll] Error 1 449# remove the -shared flag and it compiles 450TARGET_FOUND=1 451endif 452 453ifeq ($(TARGET),xmingw64) 454### Cross compilation for MINGW64 target (on Linux host). 455# Invoke as `make zxid.dll TARGET=xmingw64' 456# You must have the cross compiler installed. You can get one from 457# http://mingw-w64.sourceforge.net/download.php 458# 459# For best results use the same cross compiler for compiling the dependency 460# libraries like curl, openssl, and zlib. Furthermore: your cross compiler 461# should be for MinGW target, not for Cygwin (i.e. default compiler of Cygwin 462# may have trouble due to linking against cygwin dependent libraries). 463# 464# Cross compiling zlib 465# export PATH=/apps/mingw/mingw-w64-bin_i686-linux_20130523/bin:$PATH 466# ./configure --prefix=/mingw 467# CC=x86_64-w64-mingw32-gcc LD=x86_64-w64-mingw32-ld AR=x86_64-w64-mingw32-ar RANLIB=x86_64-w64-mingw32-gcc-ranlib make -e 468# cp libz.a /apps/mingw/3.0.0-w64/mingw/lib 469# cp zlib.h zconf.h /apps/mingw/3.0.0-w64/mingw/include 470# 471# Cross compiling openssl 472# ./Configure --prefix=/mingw --cross-compile-prefix=x86_64-w64-mingw32- enable-rc5 enable-mdc2 zlib mingw64-cross-debug -I/apps/mingw/3.0.0-w64/x86_64-w64-mingw32/include 473# #make depend # error, apparently not needed 474# make 475# # If you have syntax errors with string "<symlink>" then eliminate 476# # symlinks from include/openssl by copying the files directly there. 477# #make test # not doable since openssl.exe will not execute on Linux 478# cp -Lr include/openssl /apps/mingw/3.0.0-w64/mingw/include 479# cp libssl.a libcrypto.a /apps/mingw/3.0.0-w64/mingw/lib 480# cp apps/openssl.exe /apps/mingw/3.0.0-w64/mingw/bin-w64 481# 482# Cross compiling curl 483# CPPFLAGS='-I/apps/mingw/3.0.0-w64/mingw/include' LDFLAGS='-L/apps/mingw/3.0.0-w64/mingw/lib' LIBS='-lz' ./configure --prefix=/mingw --with-ssl=/apps/mingw/3.0.0-w64/mingw --without-gnutls -enable-debug --enable-thread --enable-nonblocking --host=x86_64-w64-mingw32 --with-random=/random.txt --disable-shared --enable-static 484# make 485# cp lib/.libs/libcurl* /apps/mingw/3.0.0-w64/mingw/lib 486# cp -r include/curl/ /apps/mingw/3.0.0-w64/mingw/include 487# cp src/curl.exe /apps/mingw/3.0.0-w64/mingw/bin-w64 488# 489# Fix illegal relocation error on linking libws2_32.a 490# wget http://www.dependencywalker.com/depends22_x86.zip 491# dependes.exe /c /? zxid_httpd.exe 492# psutils 493 494# MinGW-W64 Runtime 3.0 (alpha - rev. 5871) 2013-05-21 495MINGWDIR=/apps/mingw/mingw-w64-bin_i686-linux_20130523 496SYSROOT=$(MINGWDIR)/x86_64-w64-mingw32 497CROSS_COMPILE=1 498EXE=.exe 499SO=.dll 500CC=$(MINGWDIR)/bin/x86_64-w64-mingw32-gcc 501LD=$(MINGWDIR)/bin/x86_64-w64-mingw32-gcc 502ARC=$(MINGWDIR)/bin/x86_64-w64-mingw32-ar -crs 503ARX=$(MINGWDIR)/bin/x86_64-w64-mingw32-ar -x 504STRIP=$(MINGWDIR)/bin/x86_64-w64-mingw32-strip 505PRECHECK_PREP=precheck_prep_win 506#CDEF+=-DMINGW -DUSE_LOCK=flock -DCURL_STATICLIB 507CDEF+=-DMINGW -DUSE_LOCK=dummy_no_flock -DCURL_STATICLIB -DUSE_PTHREAD 508# All dependency libraries are assumed to be in the mingw environment 509CINC=-I. -I$(TOP) -I$(SYSROOT)/include 510APACHE_INC = -I$(SYSROOT)/include/apache2 511APR_INC = -I$(SYSROOT)/include/apr-1 512JNI_INC=-I$(SYSROOT)/include 513ZXIDJNI_SO=zxidjava/zxidjni.dll 514ifeq ($(SHARED),1) 515LIBZXID=-L. -lzxiddll 516endif 517# -lws2_32 -lwldap32 -lmingw64 -lcrtdll -u _imp__curl_easy_setopt -u _imp__curl_easy_strerror 518SO_LIBS= -L$(SYSROOT)/lib -lcurl -lssl -lcrypto -lz -lws2_32 -lwldap32 -lcrypt32 -lwinmm -lwsock32 -lgdi32 -lkernel32 519LIBS= -mconsole $(SO_LIBS) 520# --dll -mdll 521#SHARED_FLAGS=-shared --export-all-symbols -Wl,--whole-archive -Wl,-no-undefined -Wl,--enable-runtime-reloc -Wl,--whole-archive 522SHARED_FLAGS= -shared -Wl,--add-stdcall-alias -Wl,--whole-archive -Wl,-no-undefined -Wl,--enable-runtime-pseudo-reloc -Wl,--allow-multiple-definition 523CFLAGS=-g -fmessage-length=0 -Wno-unused-label -Wno-unknown-pragmas -fno-strict-aliasing 524TARGET_FOUND=1 525endif 526 527ifeq ($(TARGET),xmingw64b) 528### Cross compilation for MINGW64 target (on Ubuntu Linux host). 529# Invoke as `make zxid.dll TARGET=xmingw64b' 530# This target was tested with Ubuntu/Debian supplied mingw-w64 cross compiler package 531# apt-get install mingw-w64 532# 533# For best results use the same cross compiler for compiling the dependency 534# libraries like curl, openssl, and zlib. Furthermore: your cross compiler 535# should be for MinGW target, not for Cygwin (i.e. default compiler of Cygwin 536# may have trouble due to linking against cygwin dependent libraries). 537# 538# Cross compiling zlib 539# export PATH=/usr/bin:/bin 540# ./configure --prefix=/usr/x86_64-w64-mingw32 541# make CC=x86_64-w64-mingw32-gcc LD=x86_64-w64-mingw32-ld AR=x86_64-w64-mingw32-ar RANLIB=x86_64-w64-mingw32-gcc-ranlib 542# # compilation fails when trying to create .so, but the .a has been built by then 543# cp libz.a /usr/x86_64-w64-mingw32/lib 544# cp zlib.h zconf.h /usr/x86_64-w64-mingw32/include 545# 546# Cross compiling openssl 547# ./Configure --prefix=/usr/x86_64-w64-mingw32 --cross-compile-prefix=x86_64-w64-mingw32- enable-rc5 enable-mdc2 zlib mingw64-cross-debug 548# #make depend # error, apparently not needed 549# make 550# # If you have syntax errors with string "<symlink>" then eliminate 551# # symlinks from include/openssl by copying the files directly there. 552# #make test # not doable since openssl.exe will not execute on Linux 553# cp -Lr include/openssl /usr/x86_64-w64-mingw32/include 554# cp libssl.a libcrypto.a /usr/x86_64-w64-mingw32/lib 555# cp apps/openssl.exe /usr/x86_64-w64-mingw32/bin 556# 557# Cross compiling curl 558# CPPFLAGS='-I/usr/x86_64-w64-mingw32/include' LDFLAGS='-L/usr/x86_64-w64-mingw32/lib' LIBS='-lz' ./configure --prefix=/usr/x86_64-w64-mingw32 --with-ssl=/usr/x86_64-w64-mingw32 --without-gnutls -enable-debug --enable-thread --enable-nonblocking --host=x86_64-w64-mingw32 --with-random=/random.txt --disable-shared --enable-static 559# make 560# cp lib/.libs/libcurl* /usr/x86_64-w64-mingw32/lib 561# cp -r include/curl/ /usr/x86_64-w64-mingw32/include 562# cp src/curl.exe /usr/x86_64-w64-mingw32/bin 563 564# apt-get install mingw-w64 565# MinGW-W64 Runtime 1.0 (stable - rev. 0) 0000-00-00 566MINGWDIR=/usr 567SYSROOT=$(MINGWDIR)/x86_64-w64-mingw32 568CROSS_COMPILE=1 569EXE=.exe 570SO=.dll 571CC=$(MINGWDIR)/bin/x86_64-w64-mingw32-gcc 572LD=$(MINGWDIR)/bin/x86_64-w64-mingw32-gcc 573ARC=$(MINGWDIR)/bin/x86_64-w64-mingw32-ar -crs 574ARX=$(MINGWDIR)/bin/x86_64-w64-mingw32-ar -x 575PRECHECK_PREP=precheck_prep_win 576#CDEF+=-DMINGW -DUSE_LOCK=flock -DCURL_STATICLIB 577CDEF+=-DMINGW -DUSE_LOCK=dummy_no_flock -DCURL_STATICLIB -DUSE_PTHREAD 578# All dependency libraries are assumed to be in the mingw environment 579CINC=-I. -I$(TOP) -I$(SYSROOT)/include 580APACHE_INC = -I$(SYSROOT)/include 581APR_INC = -I$(SYSROOT)/srclib/apr-util/include 582JNI_INC=-I$(SYSROOT)/include 583ZXIDJNI_SO=zxidjava/zxidjni.dll 584ifeq ($(SHARED),1) 585LIBZXID=-L. -lzxiddll 586endif 587# -lws2_32 -lwldap32 -lmingw64 -lcrtdll -u _imp__curl_easy_setopt -u _imp__curl_easy_strerror 588SO_LIBS= -L$(SYSROOT)/lib -lcurl -lssl -lcrypto -lz -lws2_32 -lwldap32 -lcrypt32 -lwinmm -lwsock32 -lgdi32 -lkernel32 589LIBS= -mconsole $(SO_LIBS) 590# --dll -mdll 591#SHARED_FLAGS=-shared --export-all-symbols -Wl,--whole-archive -Wl,-no-undefined -Wl,--enable-runtime-reloc -Wl,--whole-archive 592SHARED_FLAGS= -shared -Wl,--add-stdcall-alias -Wl,--whole-archive -Wl,-no-undefined -Wl,--enable-runtime-pseudo-reloc -Wl,--allow-multiple-definition 593CFLAGS=-g -fmessage-length=0 -Wno-unused-label -Wno-unknown-pragmas -fno-strict-aliasing 594TARGET_FOUND=1 595endif 596 597ifeq ($(TARGET),win32cl) 598### Native Compilation with Microsoft Visual C++ compiler's command line (aka msvc) 599CP=copy 600CC=cl 601LD=link 602ARC=lib 603CDEF+=-DMINGW -DWIN32CL -DUSE_LOCK=flock -DCURL_STATICLIB -DUSE_PTHREAD 604CURL_ROOT="G:/cvsdev/libcurl-7.19.3-win32-ssl-msvc" 605OPENSSL_ROOT="C:/OpenSSL" 606ZLIB_ROOT="C:/Program Files/GnuWin32" 607CINC=-I. -I$(TOP) -I"$(CURL_ROOT)/include" -I"$(OPENSSL_ROOT)/include" -I"$(ZLIB_ROOT)/include" 608JNI_INC=-I"C:/Program Files/Java/jdk1.5.0_14/include" -I"C:\Program Files\Java\jdk1.5.0_14\include\win32" 609WIN_DDL_LIBS= -LIBPATH:$(CURL_ROOT)/lib/Debug -LIBPATH:$(OPENSSL_ROOT)/lib/VC -LIBPATH:$(ZLIB_ROOT)/lib curllib.lib libeay32MD.lib ssleay32MD.lib zlib.lib kernel32.lib user32.lib winmm.lib Ws2_32.lib 610LIBS= $(SO_LIBS) 611#SHARED_FLAGS=-LDd -MDd -shared --export-all-symbols 612#SHARED_CLOSE=/SUBSYSTEM:WINDOWS 613SHARED_FLAGS=-DLL -shared --export-all-symbols 614SHARED_CLOSE= 615CFLAGS=-Zi -WL -DMAYBE_UNUSED='' 616#CFLAGS+=-Yd 617OUTOPT=-OUT: 618OBJ_EXT=obj 619EXE=.exe 620SO=.dll 621PLATFORM_OBJ=zxdirent.obj 622LIBZXID_A=zxid.lib 623GPERF=gperf.exe 624SHELL="C:\Program Files\GNU Utils\bin" 625MAKESHELL="C:\Program Files\GNU Utils\bin" 626ZXIDJNI_SO=zxidjava/zxidjni.dll 627ifeq ($(SHARED),1) 628LIBZXID=-L. -lzxiddll 629else 630LIBZXID=zxid.lib 631endif 632TARGET_FOUND=1 633endif 634 635ifeq ($(TARGET_FOUND),) 636$(error TARGET $(TARGET) not found. Run make help) 637endif 638 639### To change any of the above options, you can either supply 640### alternate values on make command line, like `make PREFIX=/your/path' 641### or you can create localconf.mk file to hold your options. This 642### file is included here, but if it's missing, no problem. 643 644-include localconf.mk 645 646#################################################################### 647### End of platform dependent options (mortals can look, but 648### should not edit below this line). 649 650ifeq ($(V),) 651$(info Nonverbose build (use make V=1 to enable verbose build).) 652$(info TARGET=$(TARGET)) 653$(info TOP=$(TOP)) 654$(info CC=$(CC)) 655$(info CFLAGS=$(CFLAGS)) 656$(info CDEF=$(CDEF)) 657$(info CINC=$(CINC)) 658$(info LD=$(LD)) 659$(info LDFLAGS=$(LDFLAGS)) 660$(info LIBS=$(LIBS)) 661$(info --------------------------) 662endif 663#CFLAGS += $(CDEF) $(CINC) 664 665# Avoid make's built-in implicit rules and variables; do not print entry msg 666.SUFFIXES: 667MAKEFLAGS= -rR --no-print-directory 668 669ifeq ($(V),1) 670 671ifeq ($(TARGET),win32cl) 672%.obj: %.c 673 $(CC) $(CFLAGS) $(CDEF) $(CINC) -Fo$@ -c $< 674else 675%.$(OBJ_EXT): %.c 676 $(CC) $(OUTOPT)$@ -c $< $(CFLAGS) $(CDEF) $(CINC) 677endif 678 679%$(EXE): %.$(OBJ_EXT) 680 $(LD) $(OUTOPT)$@ $< $(LDFLAGS) $(LIBZXID) $(LIBS) 681 682precheck/%$(EXE): precheck/%.$(OBJ_EXT) 683 $(LD) $(OUTOPT)$@ $< $(LDFLAGS) $(LIBS) 684 685else 686 687ifeq ($(TARGET),win32cl) 688%.obj: %.c 689 @echo " Compiling $<" 690 @if $(CC) $(CFLAGS) $(CDEF) $(CINC) -Fo$@ -c $< ; then : ; else \ 691 echo Failed command:; echo '$(CC) $(CFLAGS) $(CDEF) $(CINC) -Fo$@ -c $<' ; false; fi 692else 693%.$(OBJ_EXT): %.c 694 @echo " Compiling $<" 695 @if $(CC) $(OUTOPT)$@ -c $< $(CFLAGS) $(CDEF) $(CINC) ; then : ; else \ 696 echo Failed command:; echo '$(CC) $(OUTOPT)$@ -c $< $(CFLAGS) $(CDEF) $(CINC)' ; false; fi 697endif 698 699precheck/chk-%$(EXE): precheck/chk-%.$(OBJ_EXT) 700 @echo " Link exe $@" 701 @if $(LD) $(OUTOPT)$@ $< $(LDFLAGS) $(LIBS) ; then : ; else \ 702 echo Failed command:; echo '$(LD) $(OUTOPT)$@ $< $(LDFLAGS) $(LIBS)' ; false; fi 703 704%$(EXE): %.$(OBJ_EXT) 705 @echo " Linking $@" 706 @if $(LD) $(OUTOPT)$@ $< $(LDFLAGS) $(LIBZXID) $(LIBS) ; then : ; else \ 707 echo Failed command:; echo '$(LD) $(OUTOPT)$@ $< $(LDFLAGS) $(LIBZXID) $(LIBS)' ; false; fi 708 709endif 710 711# Avoid funny character set dependencies 712unexport LC_ALL 713LC_COLLATE=C 714LC_NUMERIC=C 715export LC_COLLATE LC_NUMERIC 716 717### Start of dependencies and targets 718 719DEFAULT_EXE= zxidhlo$(EXE) zxididp$(EXE) zxidhlowsf$(EXE) zxidsimple$(EXE) zxidwsctool$(EXE) zxlogview$(EXE) zxidhrxmlwsc$(EXE) zxidhrxmlwsp$(EXE) zxdecode$(EXE) zxcot$(EXE) zxpasswd$(EXE) zxcall$(EXE) zxumacall$(EXE) zxencdectest$(EXE) 720 721ALL_EXE= smime$(EXE) zxidwspcgi$(EXE) zxid_httpd$(EXE) htpasswd$(EXE) 722 723#$(info DEFAULT_EXE=$(DEFAULT_EXE)) 724 725default: seehelp precheck $(DEFAULT_EXE) 726 727all: default precheck_apache samlmod phpzxid javazxid apachezxid $(ALL_EXE) 728 729all_minus_perl: default precheck_apache apachezxid phpzxid javazxid app_demo.class $(ALL_EXE) 730 731zxbus: zxbusd zxbustailf zxbuslist 732 733aller: all zxbus app_demo.class 734 735maymay: javazxid app_demo.class 736 737diet64: zxcot-static-x64 zxpasswd-static-x64 zxididp-static-x64 zxidhlo-static-x64 zxlogview-static-x64 zxcall-static-x64 zxumacall-static-x64 zxdecode-static-x64 zxbusd-static-x64 zxbuslist-static-x64 zxbustailf-static-x64 738 739ZXIDHDRS=zx.h zxid.h zxidnoswig.h c/zxidvers.h 740 741ZXID_LIB_OBJ=zxidsimp.$(OBJ_EXT) zxidpool.$(OBJ_EXT) zxidpsso.$(OBJ_EXT) zxidsso.$(OBJ_EXT) zxidslo.$(OBJ_EXT) zxiddec.$(OBJ_EXT) zxidspx.$(OBJ_EXT) zxididpx.$(OBJ_EXT) zxidmni.$(OBJ_EXT) zxidpep.$(OBJ_EXT) zxidpdp.$(OBJ_EXT) zxidmk.$(OBJ_EXT) zxida7n.$(OBJ_EXT) zxidses.$(OBJ_EXT) zxiduser.$(OBJ_EXT) zxidcgi.$(OBJ_EXT) zxidconf.$(OBJ_EXT) zxidecp.$(OBJ_EXT) zxidcdc.$(OBJ_EXT) zxidloc.$(OBJ_EXT) zxidlib.$(OBJ_EXT) zxidmeta.$(OBJ_EXT) zxidmda.$(OBJ_EXT) zxidcurl.$(OBJ_EXT) zxidepr.$(OBJ_EXT) zxida7n.$(OBJ_EXT) ykcrc.$(OBJ_EXT) ykaes.$(OBJ_EXT) $(PLATFORM_OBJ) 742 743ZX_OBJ=c/zx-ns.$(OBJ_EXT) c/zx-attrs.$(OBJ_EXT) c/zx-elems.$(OBJ_EXT) zxlibdec.$(OBJ_EXT) zxlibenc.$(OBJ_EXT) zxlib.$(OBJ_EXT) zxns.$(OBJ_EXT) zxpw.$(OBJ_EXT) zxutil.$(OBJ_EXT) zxbusprod.$(OBJ_EXT) zxlog.$(OBJ_EXT) zxsig.$(OBJ_EXT) zxcrypto.$(OBJ_EXT) akbox_fn.$(OBJ_EXT) match.$(OBJ_EXT) c/license.$(OBJ_EXT) 744 745WSF_OBJ=zxidmkwsf.$(OBJ_EXT) zxidwsf.$(OBJ_EXT) zxidwsc.$(OBJ_EXT) zxidwsp.$(OBJ_EXT) zxiddi.$(OBJ_EXT) zxidim.$(OBJ_EXT) zxidps.$(OBJ_EXT) 746 747OAUTH_OBJ=zxidoauth.$(OBJ_EXT) 748 749SMIME_LIB_OBJ=certauth.$(OBJ_EXT) keygen.$(OBJ_EXT) pkcs12.$(OBJ_EXT) smime-enc.$(OBJ_EXT) smime-qry.$(OBJ_EXT) smime-vfy.$(OBJ_EXT) smimemime.$(OBJ_EXT) smimeutil.$(OBJ_EXT) 750 751ifeq ($(PULVER),1) 752 753# WARNING: THE PULVER OPTIONS ARE NOT CURRENTLY MAINTAINED AND ARE OUT OF DATE! 754# Pulverize dependencies. These arrange some source files to be split 755# to one-function-per-file format ("pulver") so that GNU ld will only 756# pull in those files, i.e. functions, that are actually used. This is 757# a workaround for GNU ld not having a dead function elimination 758# feature. You should do `make PULVER=1' for production or 759# distribution build of this library as that will ensure smallest 760# possible binaries for eventual users of the library. 761 762PULVER_DEPS=pulver/c_saml2_dec_c.deps pulver/c_saml2_enc_c.deps \ 763 pulver/c_saml2_aux_c.deps pulver/c_saml2_getput_c.deps \ 764 pulver/c_saml2md_dec_c.deps pulver/c_saml2md_enc_c.deps \ 765 pulver/c_saml2md_aux_c.deps pulver/c_saml2md_getput_c.deps 766 767c_saml2_dec_c_o=$(shell cat pulver/c_saml2_dec_c.deps) 768c_saml2_enc_c_o=$(shell cat pulver/c_saml2_enc_c.deps) 769c_saml2_aux_c_o=$(shell cat pulver/c_saml2_aux_c.deps) 770c_saml2_getput_c_o=$(shell pulver/c_saml2_getput_c.deps) 771 772#pulver/c_saml2_dec_c.deps $(c_saml2_dec_c_o:.$(OBJ_EXT)=.c): c/saml2-dec.c 773 774pulver/c_saml2_dec_c.deps: c/saml2-dec.c 775 $(PULVERIZE) pulver c/saml2-dec.c >pulver/c_saml2_dec_c.deps 776 777#pulver/c_saml2_enc_c.deps $(c_saml2_enc_c_o:%.$(OBJ_EXT)=%.c): c/saml2-enc.c 778 779pulver/c_saml2_enc_c.deps $(foo:%.o=%.c): c/saml2-enc.c 780 $(PULVERIZE) pulver c/saml2-enc.c >pulver/c_saml2_enc_c.deps 781 782pulver/c_saml2_aux_c.deps $(c_saml2_aux_c_o:.o=.c): c/saml2-aux.c 783 $(PULVERIZE) pulver c/saml2-aux.c >pulver/c_saml2_aux_c.deps 784pulver/c_saml2_getput_c.deps $(c_saml2_getput_c_o:.o=.c): c/saml2-getput.c 785 $(PULVERIZE) pulver c/saml2-getput.c >pulver/c_saml2_getput_c.deps 786 787c_saml2md_dec_c_o=$(shell cat pulver/c_saml2md_dec_c.deps) 788c_saml2md_enc_c_o=$(shell cat pulver/c_saml2md_enc_c.deps) 789c_saml2md_aux_c_o=$(shell cat pulver/c_saml2md_aux_c.deps) 790c_saml2md_getput_c_o=$(shell pulver/c_saml2md_getput_c.deps) 791 792pulver/c_saml2md_dec_c.deps $(c_saml2md_dec_c_o:.o=.c): c/saml2md-dec.c 793 $(PULVERIZE) pulver c/saml2md-dec.c >pulver/c_saml2md_dec_c.deps 794pulver/c_saml2md_enc_c.deps $(c_saml2md_enc_c_o:.o=.c): c/saml2md-enc.c 795 $(PULVERIZE) pulver c/saml2md-enc.c >pulver/c_saml2md_enc_c.deps 796pulver/c_saml2md_aux_c.deps $(c_saml2md_aux_c_o:.o=.c): c/saml2md-aux.c 797 $(PULVERIZE) pulver c/saml2md-aux.c >pulver/c_saml2md_aux_c.deps 798pulver/c_saml2md_getput_c.deps $(c_saml2md_getput_c_o:.o=.c): c/saml2md-getput.c 799 $(PULVERIZE) pulver c/saml2md-getput.c >pulver/c_saml2md_getput_c.deps 800 801#-include pulver/c_saml2_dec_c.deps 802#-include pulver/c_saml2_enc_c.deps 803#-include pulver/c_saml2_aux_c.deps 804#-include pulver/c_saml2_getput_c.deps 805 806ZX_OBJ += \ 807 $(c_saml2_dec_c_o) $(c_saml2md_dec_c_o) \ 808 $(c_saml2_enc_c_o) $(c_saml2md_enc_c_o) \ 809 $(c_saml2_aux_c_o) $(c_saml2md_aux_c_o) \ 810 $(c_saml2_getput_c_o) $(c_saml2md_getput_c_o) 811 812else 813 814### Nonpulver deps 815 816ifeq ($(ENA_SSO),1) 817 818# Nonpulverized build. This will result in bigger binaries because gnu ld does 819# not understand to do dead function elimination. However, this is faster to build. 820 821#ZX_OBJ += 822 823endif 824 825ifeq ($(ENA_WSF),1) 826 827#WSF_OBJ += 828 829endif 830 831endif 832 833ZXBUSD_OBJ=zxbusd.$(OBJ_EXT) hiios.$(OBJ_EXT) hiinit.$(OBJ_EXT) hitodo.$(OBJ_EXT) hinet.$(OBJ_EXT) hiread.$(OBJ_EXT) hiwrite.$(OBJ_EXT) hiiosdump.$(OBJ_EXT) testping.$(OBJ_EXT) http.$(OBJ_EXT) smtp.$(OBJ_EXT) stomp.$(OBJ_EXT) zxbusdist.$(OBJ_EXT) zxbussubs.$(OBJ_EXT) zxbusent.$(OBJ_EXT) 834 835# 836# Schemata and potential xml document roots. 837# See also sg/wsf-soap11.sg for a place to "glue" new functions in. 838# N.B. As of 0.69 implementation, the search to zx_ns_tab is a linear 839# scan, so it pays to place commonly referenced namespaces early in ZX_SG. 840# 841 842ZX_SG+=sg/xmldsig-core.sg sg/xenc-schema.sg sg/ec.sg 843 844# SAML 2.0 845 846ifeq ($(ENA_SAML2),1) 847 848ZX_SG+=sg/wsf-soap11.sg sg/saml-schema-assertion-2.0.sg sg/saml-schema-protocol-2.0.sg sg/saml-schema-ecp-2.0.sg sg/liberty-paos-v2.0.sg 849ZX_ROOTS+=-r sa:Assertion -r sa:EncryptedAssertion -r sa:NameID -r sa:EncryptedID -r sp:NewID -r sp:AuthnRequest -r sp:Response 850ZX_ROOTS+=-r sp:LogoutRequest -r sp:LogoutResponse 851ZX_ROOTS+=-r sp:ManageNameIDRequest -r sp:ManageNameIDResponse 852ZX_ROOTS+=-r e:Envelope -r e:Header -r e:Body 853 854ZX_SG+=sg/saml-schema-metadata-2.0.sg 855ZX_SG+=sg/shibboleth-metadata-1.0.sg 856ZX_SG+=sg/sstc-saml-idp-discovery.sg 857ZX_ROOTS+=-r md:EntityDescriptor -r md:EntitiesDescriptor 858 859endif 860 861# OASIS XACML 2.0 (and committee draft 1) 862 863ifeq ($(ENA_XACML2),1) 864 865ZX_SG += sg/access_control-xacml-2.0-context-schema-os.sg 866ZX_SG += sg/access_control-xacml-2.0-policy-schema-os.sg 867ZX_SG += sg/access_control-xacml-2.0-saml-assertion-schema-os.sg 868ZX_SG += sg/access_control-xacml-2.0-saml-protocol-schema-os.sg 869ZX_SG += sg/xacml-2.0-profile-saml2.0-v2-schema-protocol-cd-1.sg 870ZX_SG += sg/xacml-2.0-profile-saml2.0-v2-schema-assertion-cd-1.sg 871ZX_ROOTS += -r xasp:XACMLAuthzDecisionQuery -r xasp:XACMLPolicyQuery 872ZX_ROOTS += -r xaspcd1:XACMLAuthzDecisionQuery -r xaspcd1:XACMLPolicyQuery 873 874endif 875 876# Liberty ID-WSF 2.0 877 878ifeq ($(ENA_WSF2),1) 879 880ZX_SG += sg/ws-addr-1.0.sg 881ZX_SG += sg/wss-secext-1.0.sg sg/wss-util-1.0.sg 882ZX_SG += sg/liberty-idwsf-soap-binding.sg sg/liberty-idwsf-soap-binding-v2.0.sg 883ZX_SG += sg/liberty-idwsf-security-mechanisms-v2.0.sg sg/liberty-idwsf-disco-svc-v2.0.sg 884ZX_SG += sg/liberty-idwsf-interaction-svc-v2.0.sg sg/liberty-idwsf-utility-v2.0.sg 885ZX_SG += sg/id-dap.sg sg/liberty-idwsf-subs-v1.0.sg sg/liberty-idwsf-dst-v2.1.sg 886ZX_SG += sg/liberty-idwsf-idmapping-svc-v2.0.sg sg/liberty-idwsf-people-service-v1.0.sg 887ZX_SG += sg/liberty-idwsf-authn-svc-v2.0.sg sg/xml.sg sg/xsi.sg sg/xs.sg sg/id-mm7-R6-1-4.sg 888ZX_SG += sg/lib-id-sis-cb-proto.sg sg/lib-id-sis-cb-cdm.sg sg/liberty-id-sis-gl-v1.0-14.sg 889ZX_SG += sg/liberty-idwsf-dp-v1.0.sg sg/liberty-idwsf-idp-v1.0.sg 890ZX_SG += sg/liberty-idwsf-pmm-v1.0.sg sg/liberty-idwsf-prov-v1.0.sg 891ZX_SG += sg/liberty-idwsf-shps-v1.0.sg 892ZX_SG += sg/hr-xml-sampo.sg sg/id-hrxml.sg 893ZX_SG += sg/demo-media-v1.0.sg 894ZX_ROOTS+= -r a:EndpointReference -r sec:Token 895ZX_ROOTS+= -r hrxml:Candidate 896 897#ZX_SG += sg/saml-schema-assertion-2.0.sg sg/saml-schema-protocol-2.0.sg sg/xmldsig-core.sg sg/xenc-schema.sg sg/saml-schema-metadata-2.0.sg sg/oasis-sstc-saml-schema-protocol-1.1.sg sg/oasis-sstc-saml-schema-assertion-1.1.sg sg/liberty-idff-protocols-schema-1.2-errata-v2.0.sg sg/liberty-authentication-context-v2.0.sg 898 899endif 900 901# SAML 1.1 902 903ifeq ($(ENA_SAML11),1) 904 905ZX_SG += sg/oasis-sstc-saml-schema-protocol-1.1.sg sg/oasis-sstc-saml-schema-assertion-1.1.sg 906ZX_ROOTS += -r sa11:Assertion -r sp11:Request -r sp11:Response 907 908endif 909 910# Liberty ID-FF 1.2 911 912ifeq ($(ENA_FF12),1) 913 914ZX_SG += sg/liberty-idff-protocols-schema-1.2-errata-v2.0.sg sg/liberty-authentication-context-v2.0.sg 915ZX_ROOTS+= -r ff12:Assertion -r ff12:AuthnRequest -r ff12:AuthnResponse 916ZX_ROOTS+= -r ff12:AuthnRequestEnvelope -r ff12:AuthnResponseEnvelope 917ZX_ROOTS+= -r ff12:RegisterNameIdentifierRequest -r ff12:RegisterNameIdentifierResponse 918ZX_ROOTS+= -r ff12:FederationTerminationNotification 919ZX_ROOTS+= -r ff12:LogoutRequest -r ff12:LogoutResponse 920ZX_ROOTS+= -r ff12:NameIdentifierMappingRequest -r ff12:NameIdentifierMappingResponse 921ZX_SG+= sg/liberty-metadata-v2.0.sg 922ZX_ROOTS+= -r m20:EntityDescriptor -r m20:EntitiesDescriptor 923 924endif 925 926# Liberty ID-WSF 1.1 927 928ifeq ($(ENA_WSF11),1) 929 930ZX_SG += sg/liberty-idwsf-soap-binding-v1.2.sg sg/liberty-idwsf-security-mechanisms-v1.2.sg 931ZX_SG += sg/liberty-idwsf-disco-svc-v1.2.sg sg/liberty-idwsf-interaction-svc-v1.1.sg 932 933endif 934 935# WS-Trust 936 937ifeq ($(ENA_WST),1) 938 939ZX_SG += sg/ws-trust-1.3.sg sg/ws-policy.sg sg/ws-secureconversation-1.3.sg 940 941endif 942 943# TAS3 944 945ifeq ($(ENA_TAS3),1) 946 947ZX_SG += sg/tas3.sg sg/tas3sol.sg 948 949endif 950 951# 952# Generated files (the zxid/c subdirectory) (see also Manifest if you add files) 953# 954 955ZX_GEN_GPERF=\ 956 c/zx-a.gperf c/zx-di12.gperf c/zx-lu.gperf c/zx-xenc.gperf \ 957 c/zx-ac.gperf c/zx-m20.gperf c/zx-sec.gperf c/zx-exca.gperf \ 958 c/zx-b.gperf c/zx-ds.gperf c/zx-md.gperf c/zx-sec12.gperf \ 959 c/zx-b12.gperf c/zx-e.gperf c/zx-sp.gperf \ 960 c/zx-ff12.gperf c/zx-sa.gperf c/zx-sp11.gperf \ 961 c/zx-is.gperf c/zx-sa11.gperf c/zx-wsse.gperf \ 962 c/zx-di.gperf c/zx-is12.gperf c/zx-sbf.gperf c/zx-wsu.gperf \ 963 c/zx-ecp.gperf c/zx-paos.gperf c/zx-dap.gperf c/zx-ps.gperf \ 964 c/zx-im.gperf c/zx-as.gperf c/zx-subs.gperf c/zx-dst.gperf \ 965 c/zx-cb.gperf c/zx-cdm.gperf c/zx-gl.gperf c/zx-mm7.gperf \ 966 c/zx-wst.gperf c/zx-wsp.gperf c/zx-wsc.gperf \ 967 c/zx-xa.gperf c/zx-xac.gperf c/zx-xasa.gperf c/zx-xasp.gperf \ 968 c/zx-xasacd1.gperf c/zx-xaspcd1.gperf \ 969 c/zx-dp.gperf c/zx-pmm.gperf c/zx-prov.gperf c/zx-idp.gperf c/zx-shps.gperf \ 970 c/zx-demomed.gperf c/zx-hrxml.gperf c/zx-idhrxml.gperf \ 971 c/zx-tas3.gperf c/zx-tas3sol.gperf c/zx-shibmd.gperf c/zx-idpdisc.gperf \ 972 c/zx-xml.gperf 973 974ZX_GEN_H=\ 975 c/zx-a-data.h c/zx-di12-data.h c/zx-lu-data.h c/zx-xenc-data.h \ 976 c/zx-ac-data.h c/zx-m20-data.h c/zx-sec-data.h c/zx-exca-data.h \ 977 c/zx-b-data.h c/zx-ds-data.h c/zx-md-data.h c/zx-sec12-data.h \ 978 c/zx-b12-data.h c/zx-e-data.h c/zx-ns.h c/zx-sp-data.h \ 979 c/zx-ff12-data.h c/zx-sa-data.h c/zx-sp11-data.h \ 980 c/zx-data.h c/zx-is-data.h c/zx-sa11-data.h c/zx-wsse-data.h \ 981 c/zx-di-data.h c/zx-is12-data.h c/zx-sbf-data.h c/zx-wsu-data.h \ 982 c/zx-ecp-data.h c/zx-paos-data.h c/zx-dap-data.h c/zx-ps-data.h \ 983 c/zx-im-data.h c/zx-as-data.h c/zx-subs-data.h c/zx-dst-data.h \ 984 c/zx-cb-data.h c/zx-cdm-data.h c/zx-gl-data.h c/zx-mm7-data.h \ 985 c/zx-wst-data.h c/zx-wsp-data.h c/zx-wsc-data.h \ 986 c/zx-xa-data.h c/zx-xac-data.h c/zx-xasa-data.h c/zx-xasp-data.h \ 987 c/zx-xasacd1-data.h c/zx-xaspcd1-data.h \ 988 c/zx-dp-data.h c/zx-pmm-data.h c/zx-prov-data.h c/zx-idp-data.h c/zx-shps-data.h \ 989 c/zx-demomed-data.h c/zx-hrxml-data.h c/zx-idhrxml-data.h \ 990 c/zx-xsi-data.h c/zx-xs-data.h c/zx-xml-data.h \ 991 c/zx-tas3-data.h c/zx-tas3sol-data.h c/zx-shibmd-data.h c/zx-idpdisc-data.h 992 993ZX_GEN_GETPUT_C= \ 994 c/zx-is-getput.c \ 995 c/zx-di12-getput.c c/zx-sa11-getput.c c/zx-sp11-getput.c \ 996 c/zx-a-getput.c \ 997 c/zx-is12-getput.c \ 998 c/zx-sbf-getput.c c/zx-wsse-getput.c \ 999 c/zx-ac-getput.c \ 1000 c/zx-lu-getput.c \ 1001 c/zx-ds-getput.c c/zx-wsu-getput.c \ 1002 c/zx-b-getput.c c/zx-m20-getput.c \ 1003 c/zx-e-getput.c c/zx-sec-getput.c c/zx-xenc-getput.c \ 1004 c/zx-b12-getput.c c/zx-ff12-aux.c c/zx-md-getput.c c/zx-sec12-enc.c \ 1005 c/zx-sec12-getput.c \ 1006 c/zx-ff12-getput.c \ 1007 c/zx-getput.c \ 1008 c/zx-di-getput.c c/zx-sa-getput.c c/zx-sp-getput.c \ 1009 c/zx-sp11-aux.c \ 1010 c/zx-ecp-getput.c \ 1011 c/zx-paos-getput.c \ 1012 c/zx-dap-getput.c \ 1013 c/zx-ps-getput.c \ 1014 c/zx-im-getput.c \ 1015 c/zx-as-getput.c \ 1016 c/zx-subs-getput.c \ 1017 c/zx-dst-getput.c \ 1018 c/zx-cb-getput.c \ 1019 c/zx-cdm-getput.c \ 1020 c/zx-gl-getput.c \ 1021 c/zx-mm7-getput.c \ 1022 c/zx-wst-getput.c \ 1023 c/zx-wsp-getput.c \ 1024 c/zx-wsc-getput.c \ 1025 c/zx-xa-getput.c \ 1026 c/zx-xac-getput.c \ 1027 c/zx-xasa-getput.c \ 1028 c/zx-xasacd1-getput.c \ 1029 c/zx-xasp-getput.c \ 1030 c/zx-xaspcd1-getput.c \ 1031 c/zx-dp-getput.c \ 1032 c/zx-pmm-getput.c \ 1033 c/zx-prov-getput.c \ 1034 c/zx-idp-getput.c \ 1035 c/zx-shps-getput.c \ 1036 c/zx-exca-getput.c \ 1037 c/zx-hrxml-getput.c \ 1038 c/zx-idhrxml-getput.c \ 1039 c/zx-demomed-getput.c \ 1040 c/zx-xsi-getput.c \ 1041 c/zx-xs-getput.c \ 1042 c/zx-xml-getput.c \ 1043 c/zx-tas3-getput.c \ 1044 c/zx-tas3sol-getput.c \ 1045 c/zx-shibmd-getput.c \ 1046 c/zx-idpdisc-getput.c 1047 1048ZX_GEN_AUX_C= \ 1049 c/zx-a-aux.c c/zx-is12-aux.c \ 1050 c/zx-sbf-aux.c c/zx-wsse-aux.c \ 1051 c/zx-ac-aux.c c/zx-lu-aux.c \ 1052 c/zx-ds-aux.c c/zx-wsu-aux.c \ 1053 c/zx-aux.c c/zx-b-aux.c c/zx-m20-aux.c \ 1054 c/zx-e-aux.c c/zx-sec-aux.c c/zx-xenc-aux.c \ 1055 c/zx-b12-aux.c c/zx-md-aux.c \ 1056 c/zx-sec12-aux.c \ 1057 c/zx-ff12-aux.c c/zx-di-aux.c c/zx-sa-aux.c c/zx-sp-aux.c \ 1058 c/zx-is-aux.c \ 1059 c/zx-di12-aux.c c/zx-sa11-aux.c c/zx-sp11-aux.c \ 1060 c/zx-ecp-aux.c c/zx-paos-aux.c \ 1061 c/zx-dap-aux.c c/zx-ps-aux.c c/zx-im-aux.c \ 1062 c/zx-as-aux.c c/zx-subs-aux.c c/zx-dst-aux.c \ 1063 c/zx-cb-aux.c c/zx-cdm-aux.c c/zx-gl-aux.c \ 1064 c/zx-mm7-aux.c c/zx-wst-aux.c c/zx-wsp-aux.c \ 1065 c/zx-wsc-aux.c c/zx-xa-aux.c c/zx-xac-aux.c \ 1066 c/zx-xasa-aux.c c/zx-xasacd1-aux.c c/zx-xasp-aux.c \ 1067 c/zx-xaspcd1-aux.c c/zx-dp-aux.c c/zx-pmm-aux.c \ 1068 c/zx-prov-aux.c c/zx-idp-aux.c c/zx-shps-aux.c \ 1069 c/zx-exca-aux.c c/zx-hrxml-aux.c c/zx-idhrxml-aux.c \ 1070 c/zx-demomed-aux.c c/zx-xsi-aux.c c/zx-xs-aux.c \ 1071 c/zx-xml-aux.c c/zx-tas3-aux.c c/zx-tas3sol-aux.c \ 1072 c/zx-shibmd-aux.c c/zx-idpdisc-aux.c 1073 1074ZX_GEN_C= \ 1075 c/zx-di12-dec.c c/zx-sa11-dec.c c/zx-sp11-dec.c \ 1076 c/zx-a-dec.c \ 1077 c/zx-is12-dec.c c/zx-sbf-dec.c c/zx-wsse-dec.c \ 1078 c/zx-ac-dec.c c/zx-lu-dec.c \ 1079 c/zx-ds-dec.c c/zx-wsu-dec.c \ 1080 c/zx-b-dec.c c/zx-m20-dec.c \ 1081 c/zx-e-dec.c c/zx-sec-dec.c c/zx-xenc-dec.c \ 1082 c/zx-b12-dec.c c/zx-md-dec.c c/zx-sec12-dec.c \ 1083 c/zx-dec.c c/zx-ff12-dec.c \ 1084 c/zx-di-dec.c c/zx-sa-dec.c c/zx-sp-dec.c \ 1085 c/zx-is-dec.c c/zx-ecp-dec.c c/zx-paos-dec.c \ 1086 c/zx-dap-dec.c c/zx-ps-dec.c c/zx-im-dec.c \ 1087 c/zx-as-dec.c c/zx-subs-dec.c c/zx-dst-dec.c \ 1088 c/zx-cb-dec.c c/zx-cdm-dec.c c/zx-gl-dec.c \ 1089 c/zx-mm7-dec.c c/zx-wst-dec.c c/zx-wsp-dec.c \ 1090 c/zx-wsc-dec.c c/zx-xa-dec.c c/zx-xac-dec.c \ 1091 c/zx-xasa-dec.c c/zx-xasacd1-dec.c c/zx-xasp-dec.c \ 1092 c/zx-xaspcd1-dec.c c/zx-dp-dec.c c/zx-pmm-dec.c \ 1093 c/zx-prov-dec.c c/zx-idp-dec.c c/zx-shps-dec.c \ 1094 c/zx-exca-dec.c c/zx-hrxml-dec.c c/zx-idhrxml-dec.c \ 1095 c/zx-demomed-dec.c c/zx-xsi-dec.c c/zx-xs-dec.c \ 1096 c/zx-xml-dec.c c/zx-tas3-dec.c c/zx-tas3sol-dec.c \ 1097 c/zx-shibmd-dec.c c/zx-idpdisc-dec.c 1098 1099ifeq ($(ENA_GEN),1) 1100 1101### Schema based code generation 1102### If this runs over and over again, check timestamps in sg/ directory, or make -d -p 1103# gperf mystery flags explanation (most of these should be set via directives in .gperf source) 1104# -t programmer supplied struct type 1105# -T prevent the struct type from leaking in output (it is properly available from zx.h) 1106# -K indicate key field name (when not "name") 1107# -D duplicates allowed 1108# -C constant (readonly) tables 1109# -l compare key lengths before strcmp, nul byte compatibility 1110# -G global static table (i.e. not hidden as function static variable) 1111# -P pic tables (starting with int) for faster dynamic linking 1112# -W arg Word array name 1113# -N arg Lookup function name 1114 1115$(XSD2SG_PL): 1116 @ls $(XSD2SG_PL) || ( echo "You need to install xsd2sg.pl from Plaindoc distribution at http://zxid.org/plaindoc/pd.html. Not found $(XSD2SG)" && exit 2 ) 1117 1118c/zx-ns.gperf c/zx-attrs.gperf c/zx-elems.gperf $(ZX_GEN_C) $(ZX_GEN_H): $(ZX_SG) dec-templ.c enc-templ.c aux-templ.c getput-templ.c $(XSD2SG_PL) 1119 $(XSD2SG) -z zx -gen c/zx -p zx_ $(ZX_ROOTS) -S $(ZX_SG) >junk 1120 1121c/zx-ns.c: c/zx-ns.gperf 1122 @which $(GPERF) || ( echo "You need to install gperf from ftp.gnu.org. Not found $(GPERF)" && exit 2 ) 1123 $(GPERF) $< | $(PERL) ./sed-zxid.pl nss >$@ 1124 1125#c/%.c: c/%.gperf 1126# @which $(GPERF) || ( echo "You need to install gperf from ftp.gnu.org. Not found $(GPERF)" && exit 2 ) 1127# $(GPERF) -l $< | $(PERL) ./sed-zxid.pl elems >$@ 1128 1129c/zx-attrs.c: c/zx-attrs.gperf 1130 @which $(GPERF) || ( echo "You need to install gperf from ftp.gnu.org. Not found $(GPERF)" && exit 2 ) 1131 $(GPERF) $< | $(PERL) ./sed-zxid.pl attrs >$@ 1132 1133c/zx-elems.c: c/zx-elems.gperf 1134 @which $(GPERF) || ( echo "You need to install gperf from ftp.gnu.org. Not found $(GPERF)" && exit 2 ) 1135 $(GPERF) $< | $(PERL) ./sed-zxid.pl elems >$@ 1136 1137c/zx-const.h: c/zx-ns.c c/zx-attrs.c c/zx-elems.c 1138 $(PERL) ./gen-consts-from-gperf-output.pl zx_ $^ >$@ 1139 1140# cat c/zx-ns.c | $(PERL) gen-consts-from-gperf-output.pl zx_ _NS zx_ns_tab >$@ 1141# cat c/zx-attrs.c | $(PERL) gen-consts-from-gperf-output.pl zx_ _ATTR zx_at_tab >>$@ 1142# cat c/zx-elems.c | $(PERL) gen-consts-from-gperf-output.pl zx_ _ELEM zx_el_tab >>$@ 1143 1144#c/zx-const.h: c/zx-attrs.c c/zx-ns.c 1145# cat c/zx-attrs.c | $(PERL) gen-consts-from-gperf-output.pl zx_ _ATTR zx_at_tab >$@ 1146# cat c/zx-ns.c | $(PERL) gen-consts-from-gperf-output.pl zx_ _NS zx_ns_tab >>$@ 1147 1148# Other 1149 1150# N.B. echo(1) command of some shells, such as dash, is broken such that the \n\ sequence 1151# is not preserved. 1152 1153c/license.c: LICENSE-2.0.txt sed-zxid.pl 1154 $(PERL) ./sed-zxid.pl license <LICENSE-2.0.txt >$@ 1155 1156c/zxidvers.h: sed-zxid.pl 1157 $(PERL) ./sed-zxid.pl zxidvers $(ZXIDVERSION) $(ZXIDREL) <zxrev >$@ 1158 1159gen: c/zxidvers.h c/license.c c/zx-const.h c/zx-attrs.gperf 1160 1161genwrap: gen zxidjava/zxid_wrap.c Net/SAML_wrap.c php/zxid_wrap.c py/zxid_wrap.c ruby/zxid_wrap.c csharp/zxid_wrap.c 1162 1163# make cleany && make genwrap ENA_GEN=1 && make all ENA_GEN=1 1164 1165endif 1166 1167updatevers: 1168 rm -f c/zxidvers.h 1169 $(MAKE) c/zxidvers.h ENA_GEN=1 1170 1171### 1172### Perl Modules 1173### 1174 1175# Main Net::SAML module - high level APIs 1176 1177ifeq ($(ENA_GEN),1) 1178 1179Net/SAML_wrap.c Net/SAML.pm: $(ZX_GEN_H) zxid.h zxid.i 1180 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1181 $(SWIG) -o Net/SAML_wrap.c -perl zxid.i 1182 $(PERL) -pi -e 's/\*zxid_/*/i; s/\*SAML2?_/*/i' Net/SAML.pm 1183 1184# Net::SAML::Metadata - low level metadata APIs 1185 1186Metadata/Metadata_wrap.c Metadata/Metadata.pm: $(ZX_GEN_H) zxidmd.i 1187 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1188 $(SWIG) -o Metadata/Metadata_wrap.c -perl zxidmd.i 1189 $(PERL) -pi -e 's/\*SAML2?_/*/i' Metadata/Metadata.pm 1190 1191# Net::SAML::Raw - low level assertion and protocol APIs 1192 1193Raw/Raw_wrap.c Raw/Raw.pm: $(ZX_GEN_H) zxidraw.i 1194 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1195 $(SWIG) -o Raw/Raw_wrap.c -perl zxidraw.i 1196 $(PERL) -pi -e 's/\*SAML2?_/*/i' Raw/Raw.pm 1197 1198# Net::WSF::WSC - high level APIs for implementing WSC 1199 1200WSC/WSC_wrap.c WSC/WSC.pm: $(ZX_GEN_H) zxwsc.h wsc.i 1201 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1202 $(SWIG) -o WSC/WSC_wrap.c -perl wsc.i 1203 $(PERL) -pi -e 's/\*zxwsc_/*/i; s/\*SAML2?_/*/i' WSC/WSC.pm 1204 1205# Net::WSF::Raw - low level protocol APIs 1206 1207WSF_Raw/Raw_wrap.c WSF_Raw/Raw.pm: $(ZX_GEN_H) wsfraw.i 1208 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1209 $(SWIG) -o WSF_Raw/Raw_wrap.c -perl wsfraw.i 1210 $(PERL) -pi -e 's/\*zxwsc_/*/i; s/\*SAML2?_/*/i' WSF_Raw/Raw.pm 1211 1212endif 1213 1214# Overall 1215 1216samlmod Net/Makefile: Net/SAML_wrap.c Net/SAML.pm $(LIBZXID_A) 1217 cd Net; $(PERL) Makefile.PL && $(MAKE) 1218 1219samlmod_install: Net/Makefile 1220 cd Net; $(MAKE) install 1221 1222samlmod_install_adhoc: Net/Makefile 1223 mkdir -p /usr/local/lib/site_perl/Net/ 1224 mkdir -p /usr/local/lib/site_perl/auto/Net/SAML/ 1225 cp Net/SAML.pm /usr/local/lib/site_perl/Net/ 1226 cp Net/blib/arch/auto/Net/SAML/SAML.bs /usr/local/lib/site_perl/auto/Net/SAML/ 1227 cp Net/blib/arch/auto/Net/SAML/SAML.so /usr/local/lib/site_perl/auto/Net/SAML/ 1228 1229mdmod: Metadata/Metadata_wrap.c Metadata/Metadata.pm 1230 cd Metadata; $(PERL) Makefile.PL && $(MAKE) 1231 1232rawmod: Raw/Raw.pm Raw/Raw_wrap.c 1233 cd Raw; $(PERL) Makefile.PL && $(MAKE) 1234 1235wscmod: WSC/WSC.pm WSC/WSC_wrap.c 1236 cd WSC; $(PERL) Makefile.PL && $(MAKE) 1237 1238wsfrawmod: WSF_Raw/Raw.pm WSF_Raw/Raw_wrap.c 1239 cd WSF_Raw; $(PERL) Makefile.PL && $(MAKE) 1240 1241ifeq ($(TARGET),xmingw64) 1242 1243Net/SAML_wrap.$(OBJ_EXT): Net/SAML_wrap.c 1244 $(warning SAMLWRAP) 1245 $(CC) -c $(OUTOPT)$@ $(CFLAGS) $(CDEF) $(CINC) $< 1246 1247endif 1248 1249perlmod: samlmod 1250 1251perlzxid: samlmod 1252 1253perlzxid_install: samlmod_install 1254 1255perlclean: 1256 @$(ECHO) ------------------ Making perlclean 1257 rm -rf Net/blib Net/*~ Net/*.o Net/Makefile Net/Makefile.old Net/SAML.bs 1258 rm -rf Metadata/blib Metadata/*~ Metadata/*.o Metadata/Makefile Metadata/Makefile.old Metadata/Metadata.bs 1259 rm -rf Raw/blib Raw/*~ Raw/*.o Raw/Makefile Raw/Makefile.old Raw/Raw.bs 1260 rm -rf WSC/blib WSC/*~ WSC/*.o WSC/Makefile WSC/Makefile.old WSC/WSC.bs 1261 rm -rf WSF_Raw/blib WSF_Raw/*~ WSF_Raw/*.o WSF_Raw/Makefile WSF_Raw/Makefile.old WSF_Raw/Raw.bs 1262 1263perlcleaner: perlclean 1264 @$(ECHO) ------------------ Making perlcleaner 1265 rm -f Net/SAML.pm Net/SAML_wrap.c 1266 rm -f Metadata/Metadata_wrap.c Metadata/Metadata.pm 1267 rm -f Raw/Raw.pm Raw/Raw_wrap.c 1268 rm -f WSC/WSC.pm WSC/WSC_wrap.c 1269 rm -f WSF_Raw/Raw.pm WSF_Raw/Raw_wrap.c 1270 1271### 1272### PHP Module 1273### 1274 1275ifeq ($(ENA_GEN),1) 1276 1277php/zxid_wrap.c php/zxid.php php/php_zxid.h php/Makefile: $(ZX_GEN_H) zxid.h phpzxid.i 1278 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1279 cd php; $(SWIG) -o zxid_wrap.c -noproxy -php ../phpzxid.i 1280 1281endif 1282 1283# -Wno-unused-label 1284 1285php/zxid_wrap.$(OBJ_EXT): php/zxid_wrap.c 1286 $(warning PHPWRAP) 1287 $(CC) -c $(OUTOPT)$@ `$(PHP_CONFIG) --includes` $(CFLAGS) $(CDEF) $(CINC) $< 1288 1289php/php_zxid$(SO): php/zxid_wrap.$(OBJ_EXT) $(LIBZXID_A) 1290 $(warning PHPLINK) 1291 $(LD) $(LDFLAGS) $(OUTOPT)php/php_zxid$(SO) -shared php/zxid_wrap.$(OBJ_EXT) $(LIBZXID) $(LIBS) 1292 1293phpzxid: php/php_zxid$(SO) 1294 1295phpzxid_install: php/php_zxid$(SO) 1296 @$(ECHO) Installing in `$(PHP_CONFIG) --extension-dir` 1297 mkdir -p `$(PHP_CONFIG) --extension-dir` 1298 $(CP) $< `$(PHP_CONFIG) --extension-dir` 1299 1300#cp zxid.ini `$(PHP_CONFIG) --extension-dir` 1301 1302phpclean: 1303 rm -rf php/*.$(OBJ_EXT) php/*~ php/*$(SO) 1304 1305phpcleaner: phpclean 1306 rm -rf php/php_zxid.h php/zxid.php php/zxid_wrap.c 1307 1308### 1309### Python Module (*** Never tested) 1310### 1311 1312ifeq ($(ENA_GEN),1) 1313 1314py/zxid_wrap.c py/zxid.py py/Makefile: $(ZX_GEN_H) zxid.h pyzxid.i 1315 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1316 cd py; $(SWIG) -o zxid_wrap.c -python ../pyzxid.i 1317 1318endif 1319 1320py/zxid_wrap.$(OBJ_EXT): py/zxid_wrap.c 1321 $(CC) -c $(OUTOPT)$@ `$(PY_CONFIG) --includes` $(CFLAGS) $(CDEF) $(CINC) $< 1322 1323py/py_zxid$(SO): py/zxid_wrap.$(OBJ_EXT) $(LIBZXID_A) 1324 $(LD) $(LDFLAGS) $(OUTOPT)py/py_zxid$(SO) -shared py/zxid_wrap.$(OBJ_EXT) $(LIBZXID) $(LIBS) 1325 1326pyzxid: py/py_zxid$(SO) 1327 1328pyzxid_install: py/py_zxid$(SO) 1329 @$(ECHO) Installing in `$(PY_CONFIG) --extension-dir` 1330 mkdir -p `$(PY_CONFIG) --extension-dir` 1331 $(CP) $< `$(PY_CONFIG) --extension-dir` 1332 1333pyclean: 1334 rm -rf py/*.$(OBJ_EXT) py/*~ py/*$(SO) 1335 1336pycleaner: pyclean 1337 rm -rf py/zxid.py py/zxid_wrap.c 1338 1339### 1340### Ruby Module (*** Never tested) 1341### 1342 1343ifeq ($(ENA_GEN),1) 1344 1345ruby/zxid_wrap.c ruby/zxid.ruby ruby/Makefile: $(ZX_GEN_H) zxid.h rubyzxid.i 1346 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1347 cd ruby; $(SWIG) -o zxid_wrap.c -ruby ../rubyzxid.i 1348 1349endif 1350 1351ruby/zxid_wrap.$(OBJ_EXT): ruby/zxid_wrap.c 1352 $(CC) -c $(OUTOPT)$@ `$(RUBY_CONFIG) --includes` $(CFLAGS) $(CDEF) $(CINC) $< 1353 1354ruby/ruby_zxid$(SO): ruby/zxid_wrap.$(OBJ_EXT) $(LIBZXID_A) 1355 $(LD) $(LDFLAGS) $(OUTOPT)ruby/ruby_zxid$(SO) -shared ruby/zxid_wrap.$(OBJ_EXT) $(LIBZXID) $(LIBS) 1356 1357rubyzxid: ruby/ruby_zxid$(SO) 1358 1359rubyzxid_install: ruby/ruby_zxid$(SO) 1360 @$(ECHO) Installing in `$(RUBY_CONFIG) --extension-dir` 1361 mkdir -p `$(RUBY_CONFIG) --extension-dir` 1362 $(CP) $< `$(RUBY_CONFIG) --extension-dir` 1363 1364rubyclean: 1365 rm -rf ruby/*.$(OBJ_EXT) ruby/*~ ruby/*$(SO) 1366 1367rubycleaner: rubyclean 1368 rm -rf ruby/zxid.ruby ruby/zxid_wrap.c 1369 1370### 1371### C# (csharp) Module (*** Poorly tested) 1372### 1373 1374ifeq ($(ENA_GEN),1) 1375 1376csharp/zxid_wrap.c csharp/zxid.csharp csharp/Makefile: $(ZX_GEN_H) zxid.h csharpzxid.i 1377 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1378 cd csharp; $(SWIG) -o zxid_wrap.c -noproxy -csharp ../csharpzxid.i 1379 1380endif 1381 1382csharp/zxid_wrap.$(OBJ_EXT): csharp/zxid_wrap.c 1383 $(CC) -c $(OUTOPT)$@ `$(CSHARP_CONFIG) --includes` $(CFLAGS) $(CDEF) $(CINC) $< 1384 1385csharp/csharp_zxid$(SO): csharp/zxid_wrap.$(OBJ_EXT) $(LIBZXID_A) 1386 $(LD) $(LDFLAGS) $(OUTOPT)csharp/csharp_zxid$(SO) -shared csharp/zxid_wrap.$(OBJ_EXT) $(LIBZXID) $(LIBS) 1387 1388csharpzxid: csharp/csharp_zxid$(SO) 1389 1390csharpzxid_install: csharp/csharp_zxid$(SO) 1391 @$(ECHO) Installing in `$(CSHARP_CONFIG) --extension-dir` 1392 mkdir -p `$(CSHARP_CONFIG) --extension-dir` 1393 $(CP) $< `$(CSHARP_CONFIG) --extension-dir` 1394 1395csharpclean: 1396 rm -rf csharp/*.$(OBJ_EXT) csharp/*~ csharp/*$(SO) 1397 1398csharpcleaner: csharpclean 1399 rm -rf csharp/zxid.csharp csharp/zxid_wrap.c 1400 1401### 1402### Java JNI Module 1403### 1404 1405ifeq ($(ENA_GEN),1) 1406 1407zxidjava/zxid_wrap.c: $(ZX_GEN_H) zxid.h javazxid.i 1408 @which $(SWIG) || ( echo "You need to install swig-1.3.x from swig.org. Not found $(SWIG)" && exit 2 ) 1409 cd zxidjava; $(SWIG) -noproxy -Dconst= -w451 -o zxid_wrap.c -java -package zxidjava ../javazxid.i 1410 $(PERL) -pi -e 's/SWIGTYPE_p_zxid_conf/zxid_conf/g' zxidjava/*.java 1411 mv zxidjava/SWIGTYPE_p_zxid_conf.java zxidjava/zxid_conf.java 1412 $(PERL) -pi -e 's/SWIGTYPE_p_zxid_ses/zxid_ses/g' zxidjava/*.java 1413 mv zxidjava/SWIGTYPE_p_zxid_ses.java zxidjava/zxid_ses.java 1414 $(PERL) -pi -e 's/SWIGTYPE_p_zxid_cgi/zxid_cgi/g' zxidjava/*.java 1415 mv zxidjava/SWIGTYPE_p_zxid_cgi.java zxidjava/zxid_cgi.java 1416 $(PERL) -pi -e 's/SWIGTYPE_p_zxid_entity_s/zxid_entity/g' zxidjava/*.java 1417 mv zxidjava/SWIGTYPE_p_zxid_entity_s.java zxidjava/zxid_entity.java 1418 $(PERL) -pi -e 's/SWIGTYPE_p_zx_sa_Assertion_s/zxid_a7n/g' zxidjava/*.java 1419 mv zxidjava/SWIGTYPE_p_zx_sa_Assertion_s.java zxidjava/zxid_a7n.java 1420 $(PERL) -pi -e 's/SWIGTYPE_p_zx_sa_NameID_s/zxid_nid/g' zxidjava/*.java 1421 mv zxidjava/SWIGTYPE_p_zx_sa_NameID_s.java zxidjava/zxid_nid.java 1422 $(PERL) -pi -e 's/SWIGTYPE_p_zx_a_EndpointReference_s/zxid_epr/g' zxidjava/*.java 1423 mv zxidjava/SWIGTYPE_p_zx_a_EndpointReference_s.java zxidjava/zxid_epr.java 1424 $(PERL) -pi -e 's/SWIGTYPE_p_zx_tas3_Status_s/zxid_tas3_status/g' zxidjava/*.java 1425 mv zxidjava/SWIGTYPE_p_zx_tas3_Status_s.java zxidjava/zxid_tas3_status.java 1426 $(PERL) -pi -e 's/SWIGTYPE_p_zx_e_Fault_s/zxid_fault/g' zxidjava/*.java 1427 mv zxidjava/SWIGTYPE_p_zx_e_Fault_s.java zxidjava/zxid_fault.java 1428 $(PERL) -pi -e 's/SWIGTYPE_p_zx_sec_Token_s/zxid_tok/g' zxidjava/*.java 1429 mv zxidjava/SWIGTYPE_p_zx_sec_Token_s.java zxidjava/zxid_tok.java 1430 $(PERL) -pi -e 's/(public static \w+ )zxid_/$$1/' zxidjava/zxidjni.java 1431 1432endif 1433 1434ifeq ($(TARGET),win32cl) 1435zxidjava/zxid_wrap.$(OBJ_EXT): zxidjava/zxid_wrap.c 1436 $(warning JAVAWRAP) 1437 $(CC) -c $< -Fozxid_wrap.obj $(JNI_INC) $(CFLAGS) $(CDEF) $(CINC) 1438 $(CP) zxid_wrap.obj $@ 1439else 1440zxidjava/zxid_wrap.$(OBJ_EXT): zxidjava/zxid_wrap.c 1441 $(warning JAVAWRAP) 1442 $(CC) -c $< $(OUTOPT)$@ $(JNI_INC) $(CFLAGS) $(CDEF) $(CINC) 1443endif 1444 1445$(ZXIDJNI_SO): zxidjava/zxid_wrap.$(OBJ_EXT) $(LIBZXID_A) 1446 $(warning JNILINK) 1447 $(LD) $(LDFLAGS) $(OUTOPT)$@ $(SHARED_FLAGS) $< $(SHARED_CLOSE) $(LIBZXID) $(SO_LIBS) 1448 1449#link -OUT:zxidjava/zxidjni.dll -DLL -LDd -MDd -shared --export-all-symbols zxidjava/zxid_wrap.obj zxid.lib -LIBPATH:"G:/cvsdev/libcurl-7.19.3-win32-ssl-msvc/"/lib/Debug -LIBPATH:"C:/OpenSSL/"/lib/VC -LIBPATH:"C:/Program Files/GnuWin32/"/lib curllib.lib libeay32MD.lib ssleay32MD.lib zlib.lib kernel32.lib user32.lib winmm.lib Ws2_32.lib -Wl,-no-whole-archive /SUBSYSTEM:WINDOWS /INCREMENTAL 1450 1451zxidjava/zxidjni.class: zxidjava/zxidjni.java 1452 cd zxidjava; $(JAVAC) $(JAVAC_FLAGS) *.java 1453 1454zxidjavatest.class: zxidjavatest.java zxidjava/zxidjni.class 1455 $(JAVAC) $(JAVAC_FLAGS) zxidjavatest.java 1456 1457zxid.class: zxid.java zxidjava/zxidjni.class 1458 $(JAVAC) $(JAVAC_FLAGS) zxidjava/*.java zxid.java 1459 1460zxidhlo.class: zxidhlo.java zxidjava/zxidjni.class 1461 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java zxidhlo.java 1462 1463zxidsrvlet.class: zxidsrvlet.java zxidjava/zxidjni.class 1464 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java zxidsrvlet.java 1465 1466app_demo.class: app_demo.java zxidjava/zxidjni.class 1467 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java app_demo.java 1468 1469zxidappdemo.class: zxidappdemo.java zxidjava/zxidjni.class 1470 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java zxidappdemo.java 1471 1472zxidwspdemo.class: zxidwspdemo.java zxidjava/zxidjni.class 1473 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java zxidwspdemo.java 1474 1475zxidwspleaf.class: zxidwspleaf.java zxidjava/zxidjni.class 1476 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java zxidwspleaf.java 1477 1478zxidwscprepdemo.class: zxidwscprepdemo.java zxidjava/zxidjni.class 1479 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java zxidwscprepdemo.java 1480 1481ZxidSSOFilter.class: ZxidSSOFilter.java zxidjava/zxidjni.class 1482 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java ZxidSSOFilter.java 1483 1484ZxidServlet.class: ZxidServlet.java zxidjava/zxidjni.class 1485 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java ZxidServlet.java 1486 1487zxidjava.jar: zxidjava/zxidjni.class zxidjava/README.zxid-java 1488 $(CP) COPYING LICENSE-2.0.txt LICENSE.openssl LICENSE.ssleay LICENSE.curl zxidjava/ 1489 $(JAR) cf zxidjava.jar zxidjava/*.class zxidjava/*.java zxidjava/COPYING zxidjava/LICENSE* 1490 1491zxiddemo.war: zxidjava.jar 1492 mkdir -p zxidservlet/WEB-INF/classes/ #mkdir -p zxidservlet/WEB-INF/classes/zxidjava/ 1493 $(CP) -f zxidjava.jar ./zxidservlet/WEB-INF/classes/ 1494 $(CP) -f ./servlet/WEB-INF/web.xml ./zxidservlet/WEB-INF/ 1495 $(CP) -f zxidsrvlet.class zxidappdemo.class zxidwscprepdemo.class zxidwspdemo.class zxidwspleaf.class zxidhlo.class zxidservlet/WEB-INF/classes/ 1496 cd ./zxidservlet ; $(JAR) cf ../zxiddemo.war *; cd ../ 1497 rm -rf zxidservlet 1498 1499javazxid: $(ZXIDJNI_SO) zxidjava/zxidjni.class zxidhlo.class zxidsrvlet.class zxidappdemo.class zxidwscprepdemo.class zxidwspdemo.class zxidwspleaf.class zxidjavatest.class zxidjava.jar zxiddemo.war 1500 1501# ZxidSSOFilter.class ZxidServlet.class 1502 1503javazxid_install: $(ZXIDJNI_SO) 1504 @$(ECHO) "javazxid_install: Work in Progress. See zxid-java.pd" 1505 1506# from Brian, somewhat obsoleted by zxiddemo.war 1507javazxid_war: 1508 mkdir -p zxidservlet/WEB-INF/classes/zxidjava/ 1509 $(CP) -f ./zxidjava/*.class ./zxidservlet/WEB-INF/classes/zxidjava/ 1510 $(CP) -f ./servlet/WEB-INF/web.xml ./zxidservlet/WEB-INF/ 1511 $(CP) -f zxidsrvlet.class zxidappdemo.class zxidwscprepdemo.class zxidwspdemo.class zxidwspleaf.class zxidhlo.class zxidservlet/WEB-INF/classes/ 1512 cd ./zxidservlet ; $(JAR) cf ../zxidservlet.war *; cd ../ 1513 rm -rf zxidservlet 1514 1515# rsync zxididp root@elsa:/var/zxid/webroot/apache-tomcat-5.5.20/webapps 1516# mv zxidservlet.war $(WEBAPPS_PATH)/ 1517 1518javaswigchk: 1519 ls zxidjava/SWIGTYPE*.java >foo 1520 fgrep zxidjava/SWIGTYPE Manifest | cmp - foo 1521 1522gitreaddnoc: 1523 git add zxidjava/*.java zxidjava/*.c Net/Makefile Net/SAML.pm Net/*.c php/*.[hc] 1524 1525gitreadd: 1526 git add zxidjava/*.java zxidjava/*.c Net/Makefile Net/SAML.pm Net/*.c php/*.[hc] c/*.[hc] 1527 1528javaclean: 1529 rm -rf zxidjava/*.$(OBJ_EXT) zxidjava/*~ zxidjava/*$(SO) zxidjava/*.class *.class 1530 1531javacleaner: javaclean 1532 rm -rf zxidjava/*.java zxidjava/zxid_wrap.c 1533 1534benessosrvlet.class: benessosrvlet.java zxidjava/zxidjni.class 1535 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java benessosrvlet.java 1536 1537benedemo.class: benedemo.java zxidjava/zxidjni.class 1538 $(JAVAC) $(JAVAC_FLAGS) -classpath $(SERVLET_PATH) zxidjava/*.java benedemo.java 1539 1540bene: benessosrvlet.class benedemo.class 1541 1542### 1543### Apache authentication module 1544### 1545 1546mod_auth_saml.$(OBJ_EXT): mod_auth_saml.c $(LIBZXID_A) 1547 $(warning MOD_AUTH_SAML COMPILE) 1548 $(CC) -o $@ -c $< $(CFLAGS) $(CDEF) $(CINC) $(APACHE_INC) $(APR_INC) 1549 1550mod_auth_saml$(SO): mod_auth_saml.$(OBJ_EXT) $(LIBZXID_A) 1551 $(warning MOD_AUTH_SAML LINK SO) 1552 $(LD) $(LDFLAGS) $(OUTOPT)mod_auth_saml$(SO) $(SHARED_FLAGS) mod_auth_saml.$(OBJ_EXT) $(SHARED_CLOSE) $(LIBZXID) $(MOD_AUTH_SAML_LIBS) $(LIBS) 1553 1554precheck_apache: precheck/chk-apache.$(OBJ_EXT) precheck/chk-apache 1555 precheck/chk-apache 1556 1557apachezxid: precheck_apache precheck mod_auth_saml$(SO) 1558 1559apachezxid_install: mod_auth_saml$(SO) 1560 $(CP) $< $(APACHE_MODULES) 1561 1562mod_auth_saml: apachezxid 1563 @$(ECHO) "mod_auth_saml: not an official target. Use make apachezxid" 1564 1565### 1566### mini_httpd with ZXID support. See also mini_httpd-1.19-zxid/Makefile 1567### for regular build without ZXID support. 1568### N.B. This is obsoleted by zxid_httpd, below. 1569 1570MINI_HTTPD_DIR?=mini_httpd-1.19-zxid 1571 1572$(MINI_HTTPD_DIR)/htpasswd: $(MINI_HTTPD_DIR)/htpasswd.$(OBJ_EXT) 1573 $(warning MINI_HTTPD COMPILE) 1574 $(LD) $(LDFLAGS) $(OUTOPT)$@$(EXE) $< $(LIBS) 1575 1576$(MINI_HTTPD_DIR)/mini_httpd_zxid$(EXE): $(MINI_HTTPD_DIR)/mini_httpd.$(OBJ_EXT) $(MINI_HTTPD_DIR)/match.$(OBJ_EXT) $(MINI_HTTPD_DIR)/tdate_parse.$(OBJ_EXT) mini_httpd_filter.$(OBJ_EXT) $(LIBZXID_A) 1577 $(warning MINI_HTTPD LINK) 1578 $(LD) $(LDFLAGS) $(OUTOPT)$@ $^ $(LIBZXID) $(LIBS) 1579 1580$(MINI_HTTPD_DIR)/mime_encodings.h: $(MINI_HTTPD_DIR)/mime_encodings.txt 1581 rm -f $@ 1582 sed < $^ > $@ \ 1583 -e 's/#.*//' -e 's/[ ]*$$//' -e '/^$$/d' \ 1584 -e 's/[ ][ ]*/", 0, "/' -e 's/^/{ "/' -e 's/$$/", 0 },/' 1585 1586$(MINI_HTTPD_DIR)/mime_types.h: $(MINI_HTTPD_DIR)/mime_types.txt 1587 rm -f $@ 1588 sed < $^ > $@ \ 1589 -e 's/#.*//' -e 's/[ ]*$$//' -e '/^$$/d' \ 1590 -e 's/[ ][ ]*/", 0, "/' -e 's/^/{ "/' -e 's/$$/", 0 },/' 1591 1592mini_httpd_zxid: $(MINI_HTTPD_DIR)/mini_httpd_zxid $(MINI_HTTPD_DIR)/htpasswd 1593 1594### 1595### zxid_httpd (derived from mini_httd). 1596### 1597 1598zxid_httpd$(EXE): zxid_httpd.$(OBJ_EXT) tdate_parse.$(OBJ_EXT) mini_httpd_filter.$(OBJ_EXT) $(LIBZXID_A) 1599 $(warning ZXID_HTTPD LINK) 1600 $(LD) $(LDFLAGS) $(OUTOPT)$@ $^ $(LIBS) 1601 1602### 1603### Binaries (most binaries are built by implicit rules) 1604### 1605 1606#zxid$(EXE): zxid.$(OBJ_EXT) $(LIBZXID_A) 1607 1608$(DEFAULT_EXE) $(ALL_EXE): $(LIBZXID_A) 1609 1610zxcot-static-x64: zxcot.$(OBJ_EXT) $(LIBZXID_A) 1611 diet gcc $(OUTOPT)$@$(EXE) $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1612 1613zxdecode-static-x64: zxdecode.$(OBJ_EXT) $(LIBZXID_A) 1614 diet gcc $(OUTOPT)$@$(EXE) $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1615 1616zxpasswd-static-x64: zxpasswd.$(OBJ_EXT) $(LIBZXID_A) 1617 diet gcc $(OUTOPT)$@$(EXE) $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1618 1619# *** unresolved link problem with __gcov_fork, which is not found in 3.4.6 libgcov.a 1620 1621zxcall-static-x64: zxcall.$(OBJ_EXT) $(LIBZXID_A) 1622 diet gcc $(OUTOPT)$@$(EXE) $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1623 1624zxumacall-static-x64: zxumacall.$(OBJ_EXT) $(LIBZXID_A) 1625 diet gcc $(OUTOPT)$@$(EXE) $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1626 1627zxidhlo-static-x64: zxidhlo.$(OBJ_EXT) $(LIBZXID_A) 1628 diet gcc $(OUTOPT)$@$(EXE) $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1629 1630zxididp-static$(EXE): zxididp.$(OBJ_EXT) $(LIBZXID_A) 1631 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< -static $(LIBZXID) $(LIBS) 1632 1633zxididp-semistatic$(EXE): zxididp.$(OBJ_EXT) $(LIBZXID_A) 1634 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< -static $(LIBZXID) $(LIBS) -dynamic -lc 1635 1636zxididp-static-x64: zxididp.$(OBJ_EXT) $(LIBZXID_A) 1637 diet gcc $(OUTOPT)$@ $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1638 1639# diet gcc -o zxididp zxididp.o -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1640 1641zxbench-static-x64: zxbench.$(OBJ_EXT) $(LIBZXID_A) 1642 diet gcc $(OUTOPT)$@ $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1643 1644ifeq ($(TARGET),mingw) 1645zxencdectest: 1646 echo "Port this for mingw" > zxencdectest 1647endif 1648 1649zxmqtest-zmq$(EXE): zxmqtest.$(OBJ_EXT) $(LIBZXID_A) 1650 $(LD) $(LDFLAGS) $(OUTOPT)$@$(EXE) $^ -lzmq $(LIBZXID) $(LIBS) 1651 1652zxmqtest.$(OBJ_EXT): zxmqtest.c 1653 $(CC) $(OUTOPT)$@ -c $^ $(CFLAGS) $(CDEF) $(CINC) -DOPENAMQ -I/apps/openamq/std/include 1654 1655zxmqtest-amq$(EXE): zxmqtest.$(OBJ_EXT) $(LIBZXID_A) 1656 $(LD) $(LDFLAGS) $(OUTOPT)$@ $^ -L/apps/openamq/std/lib -lamq_wireapi -lamq_common -lsmt -lasl -lipr -licl -lpcre -laprutil -lapr -lcrypt -lm $(LIBZXID) $(LIBS) 1657 1658zxlogview-static-x64: zxlogview.$(OBJ_EXT) $(LIBZXID_A) 1659 diet gcc $(OUTOPT)$@ $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1660 1661zxbustailf-static-x64: zxbustailf.$(OBJ_EXT) $(LIBZXID_A) 1662 diet gcc $(OUTOPT)$@ $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1663 1664zxbuslist-static-x64: zxbuslist.$(OBJ_EXT) $(LIBZXID_A) 1665 diet gcc $(OUTOPT)$@ $< -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1666 1667zxbusd: $(ZXBUSD_OBJ) $(LIBZXID_A) 1668 $(CC) $(OUTOPT)$@ $^ $(LIBS) 1669 1670zxbusd-static-x64: $(ZXBUSD_OBJ) $(LIBZXID_A) 1671 diet gcc $(OUTOPT)$@ $^ -static -L. -lzxid -pthread -lpthread -L$(DIET_ROOT)/lib -L$(DIET_ROOT)/ssl/lib-x86_64 -lcurl -lssl -lcrypto -lz 1672 1673zxidhrxml: zxidhrxmlwsc zxidhrxmlwsp 1674 1675### 1676### Libraries 1677### 1678 1679ifeq ($(PULVER),1) 1680 1681$(LIBZXID_A): $(ZX_OBJ) $(ZXID_LIB_OBJ) 1682 cat pulver/c_saml2_dec_c.deps | xargs $(ARC) $(LIBZXID_A) 1683 cat pulver/c_saml2_enc_c.deps | xargs $(ARC) $(LIBZXID_A) 1684 cat pulver/c_saml2_aux_c.deps | xargs $(ARC) $(LIBZXID_A) 1685 cat pulver/c_saml2_getput_c.deps | xargs $(ARC) $(LIBZXID_A) 1686 cat pulver/c_saml2md_dec_c.deps | xargs $(ARC) $(LIBZXID_A) 1687 cat pulver/c_saml2md_enc_c.deps | xargs $(ARC) $(LIBZXID_A) 1688 cat pulver/c_saml2md_aux_c.deps | xargs $(ARC) $(LIBZXID_A) 1689 cat pulver/c_saml2md_getput_c.deps | xargs $(ARC) $(LIBZXID_A) 1690 $(ARC) $(LIBZXID_A) $(ZXID_LIB_OBJ) 1691 1692# $(foreach fil,$^,$(shell $(ARC) $(LIBZXID_A) $(fil))) 1693 1694else 1695 1696ifeq ($(TARGET),win32cl) 1697$(LIBZXID_A): $(ZX_OBJ) $(ZX_GEN_C:.c=.obj) $(ZXID_LIB_OBJ) $(WSF_OBJ) $(OAUTH_OBJ) $(SMIME_LIB_OBJ) 1698 $(ARC) $(OUTOPT)zxid.lib $^ 1699else 1700$(LIBZXID_A): $(ZX_OBJ) $(ZX_GEN_C:.c=.o) $(ZXID_LIB_OBJ) $(WSF_OBJ) $(OAUTH_OBJ) $(SMIME_LIB_OBJ) 1701 $(ARC) $(LIBZXID_A) $^ 1702endif 1703endif 1704 1705libzxid.so.0.0: $(LIBZXID_A) 1706 $(LD) $(OUTOPT)libzxid.so.0.0 $(SHARED_FLAGS) $^ $(SHARED_CLOSE) $(LIBS) 1707 1708zxid.dll zxidimp.lib: $(LIBZXID_A) 1709 $(LD) $(OUTOPT)zxid.dll $(SHARED_FLAGS) -Wl,--output-def,zxid.def,--out-implib,zxidimp.lib $^ $(SHARED_CLOSE) $(SO_LIBS) 1710 1711# -mdll 1712 1713# N.B. Failing to supply -Wl,-no-whole-archive above will cause 1714# /apps/gcc/mingw/sysroot/lib/libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16' 1715# due to implicitly linked library libmingw32.a pulling in main. See also 1716# binutils ld info documentation (e.g. invocation/options specific to i386 PE 1717# targets). 1718 1719### 1720### TAS3 Project Specific Targets 1721### 1722 1723TAS3COMMONFILES=README.zxid-tas3 README.zxid Changes COPYING LICENSE-2.0.txt LICENSE.openssl LICENSE.ssleay LICENSE.curl Makefile zxmkdirs.sh 1724 1725TAS3MAS=T3-SSO-ZXID-MODAUTHSAML_$(ZXIDREL) 1726 1727tas3maspkg: mod_auth_saml$(SO) 1728 rm -rf $(TAS3MAS) $(TAS3MAS).zip 1729 mkdir $(TAS3MAS) 1730 $(PERL) ./sed-zxid.pl version $(ZXIDREL) < Manifest.T3-SSO-ZXID-MODAUTHSAML > $(TAS3MAS)/Manifest 1731 $(CP) mod_auth_saml$(SO) $(TAS3MAS) 1732 $(CP) $(TAS3COMMONFILES) $(TAS3MAS) 1733 zip -r $(TAS3MAS).zip $(TAS3MAS) 1734 1735TAS3PHP=T3-SSO-ZXID-PHP_$(ZXIDREL) 1736 1737tas3phppkg: php/php_zxid$(SO) 1738 rm -rf $(TAS3PHP) $(TAS3PHP).zip 1739 mkdir $(TAS3PHP) 1740 $(PERL) ./sed-zxid.pl version $(ZXIDREL) <Manifest.T3-SSO-ZXID-PHP >$(TAS3PHP)/Manifest 1741 $(CP) *.php php/php_zxid$(SO) php/zxid.php php/zxid.ini php/README.zxid-php zxid-php.pd $(TAS3PHP) 1742 $(CP) $(TAS3COMMONFILES) $(TAS3PHP) 1743 zip -r $(TAS3PHP).zip $(TAS3PHP) 1744 1745TAS3JAVA=T3-SSO-ZXID-JAVA_$(ZXIDREL) 1746 1747tas3javapkg: $(ZXIDJNI_SO) zxidjava/zxidjni.class 1748 rm -rf $(TAS3JAVA) $(TAS3JAVA).zip 1749 mkdir $(TAS3JAVA) 1750 mkdir $(TAS3JAVA)/zxidjava 1751 $(PERL) ./sed-zxid.pl version $(ZXIDREL) <Manifest.T3-SSO-ZXID-JAVA >$(TAS3JAVA)/Manifest 1752 $(CP) $(ZXIDJNI_SO) zxidjava/*.java zxidjava/*.class zxidjava/README.zxid-java zxid-java.pd $(TAS3JAVA)/zxidjava 1753 $(CP) $(TAS3COMMONFILES) $(TAS3JAVA) 1754 zip -r $(TAS3JAVA).zip $(TAS3JAVA) 1755 1756TAS3IDP=T3-IDP-ZXID_$(ZXIDREL) 1757 1758tas3idppkg: zxididp zxpasswd zxcot zxdecode 1759 rm -rf $(TAS3IDP) $(TAS3IDP).zip 1760 mkdir $(TAS3IDP) 1761 $(PERL) ./sed-zxid.pl version $(ZXIDREL) < Manifest.T3-IDP-ZXID > $(TAS3IDP)/Manifest 1762 $(CP) zxididp zxpasswd zxcot zxdecode zxid-idp.pd $(TAS3IDP) 1763 $(CP) $(TAS3COMMONFILES) $(TAS3IDP) 1764 zip -r $(TAS3IDP).zip $(TAS3IDP) 1765 1766TAS3LINUXX86=T3-ZXID-LINUX-X86_$(ZXIDREL) 1767 1768tas3linuxx86pkg: zxididp zxpasswd zxcot zxdecode zxlogview mod_auth_saml$(SO) php/php_zxid$(SO) $(ZXIDJNI_SO) zxidjava/zxidjni.class 1769 rm -rf $(TAS3LINUXX86) $(TAS3LINUXX86).zip 1770 mkdir $(TAS3LINUXX86) 1771 mkdir $(TAS3LINUXX86)/zxidjava 1772 mkdir $(TAS3LINUXX86)/php 1773 mkdir $(TAS3LINUXX86)/include 1774 mkdir $(TAS3LINUXX86)/include/zx 1775 mkdir $(TAS3LINUXX86)/include/zx/c 1776 $(PERL) ./sed-zxid.pl version $(ZXIDREL) < Manifest.T3-ZXID-LINUX-X86 > $(TAS3LINUXX86)/Manifest 1777 $(CP) mod_auth_saml$(SO) $(TAS3LINUXX86) 1778 $(CP) *.php zxid-php.pd $(TAS3LINUXX86) 1779 $(CP) php/php_zxid$(SO) php/zxid.php php/zxid.ini php/README.zxid-php $(TAS3LINUXX86)/php 1780 $(CP) zxididp zxpasswd zxcot zxdecode zxlogview zxid-idp.pd $(TAS3LINUXX86) 1781 $(CP) $(LIBZXID_A) $(TAS3LINUXX86) 1782 $(CP) $(ZXIDHDRS) $(TAS3LINUXX86)/include/zx 1783 $(CP) c/*.h $(TAS3LINUXX86)/include/zx/c 1784 $(CP) $(ZXIDJNI_SO) zxidjava/*.java zxidjava/*.class zxidjava/README.zxid-java zxid-java.pd $(TAS3LINUXX86)/zxidjava 1785 $(CP) $(TAS3COMMONFILES) $(TAS3LINUXX86) 1786 zip -r $(TAS3LINUXX86).zip $(TAS3LINUXX86) 1787 1788TAS3WIN32=T3-ZXID-WIN32_$(ZXIDREL) 1789 1790#tas3win32pkg: mod_auth_saml$(SO) php/php_zxid$(SO) 1791# $(CP) mod_auth_saml$(SO) $(TAS3LINUXX86) 1792# $(CP) *.php php/php_zxid.dll php/zxid.php php/zxid.ini php/README.zxid-php zxid-php.pd $(TAS3LINUXX86) 1793 1794tas3win32pkg: zxid.dll zxididp zxpasswd zxcot zxdecode zxlogview $(ZXIDJNI_SO) zxidjava/zxidjni.class zxidappdemo.class zxidjava.jar zxiddemo.war 1795 rm -rf $(TAS3WIN32) $(TAS3WIN32).zip 1796 mkdir $(TAS3WIN32) 1797 mkdir $(TAS3WIN32)/include 1798 mkdir $(TAS3WIN32)/include/zx 1799 mkdir $(TAS3WIN32)/include/zx/c 1800 $(PERL) ./sed-zxid.pl version $(ZXIDREL) < Manifest.T3-ZXID-WIN32 > $(TAS3WIN32)/Manifest 1801 $(CP) zxid.dll zxid*.lib $(TAS3WIN32)/ 1802 $(CP) $(ZXIDHDRS) $(TAS3WIN32)/include/zx 1803 $(CP) zxididp $(TAS3WIN32)/zxididp.exe 1804 $(CP) zxpasswd $(TAS3WIN32)/zxpasswd.exe 1805 $(CP) zxcot $(TAS3WIN32)/zxcot.exe 1806 $(CP) zxdecode $(TAS3WIN32)/zxdecode.exe 1807 $(CP) zxlogview $(TAS3WIN32)/zxlogview.exe 1808 $(CP) zxid-idp.pd $(TAS3WIN32) 1809 $(CP) mod_auth_saml.dll $(TAS3WIN32) 1810 $(CP) *.php php/php_zxid.dll php/zxid.php php/zxid.ini php/README.zxid-php zxid-php.pd $(TAS3WIN32) 1811 $(CP) $(ZXIDJNI_SO) $(TAS3WIN32)/ 1812 $(CP) zxidjava.jar zxiddemo.war zxid-java.pd $(TAS3WIN32) 1813 $(CP) *.java *.class $(TAS3WIN32) 1814 $(CP) $(TAS3COMMONFILES) $(TAS3WIN32) 1815 zip -r $(TAS3WIN32).zip $(TAS3WIN32) 1816 1817# Minimal package with mod_auth_saml or PHP 1818tas3win32pkg-mini: zxid.dll zxididp zxpasswd zxcot zxdecode zxlogview $(ZXIDJNI_SO) zxidjava/zxidjni.class zxidappdemo.class zxidjava.jar zxiddemo.war 1819 rm -rf $(TAS3WIN32) $(TAS3WIN32).zip 1820 mkdir $(TAS3WIN32) 1821 mkdir $(TAS3WIN32)/include 1822 mkdir $(TAS3WIN32)/include/zx 1823 mkdir $(TAS3WIN32)/include/zx/c 1824 $(PERL) ./sed-zxid.pl version $(ZXIDREL) < Manifest.T3-ZXID-WIN32 > $(TAS3WIN32)/Manifest 1825 $(CP) zxid.dll zxid*.lib $(TAS3WIN32)/ 1826 $(CP) $(ZXIDHDRS) $(TAS3WIN32)/include/zx 1827 $(CP) zxididp $(TAS3WIN32)/zxididp.exe 1828 $(CP) zxpasswd $(TAS3WIN32)/zxpasswd.exe 1829 $(CP) zxcot $(TAS3WIN32)/zxcot.exe 1830 $(CP) zxdecode $(TAS3WIN32)/zxdecode.exe 1831 $(CP) zxlogview $(TAS3WIN32)/zxlogview.exe 1832 $(CP) zxid-idp.pd $(TAS3WIN32) 1833 $(CP) $(ZXIDJNI_SO) $(TAS3WIN32)/ 1834 $(CP) zxidjava.jar zxiddemo.war zxid-java.pd $(TAS3WIN32) 1835 $(CP) *.java *.class $(TAS3WIN32) 1836 $(CP) $(TAS3COMMONFILES) $(TAS3WIN32) 1837 zip -r $(TAS3WIN32).zip $(TAS3WIN32) 1838 1839TAS3SRC=T3-ZXID-SRC_$(ZXIDREL) 1840 1841tas3srcpkg: zxid-$(ZXIDREL).tgz 1842 rm -rf $(TAS3SRC) $(TAS3SRC).zip 1843 mkdir $(TAS3SRC) 1844 $(PERL) ./sed-zxid.pl version $(ZXIDREL) < Manifest.T3-ZXID-SRC > $(TAS3SRC)/Manifest 1845 $(CP) zxid-$(ZXIDREL).tgz $(TAS3SRC) 1846 $(CP) README.zxid-tas3 Changes COPYING LICENSE-2.0.txt LICENSE.openssl LICENSE.ssleay LICENSE.curl $(TAS3SRC) 1847 zip -r $(TAS3SRC).zip $(TAS3SRC) 1848 1849#tas3rel: tas3idppkg tas3javapkg tas3phppkg tas3maspkg tas3srcpkg 1850#tas3copyrel: tas3rel 1851# scp $(TAS3SRC).zip $(TAS3IDP).zip $(TAS3JAVA).zip $(TAS3PHP).zip $(TAS3MAS).zip tas3repo:pool-in 1852 1853tas3rel: tas3linuxx86pkg tas3srcpkg 1854 1855# tas3pool T3-ZXID-SRC_0.54.zip && tas3pool -u T3-ZXID-SRC_0.54.zip 1856# tas3pool T3-ZXID-LINUX-X86_0.54.zip && tas3pool -u T3-ZXID-LINUX-X86_0.54.zip 1857# tas3pool T3-ZXID-WIN32_0.56.zip 1858 1859tas3copyrel: tas3rel 1860 rsync $(TAS3SRC).zip $(TAS3LINUXX86).zip tas3repo:pool-in 1861 1862.PHONY: precheck_prep_win precheck precheckclean tas3copyrel tas3rel tas3srcpkg 1863.PHONY: tas3win32pkg-mini tas3win32pkg tas3linuxx86pkg tas3idppkg tas3javapkg tas3phppkg tas3maspkg 1864 1865### 1866### Precheck to help analyse compilation problems 1867### 1868 1869ifeq (IGNORE,) 1870precheck/chk-zlib$(EXE): precheck/chk-zlib.$(OBJ_EXT) 1871 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< $(LIBS) 1872 1873precheck/chk-openssl$(EXE): precheck/chk-openssl.$(OBJ_EXT) 1874 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< $(LIBS) 1875 1876precheck/chk-curl$(EXE): precheck/chk-curl.$(OBJ_EXT) 1877 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< $(LIBS) 1878 1879else 1880endif 1881 1882precheck/chk-apache.$(OBJ_EXT): precheck/chk-apache.c 1883 $(CC) $(OUTOPT)$@ -c $< $(CFLAGS) $(APACHE_INC) $(APR_INC) 1884 1885precheck/chk-apache$(EXE): precheck/chk-apache.$(OBJ_EXT) 1886 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< $(LIBS) 1887 1888zxsizeof: zxsizeof.$(OBJ_EXT) 1889 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< $(LIBZXID) $(LIBS) 1890 1891zxsizeof-static-x64: zxsizeof.$(OBJ_EXT) 1892 diet gcc $(OUTOPT)$@$(EXE) zxsizeof.c -static 1893 1894xzxsizeof: 1895 $(CC) $(OUTOPT)zxsizeof zxsizeof.o 1896 1897zx/zx.h: 1898 echo "zx symlink for includes (ln -s . zx) missing. Emulating by creating zx directory..." 1899 mkdir zx 1900 mkdir zx/c 1901 $(CP) *.h zx 1902 $(CP) c/*.h zx/c 1903 1904ifeq ($(CROSS_COMPILE),1) 1905precheck: precheck/chk-zlib.$(OBJ_EXT) precheck/chk-zlib$(EXE) precheck/chk-openssl.$(OBJ_EXT) precheck/chk-openssl$(EXE) precheck/chk-curl.$(OBJ_EXT) precheck/chk-curl$(EXE) 1906 @$(ECHO) "Cross compile simplified precheck ok." 1907 @$(ECHO) 1908else 1909 1910# Windows does not support symlinks (or the support is confusing and buggy, especially 1911# when cygwin and/or mingw are involved): solution is to simply copy the headers. 1912 1913precheck_prep_win: 1914 rm -rf zx 1915 mkdir zx zx/c 1916 $(CP) *.h zx/ 1917 $(CP) c/*.h zx/c/ 1918 1919precheck: $(PRECHECK_PREP) precheck/chk-zlib.$(OBJ_EXT) precheck/chk-zlib$(EXE) precheck/chk-openssl.$(OBJ_EXT) precheck/chk-openssl$(EXE) precheck/chk-curl.$(OBJ_EXT) precheck/chk-curl$(EXE) zx/zx.h 1920 @$(ECHO) CC=$(CC) 1921 which gcc 1922 $(CC) -v 1923 @$(ECHO) 1924 precheck/chk-zlib$(EXE) 1925 precheck/chk-openssl$(EXE) 1926 precheck/chk-curl$(EXE) 1927 @$(ECHO) "Precheck ok." 1928 @$(ECHO) 1929endif 1930 1931precheckclean: 1932 rm -f precheck/*.$(OBJ_EXT) 1933 rm -f precheck/chk-zlib.exe precheck/chk-openssl.exe precheck/chk-curl.exe precheck/chk-apache.exe 1934 1935### 1936### Test suite (outdated, use zxcot -dirs instead) 1937### 1938 1939t/cot: 1940 sh ./zxmkdirs.sh t/ 1941 1942t/idpcot: 1943 sh ./zxmkdirs.sh t/idp 1944 1945t/wspcot: 1946 sh ./zxmkdirs.sh t/wsp 1947 1948t/wsp2cot: 1949 sh ./zxmkdirs.sh t/wsp2 1950 1951test: t/cot t/idpcot t/wsp t/wsp2 zxencdectest zxcall zxumacall zxididp 1952 $(PERL) zxtest.pl -a 1953 1954#test: test.$(OBJ_EXT) 1955# $(CC) $(OUTOPT)$@ $< $(LIBZXID) $(LIBS) 1956 1957win32loadlibtest.exe: win32loadlibtest.$(OBJ_EXT) 1958 $(CC) $(OUTOPT)$@ $< 1959 1960### Test dynamic link library loading (on Windows) 1961 1962zxidjava/testjni.class: zxidjava/testjni.java 1963 cd zxidjava; $(JAVAC) $(JAVAC_FLAGS) test*.java 1964 1965zxidjava/testjni.$(OBJ_EXT): zxidjava/testjni.c 1966 $(CC) -c $< $(OUTOPT)$@ $(JNI_INC) $(CFLAGS) $(CDEF) $(CINC) 1967 1968zxidjava/libtestjni.a: zxidjava/testjni.$(OBJ_EXT) 1969 $(ARC) $@ $^ 1970 1971zxidjava/testjni.dll: zxidjava/libtestjni.a 1972 $(LD) $(OUTOPT)$@ $(SHARED_FLAGS) $^ $(SHARED_CLOSE) 1973 1974zxidjava/testmain: zxidjava/testmain.$(OBJ_EXT) 1975 $(LD) $(LDFLAGS) $(OUTOPT)$@ $< $(LIBS) 1976 1977testmain.class: testmain.java 1978 $(JAVAC) $(JAVAC_FLAGS) zxidjava/test*.java testmain.java 1979 1980testdll: zxidjava/testmain zxidjava/testjni.dll testmain.class 1981 1982testdll.zip: testdll 1983 zip $@ zxidjava/testmain zxidjava/testjni.dll testmain.class testmain.java zxidjava/test*.class zxidjava/test*.java 1984 1985testdll.tar: testdll 1986 tar cf $@ zxidjava/testmain zxidjava/testjni.dll testmain.class testmain.java zxidjava/test*.class zxidjava/test*.java 1987 1988testdllclean: 1989 rm -rf testmain.class zxidjava/test*.class zxidjava/test*.$(OBJ_EXT) zxidjava/testmain zxidjava/libtestjni.a zxidjava/test*.dll 1990 1991testclean: 1992 rm -rf t/*ses t/*user t/*/uid t/*nid t/*log t/*cot t/*pem tmp/*.out tmp/*.err 1993 1994### 1995### Installation (needs more work, try `make dir' or `make dir ZXID_PATH=/var/zxid/idp') 1996### ./zxmkdirs.sh /var/zxid/idp 1997### 1998 1999dir: 2000 sh ./zxmkdirs.sh $(ZXID_PATH) 2001 -cp default-cot/* $(ZXID_PATH)cot 2002 2003# cp zxid.pem $(ZXID_PATH)pem/sign-nopw-cert.pem 2004# cp zxid.pem $(ZXID_PATH)pem/enc-nopw-cert.pem 2005# cp zxid.pem $(ZXID_PATH)pem/logenc-nopw-cert.pem 2006# cp zxid.pem $(ZXID_PATH)pem/logsign-nopw-cert.pem 2007# cp zxid.pem $(ZXID_PATH)pem/logenc.key 2008 2009dirs: dir 2010 @$(ECHO) "You should use `make dir' instead!" 2011 2012install_nodep: 2013 @$(ECHO) "===== Installing in $(PREFIX) (to change do make install PREFIX=/your/path)" 2014 -mkdir -p $(PREFIX) $(PREFIX)/bin $(PREFIX)/lib $(PREFIX)/include/zxid $(PREFIX)/include/zx $(PREFIX)/doc 2015 $(CP) zxmkdirs.sh zxcall zxumacall zxpasswd zxcot zxlogview zxbusd zxbustailf zxbuslist zxdecode zxencdectest zxcleanlogs.sh zximport-htpasswd.pl zximport-ldif.pl xml-pretty.pl diffy.pl smime send.pl xacml2ldif.pl mockpdp.pl env.cgi zxid-java.sh zxidatsel.pl zxidnewuser.pl zxidcot.pl zxiddash.pl zxidexplo.pl zxidhlo zxidhlo.pl zxidhlo.php zxidhlo.sh zxidhlo-java.sh zxidhlocgi.php zxidhlowsf zxidhrxmlwsc zxidhrxmlwsp zxididp zxidsimple zxidwsctool zxidwspcgi zxtest.pl mini_httpd_zxid $(PREFIX)/bin 2016 $(CP) $(LIBZXID_A) libzxid.so* $(PREFIX)/lib 2017 $(CP) libzxid.so.0.0 $(PREFIX)/lib 2018 $(CP) *.h c/*.h $(PREFIX)/include/zxid 2019 $(CP) zx.h $(PREFIX)/include/zx 2020 $(CP) *.pd *.dia $(PREFIX)/doc 2021 @$(ECHO) "You will need to copy zxidhlo binary where your web server can find it and" 2022 @$(ECHO) "make sure your web server is configured to recognize zxidhlo as a CGI script." 2023 @$(ECHO) 2024 @$(ECHO) "For a quick test, you can try putting following in your /etc/hosts:" 2025 @$(ECHO) 2026 @$(ECHO) " 127.0.0.1 localhost sp1.zxidcommon.org sp1.zxidsp.org" 2027 @$(ECHO) 2028 @$(ECHO) "and then run" 2029 @$(ECHO) 2030 @$(ECHO) " mini_httpd -p 8443 -c zxid -S -E zxid.pem" 2031 @$(ECHO) 2032 @$(ECHO) "in the zxid build (usually distribution) directory and then point web browser to" 2033 @$(ECHO) 2034 @$(ECHO) "https://sp1.zxidsp.org:8443/zxid" 2035 @$(ECHO) 2036 2037install: $(DEFAULT_EXE) $(LIBZXID_A) libzxid.so.0.0 dir install_nodep 2038 2039.PHONY: dir dirs installtestclean testdllclean 2040 2041# 2042# Maintenance 2043# 2044 2045tags: 2046 etags *.[hc] c/*.[hc] mini_httpd-1.19-zxid/*.[hc] 2047 2048#SSL=/aino/openssl-0.9.8g 2049#SSL=/aino/openssl-1.0.0c 2050SSL=/home/sampo/openssl-1.0.1m 2051BB=/aino/busybox-1.11.1 2052#DS=~/ds 2053#DS=/d/sampo/ds4/ds 2054DS=/home/sampo/ds 2055SLIM=/home/sampo/slim 2056PD=/home/sampo/pd 2057APACHE=/aino/httpd-2.2.8 2058 2059megatags: 2060 etags *.[hc] c/*.[hc] c/*.ds mini_httpd-1.19-zxid/*.[hc] $(SSL)/*/*.[hc] $(SSL)/*/*/*.[hc] $(PD)/xsd2sg.pl $(PD)/pd2tex $(BB)/*/*.[hc] $(BB)/*/*/*.[hc] $(BB)/*/*/*/*.[hc] 2061 2062# $(DS)/*/*.[hc] $(DS)/*/*.ds $(DS)/io/dsproxy-test.pl $(SLIM)/*/*.ds $(SLIM)/conf/*/*.ds 2063# $(APACHE)/*/*.[hc] $(APACHE)/*/*/*.[hc] $(APACHE)/*/*/*/*.[hc] $(APACHE)/*/*/*/*/*.[hc] $(APACHE)/*/*/*/*/*/*.[hc] 2064 2065docclean: 2066 rm -f *.dbx *.tex 2067 2068distclean: clean 2069 2070cleanbin: 2071 rm -f zxid zxidsimple zxbench zxencdectest zxmqtest $(LIBZXID_A) libzxid.so* zxsizeof zxid.stderr 2072 rm -f zxidhlo zxidhlowsf zxidhrxmlwsc zxidhrxmlwsp zxidsimple zxidsp zxidwsctool 2073 rm -f zxidwspcgi zxidxfoobarwsp zxpasswd zxcot zxcall zxumacall zxbusd zxbustailf zxbuslist 2074 rm -f mod_auth_saml$(SO) zxididp zxdecode zxlogview zxcot zxpasswd smime 2075 rm -f zxid.dll zxidjava/zxidjni.dll *.exe 2076 2077miniclean: perlclean phpclean pyclean rubyclean csharpclean javaclean docclean precheckclean 2078 @$(ECHO) ------------------ Making miniclean 2079 rm -f *.o *.obj zxid zxlogview zxbench zxencdectest zxmqtest $(LIBZXID_A) libzxid.so* sizeof zxid.stderr 2080 rm -f zxidhlo zxidhlowsf zxidhrxmlwsc zxidhrxmlwsp zxidsimple zxidsp zxidwsctool 2081 rm -f mod_auth_saml$(SO) zxididp zxbusd zxbustailf zxbuslist 2082 rm -f core* *~ .*~ .\#* c/.*~ c/.\#* sg/*~ sg/.*~ sg/.\#* foo bar ak.* 2083 2084# make cleany && make genwrap ENA_GEN=1 && make all ENA_GEN=1 2085# make cleany && make gen ENA_GEN=1 && make all ENA_GEN=1 2086 2087cleany: clean perlcleaner phpcleaner pycleaner rubycleaner csharpcleaner javacleaner cleangcov 2088 @$(ECHO) ------------------ Making cleany 2089 rm -f c/*.[hc] c/*.gperf c/*.y c/*.ds 2090 rm -rf pulver; mkdir pulver 2091 2092cleaner: cleany 2093 @$(ECHO) ================== Making cleaner 2094 rm -f deps deps.dep c/*.deps 2095 2096regen: clean perlcleaner phpcleaner pycleaner rubycleaner csharpcleaner javacleaner 2097 @$(ECHO) ================== Making regen 2098 rm -f c/*.[hc] c/*.gperf c/*.y deps deps.dep c/*.deps 2099 2100# N.B. The clean and dist targets deliberately do not delete contents of 2101# directory c/ although they are generated files. This is to allow 2102# zxid to be built without the tools needed to generate those files. 2103clean: perlclean phpclean pyclean rubyclean csharpclean javaclean docclean precheckclean cleanbin 2104 @$(ECHO) ------------------ Making clean 2105 rm -f *.o */*.o *.obj */*.obj 2106 rm -f core* *~ .*~ .\#* c/.*~ c/.\#* sg/*~ sg/.*~ sg/.\#* foo bar ak.* 2107 2108winclean: 2109 del /Q precheck\*.obj precheck\*.exe 2110 del /Q *.obj c\*.obj 2111 2112.PHONY: winclean clean regen cleaner cleany miniclean cleanbin distclean docclean megatags tags 2113 2114strip_bins: 2115 $(ECHO) $(STRIP) $(DEFAULT_EXE) $(ALL_EXE) 2116 $(STRIP) $(DEFAULT_EXE) $(ALL_EXE) 2117 2118# zxcot -n -g http://federation.njedge.net/metadata/njedge-fed-metadata.xml 2119 2120dist zxid-$(ZXIDREL).tgz: 2121 rm -rf zxid-$(ZXIDREL) 2122 mkdir zxid-$(ZXIDREL) zxid-$(ZXIDREL)/c zxid-$(ZXIDREL)/sg zxid-$(ZXIDREL)/t zxid-$(ZXIDREL)/tex zxid-$(ZXIDREL)/html zxid-$(ZXIDREL)/pulver zxid-$(ZXIDREL)/Net zxid-$(ZXIDREL)/Metadata zxid-$(ZXIDREL)/Raw zxid-$(ZXIDREL)/WSC zxid-$(ZXIDREL)/WSF_Raw zxid-$(ZXIDREL)/php zxid-$(ZXIDREL)/zxidjava zxid-$(ZXIDREL)/servlet zxid-$(ZXIDREL)/servlet/WEB-INF zxid-$(ZXIDREL)/servlet/META-INF zxid-$(ZXIDREL)/default-cot zxid-$(ZXIDREL)/py zxid-$(ZXIDREL)/ruby zxid-$(ZXIDREL)/csharp zxid-$(ZXIDREL)/precheck zxid-$(ZXIDREL)/pers zxid-$(ZXIDREL)/intra zxid-$(ZXIDREL)/protected zxid-$(ZXIDREL)/strong zxid-$(ZXIDREL)/other zxid-$(ZXIDREL)/mini_httpd-1.19-zxid zxid-$(ZXIDREL)/mini_httpd-1.19-zxid/contrib zxid-$(ZXIDREL)/mini_httpd-1.19-zxid/contrib/redhat-rpm zxid-$(ZXIDREL)/mini_httpd-1.19-zxid/scripts zxid-$(ZXIDREL)/drupal zxid-$(ZXIDREL)/drupal/authn_sso 2123 (cd zxid-$(ZXIDREL); ln -s . zx) 2124 $(PERL) mkdist.pl zxid-$(ZXIDREL) <Manifest 2125 tar czf zxid-$(ZXIDREL).tgz zxid-$(ZXIDREL) 2126 2127linbindist: 2128 rm -rf zxid-$(ZXIDREL)-ix86-linux-bin 2129 mkdir zxid-$(ZXIDREL)-ix86-linux-bin zxid-$(ZXIDREL)-ix86-linux-bin/c zxid-$(ZXIDREL)-ix86-linux-bin/sg zxid-$(ZXIDREL)-ix86-linux-bin/t zxid-$(ZXIDREL)-ix86-linux-bin/tex zxid-$(ZXIDREL)-ix86-linux-bin/html zxid-$(ZXIDREL)-ix86-linux-bin/pulver zxid-$(ZXIDREL)-ix86-linux-bin/Net zxid-$(ZXIDREL)-ix86-linux-bin/Metadata zxid-$(ZXIDREL)-ix86-linux-bin/Raw zxid-$(ZXIDREL)-ix86-linux-bin/WSC zxid-$(ZXIDREL)-ix86-linux-bin/WSF_Raw zxid-$(ZXIDREL)-ix86-linux-bin/php zxid-$(ZXIDREL)-ix86-linux-bin/zxidjava zxid-$(ZXIDREL)-ix86-linux-bin/servlet zxid-$(ZXIDREL)-ix86-linux-bin/servlet/WEB-INF 2130 (cd zxid-$(ZXIDREL)-ix86-linux-bin; ln -s . zx) 2131 $(PERL) mkdist.pl zxid-$(ZXIDREL)-ix86-linux-bin <Manifest.bin 2132 tar czf zxid-$(ZXIDREL)-ix86-linux-bin.tgz zxid-$(ZXIDREL)-ix86-linux-bin 2133 2134winbindist: 2135 rm -rf zxid-$(ZXIDREL)-win32-bin 2136 mkdir zxid-$(ZXIDREL)-win32-bin zxid-$(ZXIDREL)-win32-bin/c zxid-$(ZXIDREL)-win32-bin/zxidjava zxid-$(ZXIDREL)-win32-bin/php 2137 $(CP) zxid.dll zxidhlo.exe zxidsimple.exe zxididp.exe zxcot.exe zxpasswd.exe zxdecode.exe zxlogview.exe smime.exe zxcall.exe zxumacall.exe *.a *.def *.h *.java *.class *.war zxid-$(ZXIDREL)-win32-bin 2138 $(CP) zxidjava/*.class $(ZXIDJNI_SO) zxidjava/zxid_wrap.c zxid-$(ZXIDREL)-win32-bin/zxidjava 2139 $(CP) COPYING LICENSE-2.0.txt LICENSE.openssl LICENSE.ssleay LICENSE.curl README.zxid README.zxid-win32 zxid-$(ZXIDREL)-win32-bin 2140 $(CP) c/*.h zxid-$(ZXIDREL)-win32-bin/c 2141 zip -r zxid-$(ZXIDREL)-win32-bin.zip zxid-$(ZXIDREL)-win32-bin 2142 2143# $(CP) *.php mod_auth_saml.dll zxid-$(ZXIDREL)-win32-bin 2144# $(CP) php/*.php php/php_zxid.dll zxid-$(ZXIDREL)-win32-bin/php 2145 2146 2147common_bins: zxlogview$(EXE) zxcot$(EXE) zxdecode$(EXE) zxcall$(EXE) zxumacall$(EXE) smime$(EXE) zxidhlo$(EXE) zxidsimple$(EXE) zxididp$(EXE) zxpasswd$(EXE) 2148 2149 2150.PHONY: winbindist linbindist dist 2151 2152# To create release 2153# make cleaner # remember c/zxidvers.h 2154# time make dep ENA_GEN=1 2155# time make all ENA_GEN=1 2156# make doc 2157# pd2tex README.zxid 2158# pd2tex index.pd 2159# pd2tex apache.pd 2160# pd2tex mod_auth_saml.pd 2161# make javaswigchk 2162# make gitreadd 2163# make dist 2164# make copydist 2165# make release 2166# make relhtml 2167# make clean 2168# make TARGET=xmingw 2169# make zxid.dll TARGET=xmingw 2170# make winbindist 2171# make winbinrel 2172# make tas3rel 2173# make tas3copyrel # tas3pool -u T3-ZXID-LINUX-X86_0.54.zip 2174# ./pool-submit.sh 0.62 # ssh kilo.tas3.eu 2175# make gen ENA_GEN=1 2176# zxid.user@lists.unh.edu, wsf-dev@lists.openliberty.org 2177 2178#WEBROOT=sampo@zxid.org:zxid.org 2179WEBROOTHOST=sampo@zxidp.org 2180WEBROOTDIR=/var/zxid/webroot 2181WEBROOT=sampo@zxidp.org:/var/zxid/webroot/zxid.org/ 2182 2183copydist: 2184 rsync zxid-$(ZXIDREL).tgz $(WEBROOT) 2185 2186tex/%.pdf: %.pd 2187 $(PD2TEX) -noref -nortf -nodbx -nohtml $< 2188 2189html/%.html: %.pd doc-inc.pd doc-end.pd 2190 $(PD2TEX) -noref -nortf -nodbx -notex $< 2191 2192tex/README.zxid.pdf: README.zxid 2193 $(PD2TEX) -noref -nortf -nodbx -nohtml $< 2194 2195html/README.zxid.html: README.zxid doc-inc.pd doc-end.pd 2196 $(PD2TEX) -noref -nortf -nodbx -notex README.zxid 2197 2198DOC= html/README.zxid.html html/index.html html/apache.html html/mod_auth_saml.html html/zxid-simple.html html/zxid-install.html html/zxid-conf.html html/zxid-cot.html html/zxid-java.html html/zxid-log.html html/zxid-perl.html html/zxid-php.html html/zxid-raw.html html/zxid-wsf.html html/zxid-idp.html html/zxid-faq.html html/schemata.html 2199 2200doc: $(DOC) 2201 2202docpdf: $(DOC:html/%.html=tex/%.pdf) 2203 2204cleandoc: 2205 rm -f $(DOC) 2206 2207release: 2208 rsync tex/README.zxid.pdf html/README.zxid-win32.html html/i-*.png zxid-frame.html $(WEBROOT) 2209 2210winbinrel: 2211 rsync zxid-$(ZXIDREL)-win32-bin.zip $(WEBROOT) 2212 2213indexrel: zxid-tas3-ios-index.html old-releases.html 2214 rsync $^ $(WEBROOT) 2215 2216reldoc: 2217 rsync $(DOC) $(WEBROOT)/html 2218 2219relhtml: 2220 rsync html/* $(WEBROOT)/html 2221 2222refhtml: 2223 rsync ref/html/* $(WEBROOT)/ref/html 2224 2225zxidpcopytc: html/zxidp-user-terms.html html/zxidp-sp-terms.html 2226 rsync html/zxidp-user-terms.html html/zxidp-sp-terms.html $(WEBROOT)/html 2227 2228rsynclite: 2229 cd ..; rsync -a '--exclude=*.o' '--exclude=*.zip' '--exclude=TAGS' '--exclude=*.tgz' '--exclude=*.class' '--exclude=*.so' '--exclude=*.a' '--exclude=zxlogview' '--exclude=zxidsimple' '--exclude=zxidhlowsf' '--exclude=zxidhlo' '--exclude=zxidsp' '--exclude=zxbusd' '--exclude=zxbustailf' '--exclude=zxbuslist' zxid mesozoic.homeip.net: 2230 2231cvstag: 2232 cvs tag ZXID_ZXIDREL_$(ZXIDVERSION) 2233 2234.PHONY: cvstag cleandoc docpdf doc copydist 2235.PHONY: rsyncline zxidpcopytc refhtml relhtml reldoc indexrel winbinrel release 2236 2237### Coverage analysis 2238### See also: make gcov, make lcov (and lcovhtml directory), man gcov, man gprof 2239### profiling:/home/sampo/zxid/zxidconf.gcda:Version mismatch - expected 304* got 403* 2240### 2241### N.B. Apparently gcov is very picky between compiler versions (and libgcov version). 2242### Be sure to use you only use matching pair. gcov is also fidgety about processing 2243### source code subdirectories (presumably because it was compiled from top level 2244### directory). Apparently all subdirectory .gcov files land on top level. 2245### 2246### .gcno graph files are created at compile time. Recompile (with -ftest-coverage) to recreate. 2247### .gcda arc files are updated at runtime (if compiled with -fprofile-arcs) 2248### gmon.out is created at runtime if compiled with -pg 2249# 2250#ls *.c c/*.c Net/*.c php/*.c zxidjava/*.c precheck/*.c | xargs $(GCOV) 2251# $(GCOV) *.c c/*.c Net/*.c php/*.c zxidjava/*.c precheck/*.c 2252# $(GCOV) -o Net Net/*.c 2253# $(GCOV) -o php php/*.c 2254 2255gcov: 2256 @$(ECHO) "Remember to compile for profiling: make all ENA_PG=1 && make gcov" 2257 echo GCOV=$(GCOV) 2258 which gcov 2259 $(GCOV) -v 2260 $(GCOV) *.c 2261 ls c/*.c | xargs -l $(GCOV) -o c 2262 $(GCOV) -o zxidjava zxidjava/*.c 2263 $(GCOV) -o precheck precheck/*.c 2264 2265# gcov /a/d/sampo/zxid/zxidconf.gcda -o /home/sampo/zxid -b -c -a -p 2266 2267covrep: 2268 sh ./covrep.sh 2269 2270### lcov is alternative to gcov target (it runs gcove internally, as specified by --gcov-tool) 2271### We have tested with versions 1.8 and 1.9, see http://ltp.sourceforge.net/coverage/lcov.php 2272 2273lcov: 2274 rm -rf lcovhtml; mkdir lcovhtml 2275 $(LCOV) --gcov-tool $(GCOV) --ignore-errors graph -b . -d . -c -no-checksum -o lcovhtml/zxid.info 2276 $(GENHTML) -t 'ZXID Code Coverage' -o lcovhtml lcovhtml/zxid.info 2277 2278copylcov: 2279 ssh $(WEBROOTHOST) mkdir $(WEBROOTDIR)/lcovhtml-$(ZXIDREL) || true 2280 rsync -a lcovhtml/* $(WEBROOT)/lcovhtml-$(ZXIDREL) 2281 2282gprof: 2283 gprof zxencdectest 2284 2285cleangcov: 2286 rm -f *.gcno *.gcda *.c.gcov *.y.gcov *.c-ann gmon.out 2287 rm -f */*.gcno */*.gcda */*.c.gcov */*.y.gcov */*.c-ann */gmon.out 2288 rm -f lcovhtml/zxid.info lcovhtml/zxid/*.html lcovhtml/zxid/c/*.html 2289 rm -f gmon.out 2290 2291.PHONY: cleangcov gprof copylcov lcov gcov covrep 2292 2293### Call graphs and reference documentation 2294 2295function.list: 2296 $(PERL) ./call-anal.pl -n *.c >junk 2297 2298callgraph_annotate: 2299 $(PERL) ./call-anal.pl *.c >callgraph.dot 2300 2301callgraph: 2302 $(PERL) ./call-anal.pl -n *.c >callgraph.dot 2303 dot -Tps main-call.dot -o main-call.ps 2304 dot -Tps callgraph.dot -o callgraph.ps # slow 2305 2306callgraph_zxbus: 2307 $(PERL) ./call-anal.pl -n *.c >callgraph.dot 2308 dot -Tps ref/hi_shuffle-call.dot -o ref/hi_shuffle-call.ps 2309 dot -Tps ref/zxbus_listen_msg-call.dot -o ref/zxbus_listen_msg-call.ps 2310 dot -Tps ref/zxid_simple_cf-call.dot -o ref/zxid_simple_cf-call.ps 2311 2312API_REF_SRC=aux-templ.c dec-templ.c enc-templ.c getput-templ.c \ 2313 mod_auth_saml.c \ 2314 zxcrypto.c zxida7n.c zxidcdc.c zxidcgi.c zxidconf.c zxidcurl.c \ 2315 zxidecp.c zxidepr.c zxidlib.c zxidloc.c \ 2316 zxidmeta.c zxidmk.c zxidmkwsf.c zxidmni.c zxidpep.c zxidpdp.c \ 2317 zxidses.c zxidsimp.c zxidpool.c zxidslo.c zxidspx.c zxididpx.c zxiddec.c \ 2318 zxidsso.c zxidpsso.c zxiddi.c zxidim.c zxidps.c \ 2319 zxiduser.c zxidwsc.c zxidwsp.c \ 2320 zxlib.c zxlibdec.c zxlibenc.c zxbusprod.c zxlog.c zxlogview.c zxns.c zxpw.c zxsig.c zxutil.c 2321 2322refcall: 2323 $(PERL) ./call-anal.pl -n $(API_REF_SRC) >callgraph.dot 2324 2325reference: refcall 2326 cd ref; $(PD2TEX) -noref -nortf -nodbx ref.pd 2327 cd ref/tex; pdflatex -file-line-error-style -interaction=errorstopmode ref.tex # Thrice so refs and index are right 2328 cd ref/tex #; pdflatex -file-line-error-style -interaction=errorstopmode ref.tex # Thrice so refs and index are right 2329 2330ifeq ($(PULVER),1) 2331 2332dep: $(PULVER_DEPS) 2333 rm -f deps.dep 2334 $(MAKE) deps.dep 2335 2336deps: zxdecode.c zxcot.c zxpasswd.c zxidhlo.c zxbusd.c zxbustailf.c zxbuslist.c zxidsimple.c $(ZX_OBJ:.o=.c) c/saml2-const.h c/saml2md-const.h c/wsf-const.h $(PULVER_DEPS) c/zxidvers.h 2337 @$(ECHO) ================== Making deps 2338 cat pulver/c_saml2_dec_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2339 cat pulver/c_saml2_enc_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2340 cat pulver/c_saml2_aux_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2341 cat pulver/c_saml2_getput_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2342 cat pulver/c_saml2md_dec_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2343 cat pulver/c_saml2md_enc_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2344 cat pulver/c_saml2md_aux_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2345 cat pulver/c_saml2md_getput_c.deps | xargs $(CC) $(CDEF) $(CINC) -MM >>deps.dep 2346 $(CC) $(CDEF) $(CINC) -MM zxdecode.c zxcot.c zxpasswd.c zxidhlo.c zxbusd.c zxbustailf.c zxbuslist.c zxidsimple.c c/saml2-const.h c/saml2md-const.h >>deps.dep 2347 2348# $(ECHO) Deps built. $(foreach fil,$^,$(shell $(fil) >>deps.dep)) 2349 2350else 2351 2352dep: deps 2353 2354deps: $(ZX_OBJ:.o=.c) $(ZXID_LIB_OBJ:.o=.c) $(WSF_OBJ:.o=.c) $(OAUTH_OBJ:.o=.c) $(SMIME_LIB_OBJ:.o=.c) zxdecode.c zxcot.c zxpasswd.c zxidhlo.c zxbusd.c zxbustailf.c zxbuslist.c zxidsp.c zxidsimple.c $(ZX_OBJ:.o=.c) $(ZX_GEN_H) $(ZX_GEN_C) c/zx-const.h c/zxidvers.h 2355 $(CC) $(CDEF) $(CINC) -MM $^ >deps.dep 2356 2357# make gen ENA_GEN=1 2358 2359endif 2360 2361# N.B. If deps target and the actual deps.dep file have same name, 2362# the deps target will be made every time deps is missing - even 2363# when attempting to run `make clean' 2364 2365-include deps.dep 2366 2367seehelp: 2368 @$(ECHO) "If you get compilation errors, try: make help" 2369 @$(ECHO) "Now trying to compile series of test programs to check dependencies..." 2370 @$(ECHO) 2371 2372help: 2373 @$(ECHO) "ZXID $(ZXIDREL) make help (see zxid.org for further information)" 2374 @$(ECHO) 2375 @$(ECHO) "N.B. There is no configure script. The Makefile works for all" 2376 @$(ECHO) " supported platforms by provision of correct TARGET option." 2377 @$(ECHO) "N.B2: We distribute some generated files. If they are missing, you need" 2378 @$(ECHO) " to regenerate them: make cleaner; make dep ENA_GEN=1" 2379 @$(ECHO) 2380 @$(ECHO) "To compile for Linux 2.6: make or make TARGET=Linux" 2381 @$(ECHO) "To compile for MacOS 10: make TARGET=macosx" 2382 @$(ECHO) "To compile for Solaris 8: make TARGET=sol8" 2383 @$(ECHO) "To compile for Sparc Solaris 8 with cross compiler:" 2384 @$(ECHO) ' PATH=/apps/gcc/sol8/bin:/apps/binutils/sol8/bin:$$PATH make TARGET=xsol8' 2385 @$(ECHO) 2386 @$(ECHO) "If you get compilation or linking errors about missing this or that," 2387 @$(ECHO) "the chances are that you need to override some make variables with" 2388 @$(ECHO) "paths that make sense in your local situation. The best way is to" 2389 @$(ECHO) "first study the Makefile and then add your overrides to localconf.mk" 2390 @$(ECHO) "or on make command line. Some of the most common ones:" 2391 @$(ECHO) " CFLAGS Additional compiler flags needed on your platform" 2392 @$(ECHO) " CDEF Additional -D flags needed on your platform" 2393 @$(ECHO) " CINC Additional -I flags needed on your platform" 2394 @$(ECHO) " LIBS Additional -L and -l flags needed on your platform" 2395 @$(ECHO) " JAVAC Where to find javac; where jdk is installed" 2396 @$(ECHO) " JNI_INC Where jni.h and jni_md.h are found" 2397 @$(ECHO) " SERVLET_PATH Where servlet-api.jar is found; where Tomcat is installed." 2398 @$(ECHO) " SHARED Set to 1 for shared object (DLL) build. Default: static." 2399 @$(ECHO) 2400 @$(ECHO) "You may need to install dependency packages. For compilation you" 2401 @$(ECHO) "need the devel versions that have the headers. For example: " 2402 @$(ECHO) " sudo apt-get install build-essential # Debian" 2403 @$(ECHO) " sudo apt-get install linux-libc-dev" 2404 @$(ECHO) " sudo apt-get install libc6-dev-i386" 2405 @$(ECHO) " sudo apt-get install libgcrypt-dev" 2406 @$(ECHO) " sudo apt-get install libssl-dev" 2407 @$(ECHO) " sudo apt-get install libcurl4-openssl-dev" 2408 @$(ECHO) " sudo apt-get install libapr1-dev" 2409 @$(ECHO) " sudo apt-get install apache2-dev" 2410 @$(ECHO) " sudo apt-get install php5-dev" 2411 @$(ECHO) " sudo apt-get install openjdk-6-jdk" 2412 @$(ECHO) " sudo apt-get install mini-httpd" 2413 @$(ECHO) " sudo yum -y install openssl-devel # Redhat" 2414 @$(ECHO) " sudo yum -y install libcurl-devel" 2415 @$(ECHO) 2416 @$(ECHO) "Following platform TARGETs are available:" 2417 @$(ECHO) 2418 @egrep '^ifeq \(.\(TARGET\),[A-Za-z0-9-]+\)' Makefile 2419 @$(ECHO) 2420 @$(ECHO) "Following make targets are available:" 2421 @$(ECHO) 2422 @egrep '^[a-z-]+:' Makefile 2423 2424.PHONY: help seehelp dep deps reference refcall callgraph_zxbus callgraph callgraph_annotate 2425 2426#EOF 2427