Archive: compile makensis with exehead-bzip2 only


compile makensis with exehead-bzip2 only
how do I do this?
Is it possible? I looked the config.h and found nothing (but i'm no coder) also after removing will makensis work normaly?

And by the way can anybody give me some insight on how nsis works on the exehead side? maybe i can save some bits by optimizing my script :)

that's all ;)


There is no config.h line, you have to do it manually. It would be great if you can submit a patch for it here.

As for any insights on the exehead side, anything specific you would like to know? It starts in Main.c, calling ui_doinstall() in Ui.c, moving on to exec.c whenever some NSIS is code should be executed. Depending on what you don't need you shuold focus on either one.


:eek: I couldn't a barely have time to finish a translation :(
Any way commenting out some difines is prety easy for me too do but what you ask, I don't know if can do it, i get scared just thinking about it, any i'll look into it but i don't think ill be able to do anything :(

The shame

[EDITT]
In config.h line 258 there are two defines
NSIS_COMPRESS_USE_ZLIB
NSIS_COMPRESS_USE_BZIP2

is this the part i would have to change?
or theres more to it then that?


As kichik said, there is no option in config.h, so if you don't understand C it will be impossible.


after looking at the sources for about an hour this morning i know it is :(
(I'm realy sorry i can't help)

Also I totaly forgoth what i meant by the iner working is how does nsis processes the script, does it stores it inside the installer or converts it to something else? etc.. basiclly i whanted to know if i could optimize an nsis script so it would work better and be smaller.

Any way, i'll probably keep banging my head into the code for a bit longer, got some free time and who knows I could learn something...


NSIS converts every instruction in the script to one or more entries. An entry is:

typedef struct
{
int which;
// count and meaning of offsets depend on 'which'
int offsets[MAX_ENTRY_OFFSETS];
} entry;


Currently MAX_ENTRY_OFFSETS is defined as 6.

Commands are converted to entries in Script.cpp. Every entry is processed by ExecuteEntry (in exec.c). To optimize your script just use less instructions :)

Then i guess there isn't any thing i can do :) at least in my current script