[
https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13042027#comment-13042027
]
Dave Cottlehuber commented on COUCHDB-1181:
-------------------------------------------
JIRA cut me off mid spiel!
3. runtimes.
Need to install or bundle multiple runtimes can be reduced by compiling all
pre-requisites (ICU, cURL if reqd, Spidermonkey, Erlang, wxWidgets, OpenSSL)
from source using the same Visual C++ compiler. ICU is the final remaining
component that was missing from this & is resolved by COUCHDB-1152.
4. small things that were tested and "work" even if not particularly legit.
a. remove erl.ini - OK so long as you set working directory to %COUCHDB%/bin or
erts-5.8.2 only (i.e. one level lower not two).
b. remove werl.exe and erlsrv.exe if your users don't need access to a good
console, and if you manage services directly with windows.
c. remove install.exe
5. [UNTESTED] dedupe bin and erts-*/bin
look at consolidating binaries in /bin and /erts-*/bin somehow. There's a lot
of duplication.
6. [UNTESTED] prune ICU via custom DLL
ICU is a 18Mb include; a custom data file for icudt4*.dll could reduce this
significantly. see:
http://userguide.icu-project.org/packaging
http://apps.icu-project.org/datacustom/ICUData44.html
http://apps.icu-project.org/datacustom
> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
> Key: COUCHDB-1181
> URL: https://issues.apache.org/jira/browse/COUCHDB-1181
> Project: CouchDB
> Issue Type: Improvement
> Components: Build System
> Environment: Windows
> Reporter: Dave Cottlehuber
> Priority: Trivial
> Labels: windows
> Fix For: 1.1.1
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali
> via IRC, and @daleharvey with android build
> https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed
> footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP
> libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap*
> ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-*
> sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira