DragonSoull
4th June 2003 15:47 UTC
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 ;)
kichik
4th June 2003 20:30 UTC
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.
DragonSoull
5th June 2003 00:50 UTC
: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?
Joost Verburg
5th June 2003 11:49 UTC
As kichik said, there is no option in config.h, so if you don't understand C it will be impossible.
DragonSoull
5th June 2003 12:41 UTC
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...
kichik
5th June 2003 14:23 UTC
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 :)
DragonSoull
5th June 2003 16:00 UTC
Then i guess there isn't any thing i can do :) at least in my current script