From 6bddab7417d325a261be8e4b436f67d630777c5b Mon Sep 17 00:00:00 2001 From: Viktor Tarasov Date: Tue, 14 Jun 2011 11:34:25 +0200 Subject: [PATCH 1/5] win32: 'Minimal Size' code optimization --- win32/Make.rules.mak | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/win32/Make.rules.mak b/win32/Make.rules.mak index fcfa3e73..1639dadc 100644 --- a/win32/Make.rules.mak +++ b/win32/Make.rules.mak @@ -52,6 +52,10 @@ CNGSDK_INCL_DIR = "/IC:\Program Files\Microsoft CNG Development Kit\Include" # http://msinttypes.googlecode.com/files/msinttypes-r26.zip # INTTYPES_INCL_DIR = /IC:\opensc\dependencies\msys\local +# Code optimisation +# O1 - minimal code size +CODE_OPTIMIZATION = /O1 + ALL_INCLUDES = /I$(TOPDIR)\win32 /I$(TOPDIR)\src $(OPENSSL_INCL_DIR) $(ZLIB_INCL_DIR) $(LIBLTDL_INCL) $(INTTYPES_INCL_DIR) $(CNGSDK_INCL_DIR) COPTS = /W3 /D_CRT_SECURE_NO_DEPRECATE /MT /nologo /DHAVE_CONFIG_H $(ALL_INCLUDES) /D_WIN32_WINNT=0x0502 /DWIN32_LEAN_AND_MEAN $(OPENSSL_DEF) $(ZLIB_DEF) $(MINIDRIVER_DEF) /DOPENSC_FEATURES="\"$(OPENSC_FEATURES)\"" !IF "$(BUILD_FOR)" == "WIN64" @@ -64,7 +68,7 @@ LIBFLAGS = /nologo /machine:x86 CANDLEFLAGS = -dPlatform=x86 !ENDIF .c.obj:: - cl $(COPTS) /c $< + cl $(CODE_OPTIMIZATION) $(COPTS) /c $< .rc.res:: rc /l 0x0409 $< From b9f05137440891887c9fb3e84371c64098d768ab Mon Sep 17 00:00:00 2001 From: Viktor Tarasov Date: Tue, 14 Jun 2011 11:47:01 +0200 Subject: [PATCH 2/5] win32: build only static version of the PKCS#11 module --- src/pkcs11/Makefile.mak | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/pkcs11/Makefile.mak b/src/pkcs11/Makefile.mak index fedc68c0..1e377a1c 100644 --- a/src/pkcs11/Makefile.mak +++ b/src/pkcs11/Makefile.mak @@ -1,8 +1,7 @@ TOPDIR = ..\.. TARGET0 = onepin-opensc-pkcs11.dll -TARGET = opensc-pkcs11.dll -TARGET1 = opensc-pkcs11-static.dll +TARGET1 = opensc-pkcs11.dll TARGET3 = pkcs11-spy.dll OBJECTS = pkcs11-global.obj pkcs11-session.obj pkcs11-object.obj misc.obj slot.obj \ @@ -12,7 +11,7 @@ OBJECTS = pkcs11-global.obj pkcs11-session.obj pkcs11-object.obj misc.obj slot OBJECTS3 = pkcs11-spy.obj pkcs11-display.obj \ $(TOPDIR)\win32\versioninfo.res -all: $(TOPDIR)\win32\versioninfo.res $(TARGET0) $(TARGET) $(TARGET1) $(TARGET3) +all: $(TOPDIR)\win32\versioninfo.res $(TARGET0) $(TARGET1) $(TARGET3) !INCLUDE $(TOPDIR)\win32\Make.rules.mak @@ -23,13 +22,6 @@ $(TARGET0): $(OBJECTS) hack-enabled.obj ..\libopensc\opensc.lib ..\scconf\scconf link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET0) $(OBJECTS) hack-enabled.obj ..\libopensc\opensc.lib ..\scconf\scconf.lib ..\pkcs15init\pkcs15init.lib ..\common\common.lib $(OPENSSL_LIB) gdi32.lib if EXIST $(TARGET0).manifest mt -manifest $(TARGET0).manifest -outputresource:$(TARGET0);2 -$(TARGET): $(OBJECTS) hack-disabled.obj ..\libopensc\opensc.lib ..\scconf\scconf.lib ..\pkcs15init\pkcs15init.lib ..\common\common.lib - echo LIBRARY $* > $*.def - echo EXPORTS >> $*.def - type $*.exports >> $*.def - link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET) $(OBJECTS) hack-disabled.obj ..\libopensc\opensc.lib ..\scconf\scconf.lib ..\pkcs15init\pkcs15init.lib ..\common\common.lib $(OPENSSL_LIB) gdi32.lib - if EXIST $(TARGET).manifest mt -manifest $(TARGET).manifest -outputresource:$(TARGET);2 - $(TARGET1): $(OBJECTS) hack-disabled.obj ..\libopensc\opensc_a.lib ..\pkcs15init\pkcs15init.lib echo LIBRARY $* > $*.def echo EXPORTS >> $*.def From a7ea231989718de5e0977d79a7c1333aa3a8c238 Mon Sep 17 00:00:00 2001 From: Viktor Tarasov Date: Tue, 14 Jun 2011 11:51:21 +0200 Subject: [PATCH 3/5] win32: build only static version of the OpenSC minidriver --- src/minidriver/Makefile.mak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/minidriver/Makefile.mak b/src/minidriver/Makefile.mak index 593363f0..a0c61da5 100644 --- a/src/minidriver/Makefile.mak +++ b/src/minidriver/Makefile.mak @@ -11,5 +11,5 @@ $(TARGET): $(OBJECTS) echo LIBRARY $* > $*.def echo EXPORTS >> $*.def type minidriver.exports >> $*.def - link /dll $(LINKFLAGS) /def:$*.def /out:$(TARGET) $(OBJECTS) ..\libopensc\opensc.lib $(ZLIB_LIB) $(OPENSSL_LIB) ..\common\libscdl.lib ws2_32.lib gdi32.lib advapi32.lib Crypt32.lib User32.lib + link /dll $(LINKFLAGS) /def:$*.def /out:$(TARGET) $(OBJECTS) ..\libopensc\opensc_a.lib $(ZLIB_LIB) $(OPENSSL_LIB) ..\common\libscdl.lib ws2_32.lib gdi32.lib advapi32.lib Crypt32.lib User32.lib if EXIST $(TARGET).manifest mt -manifest $(TARGET).manifest -outputresource:$(TARGET);2 From c2abd9fd16401da7e56cea4b2553d7479991705c Mon Sep 17 00:00:00 2001 From: Viktor Tarasov Date: Tue, 14 Jun 2011 14:38:58 +0200 Subject: [PATCH 4/5] win32: build static version of the onepin PKCS#11 module --- src/pkcs11/Makefile.mak | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pkcs11/Makefile.mak b/src/pkcs11/Makefile.mak index 1e377a1c..afdc7251 100644 --- a/src/pkcs11/Makefile.mak +++ b/src/pkcs11/Makefile.mak @@ -15,11 +15,11 @@ all: $(TOPDIR)\win32\versioninfo.res $(TARGET0) $(TARGET1) $(TARGET3) !INCLUDE $(TOPDIR)\win32\Make.rules.mak -$(TARGET0): $(OBJECTS) hack-enabled.obj ..\libopensc\opensc.lib ..\scconf\scconf.lib ..\pkcs15init\pkcs15init.lib ..\common\common.lib +$(TARGET0): $(OBJECTS) hack-enabled.obj ..\libopensc\opensc_a.lib ..\pkcs15init\pkcs15init.lib echo LIBRARY $* > $*.def echo EXPORTS >> $*.def type opensc-pkcs11.exports >> $*.def - link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET0) $(OBJECTS) hack-enabled.obj ..\libopensc\opensc.lib ..\scconf\scconf.lib ..\pkcs15init\pkcs15init.lib ..\common\common.lib $(OPENSSL_LIB) gdi32.lib + link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET0) $(OBJECTS) hack-enabled.obj ..\libopensc\opensc_a.lib ..\pkcs15init\pkcs15init.lib $(OPENSSL_LIB) gdi32.lib if EXIST $(TARGET0).manifest mt -manifest $(TARGET0).manifest -outputresource:$(TARGET0);2 $(TARGET1): $(OBJECTS) hack-disabled.obj ..\libopensc\opensc_a.lib ..\pkcs15init\pkcs15init.lib From 2ffa346eff4fe5de22dcd8d0fe23ad97cc7b19a2 Mon Sep 17 00:00:00 2001 From: Viktor Tarasov Date: Tue, 14 Jun 2011 14:56:49 +0200 Subject: [PATCH 5/5] OpenSC.msi: install opensc.dll into the 'tools' directory Now the DLLs installed into the 'system' directory are static. Only opensc tools depend on opensc.dll. --- win32/OpenSC.wxs.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/win32/OpenSC.wxs.in b/win32/OpenSC.wxs.in index 046de2ed..bfcefc90 100644 --- a/win32/OpenSC.wxs.in +++ b/win32/OpenSC.wxs.in @@ -52,9 +52,6 @@ - - - @@ -75,6 +72,9 @@ + + +