From ad60428d099c3d7e25952ab5a404710d671e8f3f Mon Sep 17 00:00:00 2001 From: vtarasov Date: Thu, 9 Dec 2010 09:16:03 +0000 Subject: [PATCH] win32: build MSI git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@4932 c6295689-39f2-0310-b995-f0e70906c6a9 --- win32/Make.rules.mak | 29 ++++ win32/opensc-msi/Make.rules.mak.works-for-vt | 93 ++++++++++ win32/opensc-msi/Makefile.mak | 17 ++ win32/opensc-msi/OpenSC.ico | Bin 0 -> 9078 bytes win32/opensc-msi/OpenSC.wxs | 173 +++++++++++++++++++ win32/opensc-msi/README | 5 + 6 files changed, 317 insertions(+) create mode 100644 win32/opensc-msi/Make.rules.mak.works-for-vt create mode 100644 win32/opensc-msi/Makefile.mak create mode 100755 win32/opensc-msi/OpenSC.ico create mode 100755 win32/opensc-msi/OpenSC.wxs create mode 100755 win32/opensc-msi/README diff --git a/win32/Make.rules.mak b/win32/Make.rules.mak index 7c1a61f8..1a4a0958 100644 --- a/win32/Make.rules.mak +++ b/win32/Make.rules.mak @@ -11,9 +11,22 @@ LIBLTDL_LIB = # E.g. C:\libtool-1.5.8-lib\lib\libltdl.lib OPENSC_FEATURES = pcsc +#Uncomment to use 'static' linking mode +#LINK_MODE = STATIC + #Include support of minidriver 'cardmon' MINIDRIVER_DEF = /DENABLE_MINIDRIVER + +#Build MSI with the Windows Installer XML (WIX), minimal WIX version 3.6 +#Static link mode should be used. +#WIX_MSI_DEF = /DBUILD_MSI +!IF "$(WIX_MSI_DEF)" == "/DBUILD_MSI" +WIX_INSTALLED_PATH = c:\download\wix36-binaries +LINK_MODE = STATIC +!ENDIF + + # If you want support for OpenSSL (needed for a.o. pkcs15-init tool and openssl engine): # - download and build OpenSSL # - uncomment the line starting with OPENSSL_DEF @@ -22,11 +35,20 @@ MINIDRIVER_DEF = /DENABLE_MINIDRIVER #OPENSSL_DEF = /DENABLE_OPENSSL !IF "$(OPENSSL_DEF)" == "/DENABLE_OPENSSL" OPENSSL_INCL_DIR = /IC:\openssl\include + +!IF "$(LINK_MODE)" != "STATIC" OPENSSL_LIB = C:\openssl\out32dll\libeay32.lib +#OPENSSL_LIB = C:\openssl\lib\VC\libeay32MD.lib C:\openssl\lib\VC\ssleay32MD.lib user32.lib advapi32.lib +!ENDIF +!IF "$(LINK_MODE)" == "STATIC" +#OPENSSL_LIB = C:\openssl\lib\VC\static\libeay32MT.lib C:\openssl\lib\VC\static\ssleay32MT.lib user32.lib advapi32.lib +!ENDIF + PROGRAMS_OPENSSL = pkcs15-init.exe cryptoflex-tool.exe netkey-tool.exe piv-tool.exe westcos-tool.exe OPENSC_FEATURES = $(OPENSC_FEATURES) openssl !ENDIF + # If you want support for zlib (Used for PIV, infocamere and actalis): # - Download zlib and build # - uncomment the line starting with ZLIB_DEF @@ -43,8 +65,15 @@ OPENSC_FEATURES = $(OPENSC_FEATURES) zlib # http://msinttypes.googlecode.com/files/msinttypes-r26.zip INTTYPES_INCL_DIR = /IC:\opensc\dependencies\msys\local +!IF "$(LINK_MODE)" != "STATIC" COPTS = /D_CRT_SECURE_NO_DEPRECATE /Zi /MD /nologo /DHAVE_CONFIG_H /I$(TOPDIR)\win32 /I$(TOPDIR)\src $(OPENSSL_INCL_DIR) $(ZLIB_INCL_DIR) $(LIBLTDL_INCL) $(INTTYPES_INCL_DIR) /D_WIN32_WINNT=0x0400 /DWIN32_LEAN_AND_MEAN $(OPENSSL_DEF) $(ZLIB_DEF) /DOPENSC_FEATURES="\"$(OPENSC_FEATURES)\"" LINKFLAGS = /DEBUG /NOLOGO /INCREMENTAL:NO /MACHINE:IX86 +!ENDIF + +!IF "$(LINK_MODE)" == "STATIC" +COPTS = /D_CRT_SECURE_NO_DEPRECATE /MT /nologo /DHAVE_CONFIG_H /I$(TOPDIR)\win32 /I$(TOPDIR)\src /I$(TOPDIR)\src\include\opensc /I$(TOPDIR)\src\common $(OPENSSL_INCL_DIR) $(ZLIB_INCL_DIR) $(LIBLTDL_INCL) $(INTTYPES_INCL_DIR) /D_WIN32_WINNT=0x0400 /DWIN32_LEAN_AND_MEAN $(OPENSSL_DEF) $(ZLIB_DEF) /DOPENSC_FEATURES="\"$(OPENSC_FEATURES)\"" +LINKFLAGS = /NOLOGO /INCREMENTAL:NO /MACHINE:IX86 /MANIFEST:NO /NODEFAULTLIB:MSVCRTD /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:LIBCMTD +!ENDIF .c.obj:: cl $(COPTS) /c $< diff --git a/win32/opensc-msi/Make.rules.mak.works-for-vt b/win32/opensc-msi/Make.rules.mak.works-for-vt new file mode 100644 index 00000000..187cb122 --- /dev/null +++ b/win32/opensc-msi/Make.rules.mak.works-for-vt @@ -0,0 +1,93 @@ +# Note: these instructions obsolete the instructions in opensc.html + +# You first need to download the gnuwin32 libtool (e.g. the "Binaries" and "Developer +# files" from http://gnuwin32.sourceforge.net/packages/libtool.htm) +# Then fill in the directory path to ltdl.h on the LIBLTDL_INCL line below, preceeded +# by an "/I"; and fill in the path to the libltdl.lib on the LIBLTDL_LIB line below. +# Then you can build this OpenSC package; and afterwards you'll need to copy the +# libltdl3.dll somewhere on your execution path. +#LIBLTDL_INCL = # E.g. /IC:\libtool-1.5.8-lib\include +#LIBLTDL_LIB = # E.g. C:\libtool-1.5.8-lib\lib\libltdl.lib +LIBLTDL_INCL = /IC:\opensc\dependencies\libtool\include +LIBLTDL_LIB = C:\opensc\dependencies\libtool\lib\ltdl.lib +LIBLTDL_DLL = C:\opensc\dependencies\libtool\bin\libltdl3.dll + +OPENSC_FEATURES = pcsc + +#Uncomment to use 'static' linking mode +#LINK_MODE = STATIC + +#Include support of minidriver 'cardmon' +#MINIDRIVER_DEF = /DENABLE_MINIDRIVER + + +#Build MSI with the Windows Installer XML (WIX), minimal WIX version 3.6 +#Static link mode should be used. +WIX_MSI_DEF = /DBUILD_MSI +!IF "$(WIX_MSI_DEF)" == "/DBUILD_MSI" +WIX_INSTALLED_PATH = c:\download\wix36-binaries +LINK_MODE = STATIC +!ENDIF + + +# If you want support for OpenSSL (needed for a.o. pkcs15-init tool and openssl engine): +# - download and build OpenSSL +# - uncomment the line starting with OPENSSL_DEF +# - set the OPENSSL_INCL_DIR below to your openssl include directory, preceded by "/I" +# - set the OPENSSL_LIB below to your openssl lib file +OPENSSL_DEF = /DENABLE_OPENSSL +!IF "$(OPENSSL_DEF)" == "/DENABLE_OPENSSL" +#OPENSSL_INCL_DIR = /IC:\openssl\include +OPENSSL_INCL_DIR = /IC:\opensc\dependencies\openssl\include + +!IF "$(LINK_MODE)" != "STATIC" +#OPENSSL_LIB = C:\openssl\out32dll\libeay32.lib +OPENSSL_LIB = C:\opensc\dependencies\openssl\lib\VC\libeay32MD.lib C:\opensc\dependencies\openssl\lib\VC\ssleay32MD.lib user32.lib advapi32.lib +#OPENSSL_LIB = C:\opensc\dependencies\openssl\lib\VC\static\libeay32MD.lib C:\opensc\dependencies\openssl\lib\VC\static\ssleay32MD.lib user32.lib advapi32.lib +!ENDIF +!IF "$(LINK_MODE)" == "STATIC" +OPENSSL_LIB = C:\opensc\dependencies\openssl\lib\VC\static\libeay32MT.lib C:\opensc\dependencies\openssl\lib\VC\static\ssleay32MT.lib user32.lib advapi32.lib +!ENDIF + +PROGRAMS_OPENSSL = pkcs15-init.exe cryptoflex-tool.exe netkey-tool.exe piv-tool.exe westcos-tool.exe +OPENSC_FEATURES = $(OPENSC_FEATURES) openssl +!ENDIF + + +# If you want support for zlib (Used for PIV, infocamere and actalis): +# - Download zlib and build +# - uncomment the line starting with ZLIB_DEF +# - set the ZLIB_INCL_DIR below to the zlib include lib proceeded by "/I" +# - set the ZLIB_LIB below to your zlib lib file +#ZLIB_DEF = /DENABLE_ZLIB +!IF "$(ZLIB_DEF)" == "/DENABLE_ZLIB" +#ZLIB_INCL_DIR = /IC:\ZLIB\INCLUDE +ZLIB_INCL_DIR = /IC:\opensc\dependencies\zlib\include +#ZLIB_LIB = C:\ZLIB\LIB\zlib.lib +ZLIB_LIB = C:\opensc\dependencies\zlib\lib\zlib.lib +OPENSC_FEATURES = $(OPENSC_FEATURES) zlib +!ENDIF + + +# Mandatory path to 'ISO C9x compliant stdint.h and inttypes.h for Microsoft Visual Studio' +# http://msinttypes.googlecode.com/files/msinttypes-r26.zip +INTTYPES_INCL_DIR = /IC:\opensc\dependencies\msys\local + +!IF "$(LINK_MODE)" != "STATIC" +COPTS = /D_CRT_SECURE_NO_DEPRECATE /Zi /MD /nologo /DHAVE_CONFIG_H /I$(TOPDIR)\win32 /I$(TOPDIR)\src $(OPENSSL_INCL_DIR) $(ZLIB_INCL_DIR) $(LIBLTDL_INCL) $(INTTYPES_INCL_DIR) /D_WIN32_WINNT=0x0400 /DWIN32_LEAN_AND_MEAN $(OPENSSL_DEF) $(ZLIB_DEF) /DOPENSC_FEATURES="\"$(OPENSC_FEATURES)\"" +LINKFLAGS = /DEBUG /NOLOGO /INCREMENTAL:NO /MACHINE:IX86 +!ENDIF + +!IF "$(LINK_MODE)" == "STATIC" +COPTS = /D_CRT_SECURE_NO_DEPRECATE /MT /nologo /DHAVE_CONFIG_H /I$(TOPDIR)\win32 /I$(TOPDIR)\src /I$(TOPDIR)\src\common $(OPENSSL_INCL_DIR) $(ZLIB_INCL_DIR) $(LIBLTDL_INCL) $(INTTYPES_INCL_DIR) /D_WIN32_WINNT=0x0400 /DWIN32_LEAN_AND_MEAN $(OPENSSL_DEF) $(ZLIB_DEF) /DOPENSC_FEATURES="\"$(OPENSC_FEATURES)\"" +LINKFLAGS = /NOLOGO /INCREMENTAL:NO /MACHINE:IX86 /MANIFEST:NO /NODEFAULTLIB:MSVCRTD /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:LIBCMTD +!ENDIF + +.c.obj:: + cl $(COPTS) /c $< + +.rc.res:: + rc /l 0x0409 /r $< + +clean:: + del /Q *.obj *.dll *.exe *.pdb *.lib *.def *.manifest diff --git a/win32/opensc-msi/Makefile.mak b/win32/opensc-msi/Makefile.mak new file mode 100644 index 00000000..ee9fefbc --- /dev/null +++ b/win32/opensc-msi/Makefile.mak @@ -0,0 +1,17 @@ +TOPDIR = ..\..\.. + +TARGET = OpenSC.msi + +all: $(TARGET) + +!INCLUDE $(TOPDIR)\win32\Make.rules.mak + +OpenSC.msi: OpenSC.wixobj + $(WIX_INSTALLED_PATH)\light.exe -sh -ext WixUIExtension $? + +OpenSC.wixobj: OpenSC.wxs + $(WIX_INSTALLED_PATH)\candle.exe -dSOURCE_DIR=$(TOPDIR) -dPATH_TO_LIBLTD3_DLL=$(LIBLTDL_DLL) $? + +clean:: + del /Q *.msi *.wixobj *.wixpdb + diff --git a/win32/opensc-msi/OpenSC.ico b/win32/opensc-msi/OpenSC.ico new file mode 100755 index 0000000000000000000000000000000000000000..87227eebe35fc3131f276b6d234ed1b811610841 GIT binary patch literal 9078 zcmeI0ZERE58OI-!(AbG%Cx&2RAZ7+*Xxus;P9QIs5C{pSKYr%2$g1_nw^JInUcU_xb<`U_rr5t??Y#2C+z9`DJb9h9lZ0CA4AU1kHGHz zzXsFKy5Ze-e*wy09)lO&|1IRdcNDUJbqtnte+t>Z`5a#BJ_zX_oPjwX`~}iKJPqC5 z-SBqzA&?(F33EUE67mn8f&&K*K-Q77koM6Pk#Z2Ph9}vwLwVky9N9IJOufdhCqVPnSFkcUiE|Nt6>li z41naiA2P3vf?&`OsY64MIXDdIgCigw8iDlTVGxZB!r8NDkqtn`;4Ki}7=fgre?gjm z1f(}^L+a=aIN$R(5Z@dH(d`jvx#Wj0doF@>cnm~$Z$QuaUJ&2Ges^!ek)E3%yyu7B z-U}eTbsq%ZjDhg}O?dnAEl9n82Qu!CL+bbg=k%$|GY#Lmp0#rYsv@V|W_K4PrF=ikh4ra?S94Xp-9|e~ReIJ&(=PMO8S~My%!;~nsuNdU|MohyC z;Q`|EUCj$~nlR-wO<9>7Ng1QjpbZvlrAnbJv6`4yqiKl8ckbH0BP)wV&uOF>jd+fM zrY#sli&>$psWD>|Wi!4LTn%yf_G%l;IpmV9EAdFz@8Pf?9}v6|5@uHtC)Bf^_ZGMT|a({>j#Gx_CM zzGF+%a(R&p?MHwqk;wEE_6_l7wBK4H*HS92gT?jen3?=W%>1p}*@jhez0<}!T%*jf zvxtXzlgWztcd>P9HO<=X?jruXDO?Ifo9(RKxlXQOaeiy5%0S8=@u2-?Go$B?v(XyW zRwrBUPMRMxzo)XnZsV#HD%wGps0#3b=PBa9xyGuISMkB29a_b@rg~S>^D(?{7flSd zsuWbo;<5&;;V5sls%I~5!ev2%%NP_z?&36WEZ?=O3T?MC8rkA1#3MXbuSKb<&5_%k z$YXS@C91r+ZL#quA*jUQS+&Zo1dsAer9#a*9XYZM!4++3(WYSu$Ig!fw614rG#a)6 zBOK)&rE;y4wb?ketjI~%S!x@#bN6BAIK0oZMz43)V-*uT=)c1tFA7GE(@OLlMYX6F zARV9gbyU|kv6Fb(p`WvGE6>+ajRuLDYnk(19*;Y}4+pU0J0~(fX3L@%V_A|)!m^aj zTll>oJ_YZ?H1Pft`yI4ewS#r(aWlopQWjIANf>z%#q%GB-nTaI#o+vit2AUU;Z{l1 zP8;$}c}Da_7@yy#%PY>?KsJ9;jCwQ$bIw&tFLO}LD;W_V!&adE9^JNW6%`emvP2R==CdmhFJ2~ybi^+R^c^>j zf|gCv$#2ex|DN1!!2x#e%$}KTEG#sZOERM=YTaVTtTQF^avlqO$N&;Qk4~p6s4$YN z9P#2sxz9#%pU+cWTWhs2xzB}do~(TQJ3992j1|SkVvJm2xp+bQMAM_$H@SeVE#$kjD$Cqi$V)?ivF?9A>QZPvj|-;Um=RT z*<*Xge-85&oZNNS=yuzqiMMCzr*~# z&AGabd&8~&xgtM-mv>?!fbs}d^ZF2!yaqtZ>nNn~dK{8M3cMoSh8+2QxEl2#suDGT zDn%VdO+h`5DnRw30xA(`;W2=fJO(hA#{h&ph8?Cy8J*`i_9F9M zMomHu+e4JtN7|KvN4$M)fzdWEK2HQL8=({g6M^F^VU+mm1p)6rj`5Jh1C@`H7lQ(A z*bjq6;x~#9S9v87od`S>1T~Np(v*-&L#hmF;+!UNPV?V7r@@NC8ctl_#t2NisVB~9 z66Z9DbDG3C4LRpYoYUYTQsSHjkDU_dG~~sJ9|ZBC3;O}tHl Uw1xMN|KT~!xA8a4|C3Mu29~agHUIzs literal 0 HcmV?d00001 diff --git a/win32/opensc-msi/OpenSC.wxs b/win32/opensc-msi/OpenSC.wxs new file mode 100755 index 00000000..2894be2d --- /dev/null +++ b/win32/opensc-msi/OpenSC.wxs @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/opensc-msi/README b/win32/opensc-msi/README new file mode 100755 index 00000000..eb1514ea --- /dev/null +++ b/win32/opensc-msi/README @@ -0,0 +1,5 @@ +Tested with WIX version 3.6.0917.0 + +To create MSI: +# wix\candle.exe -dSOURCE_DIR= -dPATH_TO_LIBLTD3_DLL= OpenSC.wxs +# wix\light.exe -sh -ext WixUIExtension OpenSC.wixobj