target = 'makensis' pch = 'Platform.h' makensis_files = Split(""" build.cpp clzma.cpp crc32.c DialogTemplate.cpp dirreader.cpp growbuf.cpp lang.cpp lineparse.cpp makenssi.cpp mmap.cpp Plugins.cpp ResourceEditor.cpp ResourceVersionInfo.cpp script.cpp ShConstants.cpp strlist.cpp tokens.cpp util.cpp """) bzip2_files = Split(""" bzip2/blocksort.c bzip2/bzlib.c bzip2/compress.c bzip2/huffman.c """) lzma_files = Split(""" 7zip/7zGuids.cpp 7zip/Common/CRC.cpp 7zip/7zip/Compress/LZ/LZInWindow.cpp 7zip/7zip/Compress/LZMA/LZMAEncoder.cpp 7zip/7zip/Common/OutBuffer.cpp 7zip/7zip/Compress/RangeCoder/RangeCoderBit.cpp 7zip/Common/Alloc.cpp """) zlib_files = Split(""" zlib/deflate.c zlib/trees.c """) libs = Split(""" gdi32 user32 version pthread stdc++ iconv libiconv """) Import('env') ##### Configure conf = env.Configure() for lib in libs: conf.CheckLib(lib) conf.Finish() ##### Set PCH # XXX doesn't work #env['PCH'] = env.PCH(pch)[0] #env['PCHSTOP'] = pch ##### Compile LZMA lzma_env = env.Copy() lzma_env.Append(CPPDEFINES = ['COMPRESS_MF_BT']) lzma_files = lzma_env.Object(lzma_files) ##### Compile makensis files = makensis_files + bzip2_files + lzma_files + zlib_files makensis = env.Program(target, files) Return('makensis')