Updated NSIS to 2.43 (Levente Farkas).
[fedora-mingw.git] / nsis / nsis-2.43-debian-debug-opt.patch
diff --git a/nsis/nsis-2.43-debian-debug-opt.patch b/nsis/nsis-2.43-debian-debug-opt.patch
new file mode 100644 (file)
index 0000000..ca31827
--- /dev/null
@@ -0,0 +1,116 @@
+diff -up ./SCons/Config/gnu.debug ./SCons/Config/gnu
+--- ./SCons/Config/gnu.debug   2009-02-13 12:41:42.000000000 +0100
++++ ./SCons/Config/gnu 2009-02-13 12:42:37.000000000 +0100
+@@ -68,13 +68,16 @@ cross_env(stub_env)
+ stub_env.Append(CPPPATH = ['#$BUILD_CONFIG'])
+-if not defenv['DEBUG']:
+-      stub_env.Append(CCFLAGS = ['-Os'])                # optimize for size
++if defenv['DEBUG_SYMBOLS']:
++      stub_env.Append(LINKFLAGS = '-g')           # debugging
++      stub_env.Append(CCFLAGS = '-g')             # debugging
++if not defenv['DEBUG'] and defenv['OPT']:
++      stub_env.Append(CCFLAGS = ['-O2'])          # optimize
+ stub_env.Append(CCFLAGS = ['-Wall'])                # all warnings
+ stub_env.Append(CCFLAGS = ['-xc'])                  # force compile as c
+ stub_env.Append(CCFLAGS = ['-fno-strict-aliasing']) # not safe for strict aliasing
+-if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_W32']:
++if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] and defenv['STRIP_W32']:
+       stub_env.Append(LINKFLAGS = ['-s'])               # strip
+ stub_env.Append(LINKFLAGS = ['-mwindows'])          # build windows executables
+ stub_env.Append(LINKFLAGS = ['$NODEFLIBS_FLAG'])    # no standard libraries
+@@ -88,15 +91,18 @@ makensis_env = defenv.Clone()
+ makensis_env.Append(CPPPATH = ['#$BUILD_CONFIG'])
+-if not defenv['DEBUG']:
+-      makensis_env.Append(CCFLAGS = ['-O2'])                  # optimize
++if defenv['DEBUG_SYMBOLS']:
++      makensis_env.Append(LINKFLAGS = '-g')             # debugging
++      makensis_env.Append(CCFLAGS = '-g')               # debugging
++if not defenv['DEBUG'] and defenv['OPT']:
++      makensis_env.Append(CCFLAGS = ['-O2'])            # optimize
+ makensis_env.Append(CFLAGS = ['-Wall'])                   # all warnings
+ makensis_env.Append(CXXFLAGS = ['-Wno-non-virtual-dtor']) # ignore virtual dtor warnings
+ makensis_env.Append(CXXFLAGS = ['-Wall'])                 # all warnings
+ conf = FlagsConfigure(makensis_env)
+ conf.CheckLinkFlag('$MAP_FLAG')                   # generate map file
+-if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_CP']:
++if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] and defenv['STRIP_CP']:
+       TestStrip(conf)                                 # strip
+ conf.Finish()
+@@ -105,12 +111,15 @@ conf.Finish()
+ plugin_env = defenv.Clone()
+ cross_env(plugin_env)
+-if not defenv['DEBUG']:
+-      plugin_env.Append(CCFLAGS = ['-Os'])              # optimize for size
++if defenv['DEBUG_SYMBOLS']:
++      plugin_env.Append(LINKFLAGS = '-g')         # debugging
++      plugin_env.Append(CCFLAGS = '-g')           # debugging
++if not defenv['DEBUG'] and defenv['OPT']:
++      plugin_env.Append(CCFLAGS = ['-O2'])        # optimize
+ plugin_env.Append(CCFLAGS = ['-Wall'])              # level 3 warnings
+ plugin_env.Append(CCFLAGS = ['-fno-strict-aliasing']) # not safe for strict aliasing
+-if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_W32']:
++if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] and defenv['STRIP_W32']:
+       plugin_env.Append(LINKFLAGS = ['-s'])             # strip
+ plugin_env.Append(LINKFLAGS = ['-mwindows'])        # build windows executables
+ plugin_env.Append(LINKFLAGS = ['$ALIGN_FLAG'])      # 512 bytes align
+@@ -122,7 +131,10 @@ cp_util_env = defenv.Clone()
+ cp_util_env.Append(CPPPATH = ['#$BUILD_CONFIG'])
+-if not defenv['DEBUG']:
++if defenv['DEBUG_SYMBOLS']:
++      cp_util_env.Append(LINKFLAGS = '-g')        # debugging
++      cp_util_env.Append(CCFLAGS = '-g')          # debugging
++if not defenv['DEBUG'] and defenv['OPT']:
+       cp_util_env.Append(CCFLAGS = ['-O2'])             # optimize
+ cp_util_env.Append(CCFLAGS = ['-Wall'])             # all warnings
+ cp_util_env.Append(CCFLAGS = ['-fno-strict-aliasing']) # not safe for strict aliasing
+@@ -140,7 +152,7 @@ util_env.Append(LINKFLAGS = ['-mwindows'
+ util_env.Append(LINKFLAGS = ['$ALIGN_FLAG'])        # 512 bytes align
+ conf = FlagsConfigure(util_env)
+-if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_W32']:
++if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] and defenv['STRIP_W32']:
+       util_env.Append(LINKFLAGS = ['-s'])                   # strip
+ conf.Finish()
+@@ -149,7 +161,7 @@ conf.Finish()
+ conf = FlagsConfigure(cp_util_env)
+ conf.CheckCompileFlag('-m32')
+ conf.CheckLinkFlag('-m32')
+-if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_CP']:
++if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] and defenv['STRIP_CP']:
+       TestStrip(conf)                                 # strip
+ conf.Finish()
+@@ -157,6 +169,9 @@ conf.Finish()
+ test_env = defenv.Clone()
+ test_env.Append(CPPPATH = ['#$BUILD_CONFIG'])
++if defenv['DEBUG_SYMBOLS']:
++      test_env.Append(LINKFLAGS = '-g')           # debugging
++      test_env.Append(CCFLAGS = '-g')             # debugging
+ conf = FlagsConfigure(test_env)
+ conf.CheckCompileFlag('-m32')
+ conf.CheckLinkFlag('-m32')
+diff -up ./SConstruct.debug ./SConstruct
+--- ./SConstruct.debug 2009-02-04 15:05:48.000000000 +0100
++++ ./SConstruct       2009-02-13 12:41:42.000000000 +0100
+@@ -157,6 +157,8 @@ opts.Add(('APPEND_CCFLAGS', 'Additional 
+ opts.Add(('APPEND_LINKFLAGS', 'Additional linker flags'))
+ # build options
+ opts.Add(BoolVariable('DEBUG', 'Build executables with debugging information', 'no'))
++opts.Add(BoolOption('DEBUG_SYMBOLS', 'Build with debugging information, but none of the side effects of DEBUG', 'no'))
++opts.Add(BoolOption('OPT', 'Build with optimization', 'yes'))
+ opts.Add(PathVariable('CODESIGNER', 'A program used to sign executables', None))
+ opts.Add(BoolVariable('STRIP', 'Strips executables of any unrequired data such as symbols', 'yes'))
+ opts.Add(BoolVariable('STRIP_CP', 'Strips cross-platform executables of any unrequired data such as symbols', 'yes'))