couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Cottlehuber (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft
Date Wed, 01 Jun 2011 07:43:48 GMT

    [ 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

Mime
View raw message