Link to home
Start Free TrialLog in
Avatar of camster123
camster123

asked on

How to reduce the size of both a release and debug Microsoft Visual Studio 2008 C++ 64 bit static library, OpenSSL, compiled with MT and MD?

I wish to reduce the size of both a release and debug  Microsoft Visual Studio 2008 64 bit static library, OpenSSL,  compiled with MT and MD separately. I read that the /01 option is really guaranteed  to make the code smaller and that you have to set /LTCG and /GL to No to shrink  the size of the release C++ static library. Also, I read that there is another setting in the the General properties called "No Whole Program Optimization" which might shrink the static  library size.
   Before I try these things which I read, I wish to determine if they are correct and whether there any another Microsoft Visual Studio 2008 compiler and linker options I should try to reduce the size of both the release and debug Microsoft VIsual Studio 2008 C++ OPenSSL static library compiled with MT and MD separately.

Here is my OpenSSL makefile. Please correct it so i can reduce the size of both a release and debug  Microsoft Visual Studio 2008 C++ 64-bit static library, OpenSSL,  compiled with MT and MD

 This makefile has been automatically generated from the OpenSSL distribution.
# This single makefile will build the complete OpenSSL distribution and
# by default leave the 'intertesting' output files in .\out and the stuff
# that needs deleting in .\tmp.
# The file was generated by running 'make makefile.one', which
# does a 'make files', which writes all the environment variables from all
# the makefiles to the file call MINFO.  This file is used by
# util\mk1mf.pl to generate makefile.one.
# The 'makefile per directory' system suites me when developing this
# library and also so I can 'distribute' indervidual library sections.
# The one monster makefile better suits building in non-unix
# environments.

INSTALLTOP=\usr\local\ssl

# Set your compiler options
PLATFORM=VC-WIN64A
CC=cl
CFLAG= /Z7 /MTd /Ox /W3 /Gs0 /GF /Gy /nologo -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DOPENSSL_SYSNAME_WIN32 -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE /Fdout32 -DOPENSSL_NO_IDEA -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE    
APP_CFLAG=
LIB_CFLAG=/Zl
SHLIB_CFLAG=
APP_EX_OBJ=setargv.obj
SHLIB_EX_OBJ=
# add extra libraries to this define, for solaris -lsocket -lnsl would
# be added
EX_LIBS=wsock32.lib gdi32.lib crypt32.lib advapi32.lib user32.lib

# The OpenSSL directory
SRC_D=.

LINK=link
LFLAGS=/nologo /subsystem:console /opt:ref
RSC=rc
FIPSLINK=$(PERL) util\fipslink.pl

AES_ASM_OBJ=
AES_ASM_SRC=
BN_ASM_OBJ=
BN_ASM_SRC=
BNCO_ASM_OBJ=
BNCO_ASM_SRC=
DES_ENC_OBJ=
DES_ENC_SRC=
BF_ENC_OBJ=
BF_ENC_SRC=
CAST_ENC_OBJ=
CAST_ENC_SRC=
RC4_ENC_OBJ=
RC4_ENC_SRC=
RC5_ENC_OBJ=
RC5_ENC_SRC=
MD5_ASM_OBJ=
MD5_ASM_SRC=
SHA1_ASM_OBJ=
SHA1_ASM_SRC=
RMD160_ASM_OBJ=
RMD160_ASM_SRC=
CPUID_ASM_OBJ=
CPUID_ASM_SRC=

# The output directory for everything intersting
OUT_D=out64Z7MTd
# The output directory for all the temporary muck
TMP_D=tmp64Z7MTd
# The output directory for the header files
INC_D=inc64Z7MTd
INCO_D=inc64Z7MTd\openssl

PERL=perl
CP=$(PERL) util/copy.pl
RM=del /Q
RANLIB=
MKDIR=$(PERL) util/mkdir-p.pl
MKLIB=lib /nologo
MLFLAGS=
ASM=ml /nologo /Cp /coff /c /Cx

# FIPS validated module and support file locations

E_PREMAIN_DSO=fips_premain_dso

FIPSLIB_D=\usr\local\ssl\fips-1.0\lib
BASEADDR=0xFB00000
FIPS_PREMAIN_SRC=$(FIPSLIB_D)\fips_premain.c
O_FIPSCANISTER=$(FIPSLIB_D)\fipscanister.lib
FIPS_SHA1_EXE=
PREMAIN_DSO_EXE=$(BIN_D)\fips_premain_dso.exe

######################################################
# You should not need to touch anything below this point
######################################################

E_EXE=openssl
SSL=ssleay32
CRYPTO=libeay32
LIBFIPS=libosslfips


Thank you very much,.
Avatar of camster123
camster123

ASKER

Good morning everybody,
  This Experts Exchange has some good hints on how to reduce the size of a Visual Studio static library,

https://www.experts-exchange.com/questions/25788952/Reducing-static-library-size.html

Thank you.
ASKER CERTIFIED SOLUTION
Avatar of jkr
jkr
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
jkr, Thank you very much for your help.  Please tell me how to test if the openssl static libray works. Is it nmake ms\ntall.mak test?
Frank