![]() |
#1 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
scons (0.96.1-1) build result on debian is below. Seems scons treats errors as warnings on debian, is there a way to disable this?
pabs@chianamo:~/devel/debian/nsis/NSIS$ scons -j4 MINGWPREFIX=i586-mingw32msvc CPPPATH=/usr/i586-mingw32msvc/include LIBPATH=/usr/i586-mingw32msvc/lib/ scons: Reading SConscript files ... Using GNU tools configuration Checking for main() in C library gdi32... no Checking for main() in C library user32... no Checking for main() in C library version... no Checking for main() in C library pthread... no Checking for main() in C library stdc++... no Checking for main() in C library iconv... no Checking for main() in C library libiconv... no scons: done reading SConscript files. scons: Building targets ... i586-mingw32msvc-g++ -O2 -Wall -I/usr/i586-mingw32msvc/include -c -o build/release/Library/LibraryLocal/LibraryLocal.o Contrib/Library/LibraryLocal/LibraryLocal.cpp i586-mingw32msvc-g++ -O2 -Wall -I/usr/i586-mingw32msvc/include -c -o build/release/MakeLangId/MakeLangId.o Contrib/MakeLangId/MakeLangId.cpp scons: *** [build/release/MakeLangId/resource.o] Exception Traceback (most recent call last): File "/usr/lib/scons/SCons/Taskmaster.py", line 101, in execute self.targets[0].build() File "/usr/lib/scons/SCons/Node/__init__.py", line 201, in build apply(executor, (self, errfunc), kw) File "/usr/lib/scons/SCons/Executor.py", line 115, in __call__ apply(action, (self.targets, self.sources, env, errfunc), kw) File "/usr/lib/scons/SCons/Action.py", line 239, in __call__ s = self.strfunction(target, source, env) TypeError: 'str' object is not callable Contrib/MakeLangId/MakeLangId.cpp: In function `BOOL DialogProc(HWND__*, UINT, WPARAM, LPARAM)': Contrib/MakeLangId/MakeLangId.cpp:191: warning: comparison between signed and unsigned integer expressions Contrib/MakeLangId/MakeLangId.cpp:193: warning: comparison between signed and unsigned integer expressions Contrib/MakeLangId/MakeLangId.cpp:241:2: warning: no newline at end of file scons: building terminated because of errors. bye, pabs |
![]() |
![]() |
![]() |
#2 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
SCons doesn't treat warnings as errors. An error is raised when a tool returns a value different than 0. In your case, the error is a few lines above. The printing might get a little mixed if you use -j.
As for the error itself, mind runing scons with --debug=pdb and seeing what string it tries to call there? NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#3 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Hmm, now I'm getting this:
pabs@chianamo:~/devel/debian/nsis/NSIS$ scons MINGWPREFIX=i586-mingw32msvc CPPPATH=/usr/i586-mingw32msvc/include LIBPATH=/usr/i586-mingw32msvc/lib/ <snip> i586-mingw32msvc-ld -s -mwindows -Wl,--file-alignment,512 -Wl,-Map,LibraryLocal.map -o build/release/Library/LibraryLocal/LibraryLocal build/release/Library/LibraryLocal/LibraryLocal.o -L/usr/i586-mingw32msvc/lib -lkernel32 -loleaut32 -lversion i586-mingw32msvc-ld: unrecognised emulation mode: windows Supported emulations: i386pe scons: *** [build/release/Library/LibraryLocal/LibraryLocal] Error 1 scons: building terminated because of errors. Using i586-mingw32msvc-g++ for linking fixes this. Printing the value of self.strfunction in Action.py gives "$RCCOMSTR". Either way, I don't think strings can be called in python. Also, does scons have an equivalent of make clean? bye, pabs |
![]() |
![]() |
![]() |
#4 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
I've fixed the configuration to use g++ for linking instead of ld. In SCons/Config/gnu change line number 24.
As for RCCOMSTR, I have no idea where SCons creates it. It uses it, but no where it seems to create it. Try removing the parameter using it in SCons/Config/gnu on line 15 and let me know if it works. To clean using SCons, use -c. To see all available command line options, use -H. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#5 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
I submitted a patch to fix building Contrib stuff.
The problem I come up against now, is that halibut is built with the include path specified in CPPPATH. I'm not sure how to solve this, but I think the stuff targeted at windows would use MINGW32CPPPATH, and the stuff targeted at the build os can use CPPPATH. It would be nice if CPPPATH could default to /usr/include on linux too. bye, pabs |
![]() |
![]() |
![]() |
#6 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
CPPPATH defauls to nothing which allows scons or gcc to use whatever it thinks that's required. Does it not find the right header files when you don't use CPPPATH?
NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#7 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
pabs@chianamo:~/devel/debian/nsis/NSIS$ scons MINGWPREFIX=i586-mingw32msvc PREFIX=/usr/local
scons: Reading SConscript files ... scons: *** Path does not exist for option CPPPATH: File "SConstruct", line 69, in ? I get a similar thing when ommiting PREFIX bye, pabs |
![]() |
![]() |
![]() |
#8 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
Options with an empty default value is a new feature of 0.96.90. Upgrade and those should disappear.
NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#9 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Ah, ok. Installed the deb, fixed that.
Now I have problems with halibut: * _MAX_PATH isn't defined for bk_xhtml.c * for some reason, the standard libs don't get linked into the binary, preventing linking due to unresolved symbols - fixed by emptying defenv['NODEFLIBS_FLAG'] in NSIS/SCons/Config/gnu * the __main entry point isn't found - commenting lines 113/114 in NSIS/SCons/Config/gnu: #ctx.env.Append(LINKFLAGS = '$NODEFLIBS_FLAG') #ctx.env.Append(LINKFLAGS = '-Wl,-e,___main') * it segfaults during building the docs - I'll work on this * I get this error during building InstallOptions.dll: pabs@chianamo:~/devel/debian/nsis/NSIS$ scons MINGWPREFIX=i586-mingw32msvc scons: Reading SConscript files ... Using GNU tools configuration Checking for memcpy requirement... (cached) yes Checking for memset requirement... (cached) yes Checking for main() in C library gdi32... (cached) no <snip> Contrib/InstallOptions/../ExDLL/exdll.h:103: warning: 'char* getuservariable(int)' defined but not used Contrib/InstallOptions/../ExDLL/exdll.h:109: warning: 'void setuservariable(int, const char*)' defined but not used i586-mingw32msvc-windres --include-dir Contrib/InstallOptions -i Contrib/InstallOptions/ioptdll.rc -o build/release/InstallOptions/ioptdll.o scons: *** Source file: build/release/InstallOptions/ioptdll.o is static and is not compatible with shared target: build/release/InstallOptions/libInstallOptions.so scons: building terminated because of errors. (not that the windres call didn't actually fail, just scons doesn't like it) * same with LangDLL, StartMenu * Makensisw can't be built - undefined symbols: TBN_DROPDOWN , TBDDRET_DEFAULT, TBDDRET_NODEFAULT. _WIN32_IE needs defining as 0x0500 before commctrl.h is included in Contrib/Makensisw/makensisw.h * Contrib/Math/Source/MyMath.c DBL_MAX_EXP, HUGE_VAL not defined. I placed a copy of the mingw math.h here: http://bonedaddy.net/pabs3/files/tmp/math.h * Contrib/System: build errors: 586-mingw32msvc-gcc -Os -Wall -fPIC -DSYSTEM_EXPORTS -c -o build/release/System/Source/Buffers.os Contrib/System/Source/Buffers.c Contrib/System/Source/Buffers.c:1: warning: -fPIC ignored for target (all code is position independent) In file included from Contrib/System/Source/Buffers.c:1: Contrib/System/Source/stdafx.h:13:27: warning: no newline at end of file In file included from Contrib/System/Source/Buffers.c:3: Contrib/System/Source/System.h:94: error: redefinition of typedef 'SystemProc' Contrib/System/Source/System.h:75: error: previous declaration of 'SystemProc' was here Contrib/System/Source/Buffers.c:11: error: redefinition of typedef 'TempStack' Contrib/System/Source/Buffers.c:6: error: previous declaration of 'TempStack' was here Contrib/System/Source/Buffers.c: In function `Copy': Contrib/System/Source/Buffers.c:40: warning: cast to pointer from integer of different size Contrib/System/Source/Buffers.c:49: warning: passing arg 1 of `pushint' makes integer from pointer without a cast Contrib/System/Source/Buffers.c:110:18: warning: no newline at end of file scons: *** [build/release/System/Source/Buffers.os] Error 1 * linking makensis: gcc -O2 -Wall -c -o build/release/makensis/zlib/trees.o Source/zlib/trees.c g++ -s -Wl,--file-alignment,512 -Wl,-Map,makensis.map -o build/release/makensis/makensis build/release/makensis/build.o build/release/makensis/clzma.o build/release/makensis/crc32.o build/release/makensis/DialogTemplate.o build/release/makensis/dirreader.o build/release/makensis/growbuf.o build/release/makensis/lang.o build/release/makensis/lineparse.o build/release/makensis/makenssi.o build/release/makensis/mmap.o build/release/makensis/Plugins.o build/release/makensis/ResourceEditor.o build/release/makensis/ResourceVersionInfo.o build/release/makensis/script.o build/release/makensis/ShConstants.o build/release/makensis/strlist.o build/release/makensis/tokens.o build/release/makensis/util.o build/release/makensis/bzip2/blocksort.o build/release/makensis/bzip2/bzlib.o build/release/makensis/bzip2/compress.o build/release/makensis/bzip2/huffman.o build/release/makensis/7zip/7zGuids.o build/release/makensis/7zip/Common/CRC.o build/release/makensis/7zip/7zip/Compress/LZ/LZInWindow.o build/release/makensis/7zip/7zip/Compress/LZMA/LZMAEncoder.o build/release/makensis/7zip/7zip/Common/OutBuffer.o build/release/makensis/7zip/7zip/Compress/RangeCoder/RangeCoderBit.o build/release/makensis/7zip/Common/Alloc.o build/release/makensis/zlib/deflate.o build/release/makensis/zlib/trees.o /usr/bin/ld: unrecognized option '--file-alignment' /usr/bin/ld: use the --help option for usage information collect2: ld returned 1 exit status scons: *** [build/release/makensis/makensis] Error 1 removing the --file-alignment thing fixes the build error bye, pabs |
![]() |
![]() |
![]() |
#10 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#11 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
$ gcc --version
gcc (GCC) 3.3.6 (Debian 1:3.3.6-3) $ ld --version GNU ld version 2.15 <snip> gcc -c -o build/release/halibut/version.o Docs/src/bin/halibut/version.c gcc -nostdlib -Wl,--exclude-libs,msvcrt.a -Wl,-e,___main -nostdlib -Wl,--exclude-libs,msvcrt.a -Wl,-e,___main -o build/release/halibut/halibut build/release/halibut/biblio.o build/release/halibut/bk_xhtml.o build/release/halibut/contents.o build/release/halibut/error.o build/release/halibut/help.o build/release/halibut/index.o build/release/halibut/input.o build/release/halibut/keywords.o build/release/halibut/licence.o build/release/halibut/main.o build/release/halibut/malloc.o build/release/halibut/misc.o build/release/halibut/style.o build/release/halibut/tree234.o build/release/halibut/ustring.o build/release/halibut/version.o /usr/bin/ld: unrecognized option '--exclude-libs' /usr/bin/ld: use the --help option for usage information collect2: ld returned 1 exit status scons: *** [build/release/halibut/halibut] Error 1 scons: building terminated because of errors. Then I removed "-Wl,--exclude-libs,msvcrt.a" from NODEFLIBS_FLAG. <snip> gcc -nostdlib -Wl,-e,___main -nostdlib -Wl,-e,___main -o build/release/halibut/halibut build/release/halibut/biblio.o build/release/halibut/bk_xhtml.o build/release/halib ut/contents.o build/release/halibut/error.o build/release/halibut/help.o build/release/halibut/index.o build/release/halibut/input.o build/release/halibut/keywords.o buil d/release/halibut/licence.o build/release/halibut/main.o build/release/halibut/malloc.o build/release/halibut/misc.o build/release/halibut/style.o build/release/halibut/t ree234.o build/release/halibut/ustring.o build/release/halibut/version.o /usr/bin/ld: warning: cannot find entry symbol ___main; defaulting to 0000000008048094 This gives these undefined symbols: __assert_fail exit fclose fopen fprintf fputs free _IO_getc localtime malloc memset printf putchar puts sprintf stderr strcmp strcpy strftime strlen time vsprintf Then I removed "-nostdlib" from NODEFLIBS_FLAG. After that, halibut linked fine. As far as the RCFLAGS things go, I note that the output is complaining about build/release/InstallOptions/libInstallOptions.so rather than build/release/InstallOptions/InstallOptions.dll, or build/release/InstallOptions/InstallOptions.os, so I think perhaps that the link target is using non-mingw stuff, when it shouldn't be. This looks like a similar problem to the RC issue: i586-mingw32msvc-gcc -Os -Wall -x c++ -fPIC -c -o build/release/Math/Source/plugin.os Contrib/Math/Source/plugin.c Contrib/Math/Source/plugin.c:1: warning: -fPIC ignored for target (all code is position independent) In file included from Contrib/Math/Source/plugin.c:2: Contrib/Math/Source/MyMath.h:163:51: warning: no newline at end of file Contrib/Math/Source/plugin.c:136:2: warning: no newline at end of file scons: *** Source file: Contrib/Math/Source/mathcrt.lib is static and is not compatible with shared target: build/release/Math/libMath.so scons: building terminated because of errors. Here, it looks like C++ plugins need to be linked with the standard libs: i586-mingw32msvc-g++ -Os -Wall -fPIC -c -o build/release/NSISdl/util.os Contrib/NSISdl/util.cpp Contrib/NSISdl/util.cpp:1: warning: -fPIC ignored for target (all code is position independent) Contrib/NSISdl/util.cpp:39:2: warning: no newline at end of file i586-mingw32msvc-g++ -s -Wl,--file-alignment,512 -Wl,-e,_DllMain@16 -nostdlib -Wl,--exclude-libs,msvcrt.a -Wl,-Map,NSISdl.map -shared -o build/release/NSISdl/libNSISdl.so build/release/NSISdl/asyncdns.os build/release/NSISdl/connection.os build/release/NSISdl/httpget.os build/release/NSISdl/nsisdl.os build/release/NSISdl/util.os .sconf_temp/funcs.os -lkernel32 -luser32 -ladvapi32 -lws2_32 build/release/NSISdl/connection.os:connection.cpp ![]() build/release/NSISdl/connection.os:connection.cpp ![]() build/release/NSISdl/connection.os:connection.cpp ![]() build/release/NSISdl/connection.os:connection.cpp ![]() build/release/NSISdl/connection.os:connection.cpp ![]() <snip> collect2: ld returned 1 exit status scons: *** [build/release/NSISdl/libNSISdl.so] Error 1 scons: building terminated because of errors. Contrib/System/Source/System.c contains lots of Microsoft assembly, which GCC doesn't understand. I'll probably disable building this in the debian version corresponding to 2.07, as I did for 2.06. _WIN32_IE needs to be 0x0500 for these (best to put it in makensisw.h, because more than 1 cpp file use it): Contrib/Makensisw/toolbar.cpp:58: error: `TBSTYLE_DROPDOWN' undeclared (first use this function) Contrib/Makensisw/toolbar.cpp:58: error: (Each undeclared identifier is reported only once for each function it appears in.) Contrib/Makensisw/toolbar.cpp:70: error: `TBSTYLE_TRANSPARENT' undeclared (first use this function) Contrib/Makensisw/toolbar.cpp:70: error: `TBSTYLE_FLAT' undeclared (first use this function) Contrib/Makensisw/toolbar.cpp:90: error: `TB_SETIMAGELIST' undeclared (first use this function) Contrib/Makensisw/toolbar.cpp:91: error: `TB_SETDISABLEDIMAGELIST' undeclared (first use this function) Contrib/Makensisw/toolbar.cpp:92: error: `TB_SETHOTIMAGELIST' undeclared (first use this function) Contrib/Makensisw/toolbar.cpp:96: error: `TB_SETEXTENDEDSTYLE' undeclared (first use this function) Contrib/Makensisw/toolbar.cpp:96: error: `TBSTYLE_EX_DRAWDDARROWS' undeclared (first use this function) Case problem in Contrib/Makensisw/resource.rc: i586-mingw32msvc-windres --include-dir Contrib/Makensisw --input-format rc --output-format coff -i Contrib/Makensisw/resource.rc -o build/release/Makensisw/resource.o i586-mingw32msvc-windres: can't open icon file `..\..\contrib\graphics\icons\modern-install-blue-full.ico': No such file or directory Using this line helped: IDI_ICON ICON "../Graphics/Icons/modern-install-blue-full.ico" I also get a syntax error on line 162 of Contrib/Makensisw/resource.rc - didn't seem to have some of these defined: TCS_HOTTRACK, TCS_BUTTONS, TCS_RAGGEDRIGHT, TCS_OWNERDRAWFIXED, TCS_MULTISELECT. This requires "#define _WIN32_IE 0x0300" before the afxres.h include. bye, pabs |
![]() |
![]() |
![]() |
#12 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
To fix the Contrib/Makensisw/resource.rc syntax error, you can also pass --define _WIN32_IE=0x0300 to windres.
bye, pabs |
![]() |
![]() |
![]() |
#13 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Hmmm, this halibut segfault is a heisenbug that sometimes hides itself from gdb (GNU debugger). The backtrace looks something like the following. The parameters to fprintf are all fine, so I've no idea whats going on.
<internal libc functions> vfprintf (vfprintf.c:1260) fprintf (fprintf.c:32) xhtml_add_contents_entry (bk_xhtml.c:1214) xhtml_do_contents_section_limit (bk_xhtml.c:1183) xhtml_do_contents_limit (bk_xhtml.c:1144) xhtml_do_naked_contents (bk_xhtml.c:1122) xhtml_do_file (bk_xhtml.c:955) xhtml_do_files (bk_xhtml.c:684) xhtml_backend (bk_xhtml.c:748) main (main.c:229) bye, pabs |
![]() |
![]() |
![]() |
#14 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
chm_toc might seem to have a valid value, but unless it's used in xhtml_do_top_file or in a function xhtml_do_top_file calls, it's closed. I've made xhtml_do_top_file set both chm_toc and chm_ind to NULL after they're closed. Let me know if a segfault is still raised.
I've removed --file-alignment from makensis' configuration as it seems to be MinGW specific. I've also made the tests reset the LINKFLAGS so halibut will be compiled with proper flags. All of the weird errors related to MinGW are probably raised because I haven't copied all of the tool specification. I shuold just copy mingw.py from SCons and modify it to properly search for MinGW, instead of just adding the prefix to gcc, g++, ld and friends. I'll take a look at the other problems later. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#15 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
No more segfaults, yay! Thanks for that, now Docs buildage fails due to no hhc
![]() bye, pabs |
![]() |
![]() |
![]() |
#16 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
I do intend to make some targets optional in the SConstruct. For example, I'd also like to make it possible to use precompiled stubs and plug-ins, like with the old makefiles. I don't know how I want to do that yet, though. On POSIX, it should not use hhc and chm_config.but at all, but instead use config.but and create HTML documentation.
NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#17 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
I've attached a slightly modified mingw tool definition to be used in cross_env(). It searches for some known prefixes of MinGW and unlike the old cross_env(), it also sets library suffix, shared object suffix and more. Please let me know if it helps.
To get rid of the C++ plug-in errors, add plugin_env.Append(LIBS = ['stdc++']) to SCons/Config/gnu. If the same happens with utilities, add util_env.Append(LIBS = ['stdc++']). All of those TB_* defines require 0x0400. Once SourceForge's CVS is back online, I'll commit the change to move that define to makensis.h as you've suggested. Same goes to resource.rc. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#18 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
After unpacking scons.zip over the source tree, I get this:
pabs@chianamo:~/devel/debian/nsis/NSIS$ scons scons: Reading SConscript files ... Using GNU tools configuration NameError: name 'Split' is not defined: File "SConstruct", line 131: envs = SConscript('SCons/Config/gnu') File "/usr/lib/python2.2/site-packages/SCons/Script/SConscript.py", line 534: return apply(method, args, kw) File "/usr/lib/python2.2/site-packages/SCons/Script/SConscript.py", line 471: return apply(_SConscript, [self.fs,] + files, {'exports' : exports}) File "/usr/lib/python2.2/site-packages/SCons/Script/SConscript.py", line 217: exec _file_ in call_stack[-1].globals File "SCons/Config/gnu", line 34: cross_env(stub_env) File "SCons/Config/gnu", line 14: env.Tool('crossmingw', toolpath = ['../Tools']) File "/usr/lib/python2.2/site-packages/SCons/Environment.py", line 1054: tool = apply(SCons.Tool.Tool, (tool, toolpath), kw) File "/usr/lib/python2.2/site-packages/SCons/Tool/__init__.py", line 102: module = imp.load_module(name, file, path, desc) File "../Tools/crossmingw.py", line 46: None Using SCons.Util.Split instead of just Split fixes this. When it gets to hhc, it still wants to run hhc, so I disabled that. Then I get this: i586-mingw32msvc-windres --include-dir Contrib/Makensisw -i Contrib/Makensisw/resource.rc -o build/release/Makensisw/resource.o i586-mingw32msvc-windres: can't open icon file `..\..\Contrib\Graphics\Icons\modern-install-blue-full.ico': No such file or directory Contrib/Makensisw/resource.rc:0: fatal error: when writing output to : Broken pipe compilation terminated. scons: *** [build/release/Makensisw/resource.o] Error 1 scons: building terminated because of errors. Changing it to use this helped: "../Graphics/Icons/modern-install-blue-full.ico" Then I get this: i586-mingw32msvc-g++ -s -Wl,--file-alignment,512 -Wl,-e,_DllMain@16 -nostdlib -Wl,--exclude-libs,msvcrt.a -Wl,-Map,NSISdl.map -shared -o build/release/NSISdl/libNSISdl.so build/release/NSISdl/asyncdns.o build/release/NSISdl/connection.o build/release/NSISdl/httpget.o build/release/NSISdl/nsisdl.o build/release/NSISdl/util.o .sconf_temp/funcs.o -lkernel32 -luser32 -ladvapi32 -lws2_32 -Wl,--out-implib,build/release/NSISdl/libNSISdl.a -Wl,--output-def,build/release/NSISdl/NSISdl.def Creating library file: build/release/NSISdl/libNSISdl.a build/release/NSISdl/connection.o:connection.cpp: (.text+0x1c) : undefined reference to `___gxx_personality_sj0' build/release/NSISdl/connection.o:connection.cpp: (.text+0x32) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/connection.o:connection.cpp: (.text+0xa5) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/connection.o:connection.cpp: (.text+0xdc) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/connection.o:connection.cpp: (.text+0xea) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/connection.o:connection.cpp: (.text+0x13e) : undefined reference to `__Unwind_SjLj_Unregister' build/release/NSISdl/connection.o:connection.cpp: (.text+0x168) : undefined reference to `___gxx_personality_sj0' build/release/NSISdl/connection.o:connection.cpp: (.text+0x17e) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/connection.o:connection.cpp: (.text+0x1f1) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/connection.o:connection.cpp: (.text+0x228) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/connection.o:connection.cpp: (.text+0x236) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/connection.o:connection.cpp: (.text+0x28a) : undefined reference to `__Unwind_SjLj_Unregister' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x133) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x16d) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x3dd) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x3fa) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x43c) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x458) : more undefined references to `operator new[](unsigned int)' follow build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x4ec) : undefined reference to `___gxx_personality_sj0' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x500) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x51f) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x5ae) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x68f) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x6c0) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x86a) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x8f8) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x91e) : undefined reference to `__Unwind_SjLj_Unregister' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x972) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0xa0e) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0xad4) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0xb39) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0xbba) : undefined reference to `operator new[](unsigned int)' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0xcd2) : more undefined references to `operator new[](unsigned int)' follow build/release/NSISdl/nsisdl.o:nsisdl.cpp: (.text+0x4b1) : undefined reference to `___gxx_personality_sj0' build/release/NSISdl/nsisdl.o:nsisdl.cpp: (.text+0x4cb) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/nsisdl.o:nsisdl.cpp: (.text+0xa03) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/nsisdl.o:nsisdl.cpp: (.text+0xff7) : undefined reference to `__Unwind_SjLj_Unregister' collect2: ld returned 1 exit status scons: *** [build/release/NSISdl/libNSISdl.so] Error 1 scons: building terminated because of errors. Adding stdc++ gives me this: i586-mingw32msvc-g++ -s -Wl,--file-alignment,512 -Wl,-e,_DllMain@16 -nostdlib -Wl,--exclude-libs,msvcrt.a -Wl,-Map,NSISdl.map -shared -o build/release/NSISdl/libNSISdl.so build/release/NSISdl/asyncdns.o build/release/NSISdl/connection.o build/release/NSISdl/httpget.o build/release/NSISdl/nsisdl.o build/release/NSISdl/util.o .sconf_temp/funcs.o -lkernel32 -luser32 -ladvapi32 -lws2_32 -lstdc++ -Wl,--out-implib,build/release/NSISdl/libNSISdl.a -Wl,--output-def,build/release/NSISdl/NSISdl.def Creating library file: build/release/NSISdl/libNSISdl.a build/release/NSISdl/connection.o:connection.cpp: (.text+0x32) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/connection.o:connection.cpp: (.text+0xa5) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/connection.o:connection.cpp: (.text+0x13e) : undefined reference to `__Unwind_SjLj_Unregister' build/release/NSISdl/connection.o:connection.cpp: (.text+0x17e) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/connection.o:connection.cpp: (.text+0x1f1) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/connection.o:connection.cpp: (.text+0x28a) : undefined reference to `__Unwind_SjLj_Unregister' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x500) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x86a) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/httpget.o:httpget.cpp: (.text+0x91e) : undefined reference to `__Unwind_SjLj_Unregister' build/release/NSISdl/nsisdl.o:nsisdl.cpp: (.text+0x4cb) : undefined reference to `__Unwind_SjLj_Register' build/release/NSISdl/nsisdl.o:nsisdl.cpp: (.text+0xa03) : undefined reference to `__Unwind_SjLj_Resume' build/release/NSISdl/nsisdl.o:nsisdl.cpp: (.text+0xff7) : undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `_abort' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_GetTextRelBase' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_GetDataRelBase' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_GetRegionStart' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `_abort' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_GetRegionStart' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `_abort' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_GetLanguageSpecificData' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_GetIP' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SetGR' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SetGR' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SetIP' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_personality.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(new_opv.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(new_opv.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(new_opv.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(tinfo.o) :: undefined reference to `_strcmp' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_terminate.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_terminate.o) :: undefined reference to `_abort' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_terminate.o) :: undefined reference to `_abort' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_terminate.o) :: undefined reference to `___w32_sharedptr_terminate' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_terminate.o) :: undefined reference to `___w32_sharedptr_unexpected' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_terminate.o) :: undefined reference to `___w32_sharedptr_terminate' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_terminate.o) :: undefined reference to `___w32_sharedptr_unexpected' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_throw.o) :: undefined reference to `___w32_sharedptr_unexpected' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_throw.o) :: undefined reference to `___w32_sharedptr_terminate' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_throw.o) :: undefined reference to `__Unwind_SjLj_RaiseException' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_throw.o) :: undefined reference to `__Unwind_SjLj_Resume_or_Rethrow' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `___gthr_win32_mutex_init_function' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `_malloc' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__CRT_MT' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__CRT_MT' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `___gthr_win32_once' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__CRT_MT' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `___gthr_win32_mutex_lock' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `___gthr_win32_mutex_unlock' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__CRT_MT' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__CRT_MT' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `___gthr_win32_mutex_unlock' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `_free' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `___gthr_win32_mutex_lock' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_alloc.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_TlsAlloc@0' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `___mingwthr_key_dtor' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_GetLastError@0' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_GetLastError@0' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_TlsGetValue@4' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_SetLastError@4' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_GetLastError@0' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_TlsGetValue@4' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_SetLastError@4' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `__CRT_MT' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_InterlockedIncrement@4' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_malloc' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_TlsSetValue@8' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_GetLastError@0' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_globals.o) :: undefined reference to `_free' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_catch.o) :: undefined reference to `__Unwind_SjLj_Register' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_catch.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_catch.o) :: undefined reference to `__Unwind_SjLj_Unregister' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_catch.o) :: undefined reference to `__Unwind_SjLj_Resume' /usr/lib/gcc/i586-mingw32msvc/3.4.2/libstdc++.a(eh_catch.o) :: undefined reference to `__Unwind_DeleteException' collect2: ld returned 1 exit status scons: *** [build/release/NSISdl/libNSISdl.so] Error 1 scons: building terminated because of errors. Then comes the problem where gcc doesn't support MSVC inline asm - in System.c. After that there are no errors. One thing I did notice is that all the plugins are named lib<foo>.so instead of <foo.dll>, and they all come with a lib<foo>.a accompaning them. pabs@chianamo:~/devel/debian/nsis/NSIS$ file `find build/ -iname \*.so` build/release/Banner/libBanner.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/Math/libMath.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/Dialer/libDialer.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/AdvSplash/libAdvSplash.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/BgImage/libBgImage.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/Splash/libSplash.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/VPatch/Source/Plugin/libVPatch.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/StartMenu/libStartMenu.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/UserInfo/libUserInfo.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/LangDLL/libLangDLL.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/Library/TypeLib/libTypeLib.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/nsExec/libnsExec.so: MS Windows PE 32-bit Intel 80386 console DLL build/release/InstallOptions/libInstallOptions.so: MS Windows PE 32-bit Intel 80386 console DLL pabs@chianamo:~/devel/debian/nsis/NSIS$ file `find build/ -iname \*.a` build/release/Banner/libBanner.a: current ar archive build/release/Math/libMath.a: current ar archive build/release/Dialer/libDialer.a: current ar archive build/release/AdvSplash/libAdvSplash.a: current ar archive build/release/BgImage/libBgImage.a: current ar archive build/release/NSISdl/libNSISdl.a: current ar archive build/release/Splash/libSplash.a: current ar archive build/release/VPatch/Source/Plugin/libVPatch.a: current ar archive build/release/StartMenu/libStartMenu.a: current ar archive build/release/UserInfo/libUserInfo.a: current ar archive build/release/LangDLL/libLangDLL.a: current ar archive build/release/Library/TypeLib/libTypeLib.a: current ar archive build/release/nsExec/libnsExec.a: current ar archive build/release/InstallOptions/libInstallOptions.a: current ar archive bye, pabs |
![]() |
![]() |
![]() |
#19 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
To get it to create DLLs instead of lib*.so, try adding the following as the first line in cross_env():
I have copied the makensisw icon to its local directory in CVS, just like shell.ico. It should work now.code: As for the C++ stuff, I'll see if I can get it to compile without msvcrt. For now, you can pass nodeflib=0 on the BuildPlugin call, just like in System's SConscript. Please attach large outputs or at least put them inside [ quote ] [ /quote ] or [ code ] [ /code ]. It's really hard to follow a message with so much output pasted in it. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#20 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Adding env.Platform('win32') to cross_env() causes this:
code: Not sure why this happens. Sorry about the [ code ] stuff, I'm not really familiar with forums, I mainly use email/irc for communicating with free software projects. I wonder if this forum can gateway to/from email. I'll attach a CVS diff that allows nsis to build properly on debian. bye, pabs |
![]() |
![]() |
![]() |
#21 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Hmm, I don't know exactly how to upload attachments, so I've uploaded it to my homepage:
http://bonedaddy.net/pabs3/files/tmp...s-debian.patch bye, pabs |
![]() |
![]() |
![]() |
#22 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
Right... win32 platform sets a bit more than what I thought. I guess crossmingw.py will have to set some more from scons/SCons/Platform/win32.py on its own. Try adding this to crossmingw.py's generate():
To attach files, click the Post a Reply button. You can't attach files from the quick reply area.code: This forum has no e-mail gateway. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#23 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
With env.Platform('win32') in cross_env() and the changes to generate(), I still get this error:
code: It doesn't create an .obj file, but interestingly, running the i586-mingw32msvc-gcc command from bash does work. When I turn off env.Platform('win32'), it all works. After a successful build, I ran scons -c and find build/, giving the following output. A minor issue for the debian package, because I will have to run rm -rf build/ in the clean target as well as scons -c. code: |
![]() |
![]() |
![]() |
#24 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
Thanks, updated to match in CVS.
You don't have to clean the build directory. You can use the install target along with the PREFIX command line option to get a clean copy with no sources and no intermediate build files. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#25 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
SCons/Config/gnu cross_env should be:
code: instead of: code: Otherwise I get a syntax error (missing : at the end of the if line). Also, do you plan to create a way to enable/disable stuff on the commandline so the attached patch isn't nessecary - something like: scons DONT_BUILD_PLUGINS=System ADD_DEFLIBS=NSISdl DONT_BUILD_CHM DOCS_INSTALL_HTML bye, pabs |
![]() |
![]() |
![]() |
#26 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
Fixed cross_env, thanks.
I have added a few command line options. It should now all work without a change, by using: code: NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#27 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Running scons SKIPPLUGINS=System install gives this:
code: bye, pabs |
![]() |
![]() |
![]() |
#28 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
Thanks, fixed.
NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#29 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
I'm preparing the debian package of 2.07b0 as an exercise in packaging the scons version of nsis. I'm running up against problems with the debian build tools not being able to represent changes to binary files that are changed during scons -c (which needs to be run before building a .deb). It'd be great if .sconf_temp, .sconsign.dblite and SCons/Tools/crossmingw.pyc could be absent from the source release tarball.
Also, might I suggest installing stuff to different locations on POSIX platforms? In my 2.06 debian package, I installed stuff to the following. Hmm, 2.07b0 doesn't seem to install everything when PREFIX is set - only makensis and the stubs. code: I'd suggest that the location of the config file be separately configurable to the PREFIX (in the above, PREFIX=/usr). On end-user POSIX systems, PREFIX should default to /usr/local, and the config file should be in PREFIX/etc/nsisconf.nsh by default. Also, in my debian package, I check for a per-user $HOME/.nsisconf.nsh file, should I submit the patch for that? Also, it would be good to have a copy of the cvs changelog in the source release tarball as a ChangeLog file (using http://www.red-bean.com/cvs2cl/) and a text copy of appendix E as a NEWS file. Also, I wrote a manpage (in docbook) for makensis for the debian package, should I submit it for inclusion? bye, pabs |
![]() |
![]() |
![]() |
#30 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
.sconf_temp, .sconsign.dblite and SCons/Tools/crossmingw.pyc are absent of source release tarballs. A source release is simply a dump of CVS with a specific tag.
If you submit a patch that will install files to more standard locations on POSIX, I will apply it. If only makensis and the stubs are installed, it's probably because the `install` target is aliased to the directory specified by PREFIX. If you install to other directories, they must be aliased to `install` too. Please submit a patch for ~/.nsisconf.nsh. It's a nice feature. I might also back-port it to Windows. Please also submit the manpage patch. As for NEWS and ChangeLog, they can be easily generated without being included in the package for now. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#31 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Hmm, the install-docs, install-examples, install-includes, install-plugins etc all complain about the missing directory and then do nothing after I create it.
As far as I can see, the other targets are aliased to the correct directories: code: Submitted the manpage and the per-user configs patch. I'll try to get my head around scons and create a patch for installing to POSIX standard locations. bye, pabs |
![]() |
![]() |
![]() |
#32 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
What exactly is it saying about those directories? I was talking about a case where you've already changed where it installs files in which case the aliases are out of date.
NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#33 | ||
Senior Member
Join Date: Mar 2005
Posts: 186
|
From a clean checkout just now:
Quote:
Clearly the install target doesn't install stuff when PREFIX is set. Running it without PREFIX set seems to install stuff to nsis-<version>, then convert that to a zip file and remove the directory. That sounds like a job for the dist target rather than the install target. Quote:
bye, pabs |
||
![]() |
![]() |
![]() |
#34 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
Try specifying a full path for PREFIX. It should only ask you to create the very top directory. At least that's how it works on Windows...
If you use `install` without specifying PREFIX, PREFIX is empty and so `install` builds the current directory which also includes the dist directory. I'll see if some nice error can be raised in this case. Try the attached patch for Docs/src/SConscript to get rid of the style.css error. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#35 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
You are right about the full path for PREFIX thing, setting it like that works.
the Docs/src/SConscript patch gives the following error running scons install: code: bye, pabs |
![]() |
![]() |
![]() |
#36 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
Replace line 99 of the original version with:
code: NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#37 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Hmm, I re-checked out cvs (re-checked out, not updated), and got this:
code: I'm thinking that it'd be best to just install "prefix/Docs/style.css" from Docs/style.css, and not bother with copying the .css file around. |
![]() |
![]() |
![]() |
#38 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
The latest CVS version should take the file from the build directory. You might have downloaded the old version due to the anonymous CVS lag.
Installing style.css from Docs/style.css is what I've tried in the above patch. It might have worked without ${SOURCE.dir}, but then you wouldn't know for sure if it takes it from Docs/style.css or build_dir/../style.css. The version I've uploaded to CVS works for me as opposed to the old version which didn't work on clean builds. It should work for you too. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
#39 |
Senior Member
Join Date: Mar 2005
Posts: 186
|
Anonymous CVS seems to have caught up, but now I get the following error building makensisw (it built fine before). I suppose anon CVS is missing a few files
![]() code: |
![]() |
![]() |
![]() |
#40 |
M.I.A.
[NSIS Dev, Mod] Join Date: Oct 2001
Location: Israel
Posts: 11,343
|
I forgot to add update.cpp and update.h. They are there now.
I'll see if something can be done with CVS. NSIS FAQ | NSIS Home Page | Donate $ "I hear and I forget. I see and I remember. I do and I understand." -- Confucius |
![]() |
![]() |
![]() |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|