| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 
 | target = 'makensis'
pch = 'Platform.h'
makensis_files = Split("""
	build.cpp
	clzma.cpp
	crc32.c
	DialogTemplate.cpp
	dirreader.cpp
	fileform.cpp
	growbuf.cpp
	icon.cpp
	lang.cpp
	lineparse.cpp
	makenssi.cpp
	manifest.cpp
	mmap.cpp
	Plugins.cpp
	ResourceEditor.cpp
	ResourceVersionInfo.cpp
	BinInterop.cpp
	script.cpp
	scriptpp.cpp
	ShConstants.cpp
	strlist.cpp
	tokens.cpp
	tstring.cpp
	utf.cpp
	util.cpp
	winchar.cpp
	writer.cpp
""")
bzip2_files = Split("""
	bzip2/blocksort.c
	bzip2/bzlib.c
	bzip2/compress.c
	bzip2/huffman.c
""")
lzma_files = Split("""
	7zip/7zGuids.cpp
	7zip/7zip/Common/OutBuffer.cpp
	7zip/7zip/Common/StreamUtils.cpp
	7zip/7zip/Compress/LZ/LZInWindow.cpp
	7zip/7zip/Compress/LZMA/LZMAEncoder.cpp
	7zip/7zip/Compress/RangeCoder/RangeCoderBit.cpp
	7zip/Common/Alloc.cpp
	7zip/Common/CRC.cpp
""")
libs = Split("""
	gdi32
	user32
	pthread
	iconv
	shlwapi
	oleaut32
	version
	shell32
""")
Import('env AddAvailableLibs AddZLib')
##### Use available libraries
if env['PLATFORM'] == 'win32':
	# XXX will cause problems if makensis is cross compiled
	# on freebsd, libversion.a exists and gives trouble if linked
	libs += ['version']
AddAvailableLibs(env, libs)
AddZLib(env, env['PLATFORM'], 'install-compiler')
##### Defines
env.Append(CPPDEFINES = ['MAKENSIS'])
env.Append(CPPDEFINES = ['_WIN32_IE=0x0500'])
##### Set PCH
# XXX doesn't work
#env['PCH'] = env.PCH(pch)[0]
#env['PCHSTOP'] = pch
##### LZMA specific defines
lzma_env = env.Clone()
lzma_env.Append(CPPDEFINES = ['COMPRESS_MF_BT'])
lzma_files = lzma_env.Object(lzma_files)
##### Compile makensis
files = makensis_files + bzip2_files + lzma_files
makensis = env.Program(target, files)
Return('makensis')
 |