Merge AMBuild2 upgrade from sourcemod-1.6 to sourcemod-1.5.
This commit is contained in:
		
							parent
							
								
									de8157302d
								
							
						
					
					
						commit
						1030c9b1b3
					
				
							
								
								
									
										925
									
								
								AMBuildScript
									
									
									
									
									
								
							
							
						
						
									
										925
									
								
								AMBuildScript
									
									
									
									
									
								
							| @ -1,450 +1,48 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python: | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os, sys | ||||||
| import sys |  | ||||||
| from ambuild.command import Command |  | ||||||
| from ambuild.command import ShellCommand |  | ||||||
| from ambuild.command import SymlinkCommand |  | ||||||
| 
 | 
 | ||||||
| class ExtractDebugInfoCommand(Command): | class SDK(object): | ||||||
| 	def __init__(self, binary, outfile): |   def __init__(self, sdk, ext, aDef, name, platform, dir): | ||||||
| 		Command.__init__(self) |     if dir == 'ep1': | ||||||
| 		self.binary = binary |       folder = 'hl2sdk' | ||||||
| 		self.outfile = outfile |  | ||||||
| 
 |  | ||||||
| 	def run(self, runner, job): |  | ||||||
| 		if AMBuild.cache['debug']: |  | ||||||
| 			return |  | ||||||
| 
 |  | ||||||
| 		if not self.binary.NeedsRelink(self.outfile): |  | ||||||
| 			return |  | ||||||
| 
 |  | ||||||
| 		if AMBuild.target['platform'] == 'linux': |  | ||||||
| 			job.AddCommand(ShellCommand('objcopy --only-keep-debug ' + self.outfile + ' ' + self.outfile + '.dbg')) |  | ||||||
| 			job.AddCommand(ShellCommand('objcopy --strip-debug ' + self.outfile)) |  | ||||||
| 			job.AddCommand(ShellCommand('objcopy --add-gnu-debuglink=' + os.path.basename(self.outfile) + '.dbg ' + self.outfile)) |  | ||||||
| 		elif AMBuild.target['platform'] == 'darwin': |  | ||||||
| 			job.AddCommand(ShellCommand('dsymutil ' + self.outfile)) |  | ||||||
| 			job.AddCommand(ShellCommand('strip -S ' + self.outfile)) |  | ||||||
| 
 |  | ||||||
| class SM: |  | ||||||
| 	def __init__(self): |  | ||||||
| 		self.compiler = Cpp.Compiler() |  | ||||||
| 
 |  | ||||||
| 		#Build SDK info |  | ||||||
| 		self.possibleSdks = { } |  | ||||||
| 		self.possibleSdks['ep1'] =   {'sdk': 'HL2SDK',          'ext': '1.ep1',   'def': '1', |  | ||||||
| 		                         'name': 'EPISODEONE',     'platform': ['windows', 'linux'], |  | ||||||
| 		                         'dir': 'hl2sdk'} |  | ||||||
| 		self.possibleSdks['ep2'] =   {'sdk': 'HL2SDKOB',        'ext': '2.ep2',   'def': '3', |  | ||||||
| 		                         'name': 'ORANGEBOX',      'platform': ['windows', 'linux'], |  | ||||||
| 		                         'dir': 'hl2sdk-ob'} |  | ||||||
| 		self.possibleSdks['css'] =   {'sdk': 'HL2SDKCSS',       'ext': '2.css',   'def': '6', |  | ||||||
| 		                         'name': 'CSS',            'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                         'dir': 'hl2sdk-css'} |  | ||||||
| 		self.possibleSdks['hl2dm'] = {'sdk': 'HL2SDKHL2DM',     'ext': '2.hl2dm', 'def': '7', |  | ||||||
| 		                         'name': 'HL2DM',          'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                        'dir': 'hl2sdk-hl2dm'} |  | ||||||
| 		self.possibleSdks['dods'] =  {'sdk': 'HL2SDKDODS',      'ext': '2.dods',  'def': '8', |  | ||||||
| 		                         'name': 'DODS',           'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                        'dir': 'hl2sdk-dods'} |  | ||||||
| 		self.possibleSdks['tf2'] =   {'sdk': 'HL2SDKTF2',       'ext': '2.tf2',   'def': '9', |  | ||||||
| 		                         'name': 'TF2',            'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                        'dir': 'hl2sdk-tf2'} |  | ||||||
| 		self.possibleSdks['l4d'] =   {'sdk': 'HL2SDKL4D',       'ext': '2.l4d',   'def': '10', |  | ||||||
| 		                         'name': 'LEFT4DEAD',      'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                         'dir': 'hl2sdk-l4d'} |  | ||||||
| 		self.possibleSdks['nd'] =    {'sdk': 'HL2SDKND',        'ext': '2.nd',    'def': '11', |  | ||||||
| 		                         'name': 'NUCLEARDAWN',    'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                         'dir': 'hl2sdk-nd'} |  | ||||||
| 		self.possibleSdks['l4d2'] =  {'sdk': 'HL2SDKL4D2',      'ext': '2.l4d2',  'def': '12', |  | ||||||
| 		                         'name': 'LEFT4DEAD2',     'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                         'dir': 'hl2sdk-l4d2'} |  | ||||||
| 		self.possibleSdks['darkm'] = {'sdk': 'HL2SDK-DARKM',    'ext': '2.darkm', 'def': '2', |  | ||||||
| 		                         'name': 'DARKMESSIAH',    'platform': ['windows'], |  | ||||||
| 		                          'dir': 'hl2sdk-darkm'} |  | ||||||
| 		self.possibleSdks['swarm'] = {'sdk': 'HL2SDK-SWARM',    'ext': '2.swarm', 'def': '13', |  | ||||||
| 		                         'name': 'ALIENSWARM',     'platform': ['windows'], |  | ||||||
| 		                         'dir': 'hl2sdk-swarm'} |  | ||||||
| 		self.possibleSdks['bgt'] =   {'sdk': 'HL2SDK-BGT',      'ext': '2.bgt',   'def': '4', |  | ||||||
| 		                         'name': 'BLOODYGOODTIME', 'platform': ['windows'], |  | ||||||
| 		                         'dir': 'hl2sdk-bgt'} |  | ||||||
| 		self.possibleSdks['eye'] =   {'sdk': 'HL2SDK-EYE',      'ext': '2.eye',   'def': '5', |  | ||||||
| 		                         'name': 'EYE',            'platform': ['windows'], |  | ||||||
| 		                         'dir': 'hl2sdk-eye'} |  | ||||||
| 		self.possibleSdks['csgo'] =  {'sdk': 'HL2SDKCSGO',     'ext': '2.csgo',   'def': '15', |  | ||||||
| 		                         'name': 'CSGO',           'platform': ['windows', 'linux', 'darwin'], |  | ||||||
| 		                         'dir': 'hl2sdk-csgo'} |  | ||||||
| 		# self.possibleSdks['portal2'] =  {'sdk': 'HL2SDK-PORTAL2',     'ext': '2.portal2',  'def': '14', |  | ||||||
| 		#                        'name': 'PORTAL2',           'platform': ['windows'], |  | ||||||
| 		#                        'dir': 'hl2sdk-portal'} |  | ||||||
| 		 |  | ||||||
| 		self.sdkInfo = { } |  | ||||||
| 
 |  | ||||||
| 		if AMBuild.mode == 'config': |  | ||||||
| 			#Detect compilers |  | ||||||
| 			self.compiler.DetectAll(AMBuild) |  | ||||||
| 			 |  | ||||||
| 			self.hasMySql = AMBuild.options.hasMySql |  | ||||||
| 			AMBuild.cache.CacheVariable('hasMySql', self.hasMySql) |  | ||||||
| 
 |  | ||||||
| 			AMBuild.cache.CacheVariable('debug', AMBuild.options.debug) |  | ||||||
| 			 |  | ||||||
| 			#Environment variable paths to external headers |  | ||||||
| 			envvars = { 'MMSOURCE110': 'mmsource-1.10', 'MYSQL5': 'mysql-5.0' } |  | ||||||
| 			 |  | ||||||
| 			#Look for Metamod:Source and MySQL if not disabled |  | ||||||
| 			for env in envvars: |  | ||||||
| 				if not self.hasMySql and env == 'MYSQL5': |  | ||||||
| 					continue |  | ||||||
| 				path = self.ResolveEnvPath(env, envvars[env]) |  | ||||||
| 				if path == None: |  | ||||||
| 					raise Exception('Could not find a valid path for {0}'.format(env)) |  | ||||||
| 				AMBuild.cache.CacheVariable(env, path) |  | ||||||
| 			 |  | ||||||
| 			#Look for SDK directories |  | ||||||
| 			for sdk in self.possibleSdks: |  | ||||||
| 				#Get list of SDKs to build against or 'all' or 'present' |  | ||||||
| 				sdkList = AMBuild.options.sdks.split(',') |  | ||||||
| 				#Build against all supported SDKs? |  | ||||||
| 				useAll = sdkList[0] == 'all' |  | ||||||
| 				#Build against supported SDKs that exist? |  | ||||||
| 				usePresent = sdkList[0] == 'present' |  | ||||||
| 
 |  | ||||||
| 				info = self.possibleSdks[sdk] |  | ||||||
| 				if AMBuild.target['platform'] in info['platform']: |  | ||||||
| 					env = info['sdk'] |  | ||||||
| 					dir = info['dir'] |  | ||||||
| 					sdkPath = self.ResolveEnvPath(env, dir) |  | ||||||
| 					if sdkPath == None: |  | ||||||
| 						if useAll or sdk in sdkList: |  | ||||||
| 							raise Exception('Could not find a valid path for {0}'.format(env)) |  | ||||||
|     else: |     else: | ||||||
| 							continue |       folder = 'hl2sdk-' + dir | ||||||
| 					if useAll or usePresent or sdk in sdkList: |     self.envvar = sdk | ||||||
| 						self.sdkInfo[sdk] = info |     self.ext = ext | ||||||
| 						AMBuild.cache.CacheVariable(env, sdkPath) |     self.code = aDef | ||||||
|  |     self.define = name | ||||||
|  |     self.platform = platform | ||||||
|  |     self.folder = folder # Default folder name. | ||||||
|  |     self.name = dir | ||||||
|  |     self.path = None # Actual path | ||||||
| 
 | 
 | ||||||
| 			if len(self.sdkInfo) < 1: | WinOnly = ['windows'] | ||||||
| 				raise Exception('At least one SDK must be available.') | WinLinux = ['windows', 'linux'] | ||||||
|  | WinLinuxMac = ['windows', 'linux', 'mac'] | ||||||
| 
 | 
 | ||||||
| 			AMBuild.cache.CacheVariable('sdkInfo', self.sdkInfo) | PossibleSDKs = { | ||||||
|  |   'ep1':  SDK('HL2SDK', '1.ep1', '1', 'EPISODEONE', WinLinux, 'ep1'), | ||||||
|  |   'ep2':  SDK('HL2SDKOB', '2.ep2', '3', 'ORANGEBOX', WinLinux, 'ob'), | ||||||
|  |   'css':  SDK('HL2SDKCSS', '2.css', '6', 'CSS', WinLinuxMac, 'css'), | ||||||
|  |   'hl2dm':  SDK('HL2SDKHL2DM', '2.hl2dm', '7', 'HL2DM', WinLinuxMac, 'hl2dm'), | ||||||
|  |   'dods': SDK('HL2SDKDODS', '2.dods', '8', 'DODS', WinLinuxMac, 'dods'), | ||||||
|  | #  'sdk2013': SDK('HL2SDK2013', '2.sdk2013', '9', 'SDK2013', WinLinuxMac, '2013'), | ||||||
|  |   'tf2':  SDK('HL2SDKTF2', '2.tf2', '10', 'TF2', WinLinuxMac, 'tf2'), | ||||||
|  |   'l4d':  SDK('HL2SDKL4D', '2.l4d', '11', 'LEFT4DEAD', WinLinuxMac, 'l4d'), | ||||||
|  |   'nd': SDK('HL2SDKND', '2.nd', '12', 'NUCLEARDAWN', WinLinuxMac, 'nd'), | ||||||
|  |   'l4d2': SDK('HL2SDKL4D2', '2.l4d2', '13', 'LEFT4DEAD2', WinLinuxMac, 'l4d2'), | ||||||
|  |   'darkm':  SDK('HL2SDK-DARKM', '2.darkm', '2', 'DARKMESSIAH', WinOnly, 'darkm'), | ||||||
|  |   'swarm':  SDK('HL2SDK-SWARM', '2.swarm', '14', 'ALIENSWARM', WinOnly, 'swarm'), | ||||||
|  |   'bgt':  SDK('HL2SDK-BGT', '2.bgt', '4', 'BLOODYGOODTIME', WinOnly, 'bgt'), | ||||||
|  |   'eye':  SDK('HL2SDK-EYE', '2.eye', '5', 'EYE', WinOnly, 'eye'), | ||||||
|  |   'csgo': SDK('HL2SDKCSGO', '2.csgo', '18', 'CSGO', WinLinuxMac, 'csgo'), | ||||||
|  |   'dota': SDK('HL2SDKDOTA', '2.dota', '19', 'DOTA', WinOnly, 'dota'), | ||||||
|  |   'portal2':  SDK('HL2SDKPORTAL2', '2.portal2', '15', 'PORTAL2', [], 'portal2'), | ||||||
|  |   'blade':  SDK('HL2SDKBLADE', '2.blade', '16', 'BLADE', WinLinux, 'blade'), | ||||||
|  | #  'insurgency':  SDK('HL2SDKINSURGENCY', '2.insurgency', '17', 'INSURGENCY', WinLinuxMac, 'insurgency'), | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| 			#Set up defines | def ResolveEnvPath(env, folder): | ||||||
| 			cxx = self.compiler.cxx |  | ||||||
| 			if isinstance(cxx, Cpp.CompatGCC): |  | ||||||
| 				if isinstance(cxx, Cpp.GCC): |  | ||||||
| 					self.vendor = 'gcc' |  | ||||||
| 				elif isinstance(cxx, Cpp.Clang): |  | ||||||
| 					self.vendor = 'clang' |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'stricmp=strcasecmp') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_stricmp=strcasecmp') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_snprintf=snprintf') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_vsnprintf=vsnprintf') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-pipe') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-fno-strict-aliasing') |  | ||||||
| 				if (self.vendor == 'gcc' and cxx.majorVersion >= 4) or self.vendor == 'clang': |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '-fvisibility=hidden') |  | ||||||
| 					self.compiler.AddToListVar('CXXFLAGS', '-fvisibility-inlines-hidden') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-Wall') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-Werror') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-Wno-uninitialized') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-Wno-unused') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-Wno-switch') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-msse') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-g3') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '-m32') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', '-m32') |  | ||||||
| 				self.compiler.AddToListVar('CXXFLAGS', '-fno-exceptions') |  | ||||||
| 				self.compiler.AddToListVar('CXXFLAGS', '-fno-threadsafe-statics') |  | ||||||
| 				self.compiler.AddToListVar('CXXFLAGS', '-Wno-non-virtual-dtor') |  | ||||||
| 				self.compiler.AddToListVar('CXXFLAGS', '-Wno-overloaded-virtual') |  | ||||||
| 				if (self.vendor == 'gcc' and cxx.majorVersion >= 4 and cxx.minorVersion >= 7) or \ |  | ||||||
| 						(self.vendor == 'clang' and cxx.majorVersion >= 3): |  | ||||||
| 					self.compiler.AddToListVar('CXXFLAGS', '-Wno-delete-non-virtual-dtor') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'HAVE_STDINT_H') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'GNUC') |  | ||||||
| 				if self.vendor == 'gcc': |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '-mfpmath=sse') |  | ||||||
| 			elif isinstance(cxx, Cpp.MSVC): |  | ||||||
| 				self.vendor = 'msvc' |  | ||||||
| 				if AMBuild.options.debug == '1': |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '/MTd') |  | ||||||
| 					self.compiler.AddToListVar('POSTLINKFLAGS', '/NODEFAULTLIB:libcmt') |  | ||||||
| 				else: |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '/MT') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_CRT_SECURE_NO_DEPRECATE') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_CRT_SECURE_NO_WARNINGS') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_CRT_NONSTDC_NO_DEPRECATE') |  | ||||||
| 				self.compiler.AddToListVar('CXXFLAGS', '/EHsc') |  | ||||||
| 				self.compiler.AddToListVar('CXXFLAGS', '/GR-') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '/W3') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '/nologo') |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '/Zi') |  | ||||||
| 				self.compiler.AddToListVar('CXXFLAGS', '/TP') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', '/DEBUG') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', '/MACHINE:X86') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', '/SUBSYSTEM:WINDOWS') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'kernel32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'user32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'gdi32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'winspool.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'comdlg32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'advapi32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'shell32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'ole32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'oleaut32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'uuid.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'odbc32.lib') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', 'odbccp32.lib') |  | ||||||
| 
 |  | ||||||
| 			#Optimization |  | ||||||
| 			if AMBuild.options.opt == '1': |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'NDEBUG') |  | ||||||
| 				if self.vendor == 'gcc' or self.vendor == 'clang': |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '-O3') |  | ||||||
| 				elif self.vendor == 'msvc': |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '/Ox') |  | ||||||
| 					self.compiler.AddToListVar('POSTLINKFLAGS', '/OPT:ICF') |  | ||||||
| 					self.compiler.AddToListVar('POSTLINKFLAGS', '/OPT:REF') |  | ||||||
| 
 |  | ||||||
| 			#Debugging |  | ||||||
| 			if AMBuild.options.debug == '1': |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'DEBUG') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_DEBUG') |  | ||||||
| 				if self.vendor == 'msvc': |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '/Od') |  | ||||||
| 					self.compiler.AddToListVar('CFLAGS', '/RTC1') |  | ||||||
| 			 |  | ||||||
| 			#This needs to be after our optimization flags which could otherwise disable it. |  | ||||||
| 			if self.vendor == 'msvc': |  | ||||||
| 				# Don't omit frame pointer |  | ||||||
| 				self.compiler.AddToListVar('CFLAGS', '/Oy-') |  | ||||||
| 
 |  | ||||||
| 			#Platform-specifics |  | ||||||
| 			if AMBuild.target['platform'] == 'linux': |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_LINUX') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'POSIX') |  | ||||||
| 				if self.vendor == 'gcc': |  | ||||||
| 					self.compiler.AddToListVar('POSTLINKFLAGS', '-static-libgcc') |  | ||||||
| 				if self.vendor == 'clang': |  | ||||||
| 					self.compiler.AddToListVar('POSTLINKFLAGS', '-lgcc_eh') |  | ||||||
| 			elif AMBuild.target['platform'] == 'darwin': |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'OSX') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_OSX') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'POSIX') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', '-mmacosx-version-min=10.5') |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', ['-arch', 'i386']) |  | ||||||
| 				self.compiler.AddToListVar('POSTLINKFLAGS', '-lstdc++') |  | ||||||
| 
 |  | ||||||
| 				# For OS X dylib versioning |  | ||||||
| 				import re |  | ||||||
| 				productFile = open(os.path.join(AMBuild.sourceFolder, 'product.version'), 'r') |  | ||||||
| 				productContents = productFile.read() |  | ||||||
| 				productFile.close() |  | ||||||
| 				m = re.match('(\d+)\.(\d+)\.(\d+).*', productContents) |  | ||||||
| 				if m == None: |  | ||||||
| 					self.version = '1.0.0' |  | ||||||
| 				else: |  | ||||||
| 					major, minor, release = m.groups() |  | ||||||
| 					self.version = '{0}.{1}.{2}'.format(major, minor, release) |  | ||||||
| 				AMBuild.cache.CacheVariable('version', self.version) |  | ||||||
| 			elif AMBuild.target['platform'] == 'windows': |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', 'WIN32') |  | ||||||
| 				self.compiler.AddToListVar('CDEFINES', '_WINDOWS') |  | ||||||
| 
 |  | ||||||
| 			#Finish up |  | ||||||
| 			self.compiler.AddToListVar('CDEFINES', 'SOURCEMOD_BUILD') |  | ||||||
| 			self.compiler.AddToListVar('CDEFINES', 'SM_GENERATED_BUILD') |  | ||||||
| 			self.compiler.AddToListVar('CINCLUDES', |  | ||||||
| 			                           os.path.join(AMBuild.outputFolder, 'includes')) |  | ||||||
| 			self.compiler.ToConfig(AMBuild, 'compiler') |  | ||||||
| 			AMBuild.cache.CacheVariable('vendor', self.vendor) |  | ||||||
| 			self.targetMap = { } |  | ||||||
| 			AMBuild.cache.CacheVariable('targetMap', self.targetMap) |  | ||||||
| 		else: |  | ||||||
| 			self.sdkInfo = AMBuild.cache['sdkInfo'] |  | ||||||
| 			self.compiler.FromConfig(AMBuild, 'compiler') |  | ||||||
| 			self.targetMap = AMBuild.cache['targetMap'] |  | ||||||
| 			self.hasMySql = AMBuild.cache['hasMySql'] |  | ||||||
| 
 |  | ||||||
| 		if AMBuild.target['platform'] == 'windows': |  | ||||||
| 			self.compiler.AddToListVar('RCINCLUDES', os.path.join(AMBuild.sourceFolder, 'public')) |  | ||||||
| 			self.compiler.AddToListVar('RCINCLUDES', |  | ||||||
| 			                           os.path.join(AMBuild.outputFolder, 'includes')) |  | ||||||
| 		self.mmsPath = AMBuild.cache['MMSOURCE110'] |  | ||||||
| 
 |  | ||||||
| 	def DefaultCompiler(self): |  | ||||||
| 		return self.compiler.Clone() |  | ||||||
| 
 |  | ||||||
| 	def JobMatters(self, jobname): |  | ||||||
| 		file = sys._getframe().f_code.co_filename |  | ||||||
| 		if AMBuild.mode == 'config': |  | ||||||
| 			self.targetMap[jobname] = file |  | ||||||
| 			return True |  | ||||||
| 		if len(AMBuild.args) == 0: |  | ||||||
| 			return True |  | ||||||
| 		if not jobname in AMBuild.args: |  | ||||||
| 			return False |  | ||||||
| 
 |  | ||||||
| 	def DefaultExtCompiler(self, path): |  | ||||||
| 		compiler = self.DefaultCompiler() |  | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, path)) |  | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, path, 'sdk')) |  | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public')) |  | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'extensions')) |  | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'sourcepawn')) |  | ||||||
| 		return compiler |  | ||||||
| 
 |  | ||||||
| 	def AutoVersion(self, folder, binary): |  | ||||||
| 		if AMBuild.target['platform'] == 'windows': |  | ||||||
| 			env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"', 'SM_GENERATED_BUILD']} |  | ||||||
| 			binary.AddResourceFile(os.path.join(folder, 'version.rc' ), env) |  | ||||||
| 		elif AMBuild.target['platform'] == 'darwin' and isinstance(binary, Cpp.LibraryBuilder): |  | ||||||
| 			binary.compiler['POSTLINKFLAGS'].extend(['-compatibility_version', '1.0.0']) |  | ||||||
| 			binary.compiler['POSTLINKFLAGS'].extend(['-current_version', AMBuild.cache['version']]) |  | ||||||
| 		else: |  | ||||||
| 			return |  | ||||||
| 
 |  | ||||||
| 	def ExtractDebugInfo(self, job, binary): |  | ||||||
| 		src = os.path.join('..', AMBuild.outputFolder, job.workFolder, binary.binaryFile) |  | ||||||
| 		job.AddCommand(ExtractDebugInfoCommand(binary, src)) |  | ||||||
| 
 |  | ||||||
| 	def PreSetupHL2Job(self, job, builder, sdk): |  | ||||||
| 		info = self.sdkInfo[sdk] |  | ||||||
| 		sdkPath = AMBuild.cache[info['sdk']] |  | ||||||
| 		if AMBuild.target['platform'] == 'linux': |  | ||||||
| 			if sdk == 'ep1': |  | ||||||
| 				staticLibs = os.path.join(sdkPath, 'linux_sdk') |  | ||||||
| 			else: |  | ||||||
| 				staticLibs = os.path.join(sdkPath, 'lib', 'linux') |  | ||||||
| 			workFolder = os.path.join(AMBuild.outputFolder, job.workFolder) |  | ||||||
| 			if sdk in ['css', 'hl2dm', 'dods', 'tf2', 'l4d2']: |  | ||||||
| 				libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib_srv.so', 'libtier0_srv.so'] |  | ||||||
| 				for lib in libs: |  | ||||||
| 					link = os.path.join(workFolder, lib) |  | ||||||
| 					target = os.path.join(staticLibs, lib) |  | ||||||
| 					try: |  | ||||||
| 						os.lstat(link) |  | ||||||
| 					except: |  | ||||||
| 						job.AddCommand(SymlinkCommand(link, target)) |  | ||||||
| 			elif sdk in ['l4d', 'nd', 'csgo']: |  | ||||||
| 				libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.so', 'libtier0.so'] |  | ||||||
| 				if sdk == 'csgo': |  | ||||||
| 					libs.append('interfaces_i486.a') |  | ||||||
| 				for lib in libs: |  | ||||||
| 					link = os.path.join(workFolder, lib) |  | ||||||
| 					target = os.path.join(staticLibs, lib) |  | ||||||
| 					try: |  | ||||||
| 						os.lstat(link) |  | ||||||
| 					except: |  | ||||||
| 						job.AddCommand(SymlinkCommand(link, target)) |  | ||||||
| 			else: |  | ||||||
| 				libs = ['tier1_i486.a', 'mathlib_i486.a', 'vstdlib_i486.so', 'tier0_i486.so'] |  | ||||||
| 				for lib in libs: |  | ||||||
| 					link = os.path.join(workFolder, lib) |  | ||||||
| 					target = os.path.join(staticLibs, lib) |  | ||||||
| 					try: |  | ||||||
| 						os.lstat(link) |  | ||||||
| 					except: |  | ||||||
| 						job.AddCommand(SymlinkCommand(link, target)) |  | ||||||
| 		elif AMBuild.target['platform'] == 'darwin': |  | ||||||
| 			staticLibs = os.path.join(sdkPath, 'lib', 'mac') |  | ||||||
| 			workFolder = os.path.join(AMBuild.outputFolder, job.workFolder) |  | ||||||
| 			libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.dylib', 'libtier0.dylib'] |  | ||||||
| 			if sdk == 'csgo': |  | ||||||
| 				libs.append('interfaces_i486.a') |  | ||||||
| 			for lib in libs: |  | ||||||
| 				link = os.path.join(workFolder, lib) |  | ||||||
| 				target = os.path.join(staticLibs, lib) |  | ||||||
| 				try: |  | ||||||
| 					os.lstat(link) |  | ||||||
| 				except: |  | ||||||
| 					job.AddCommand(SymlinkCommand(link, target)) |  | ||||||
| 		elif AMBuild.target['platform'] == 'windows': |  | ||||||
| 			libs = ['tier0', 'tier1', 'vstdlib', 'mathlib'] |  | ||||||
| 			if sdk in ['swarm', 'csgo']: |  | ||||||
| 				libs.append('interfaces') |  | ||||||
| 			for lib in libs: |  | ||||||
| 				libPath = os.path.join(sdkPath, 'lib', 'public', lib) + '.lib' |  | ||||||
| 				builder.RebuildIfNewer(libPath) |  | ||||||
| 				builder['POSTLINKFLAGS'].append(libPath) |  | ||||||
| 
 |  | ||||||
| 	def PostSetupHL2Job(self, job, builder, sdk): |  | ||||||
| 		if AMBuild.target['platform'] in ['linux', 'darwin']: |  | ||||||
| 			builder.AddObjectFiles(['tier1_i486.a', 'mathlib_i486.a']) |  | ||||||
| 			if sdk == 'csgo': |  | ||||||
| 				builder.AddObjectFiles(['interfaces_i486.a']) |  | ||||||
| 	 |  | ||||||
| 	def DefaultHL2Compiler(self, path, sdk, noLink = False, oldMms = '-legacy'): |  | ||||||
| 		compiler = self.DefaultExtCompiler(path) |  | ||||||
| 
 |  | ||||||
| 		mms = 'core' |  | ||||||
| 		if sdk == 'ep1': |  | ||||||
| 			mms += oldMms |  | ||||||
| 
 |  | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(self.mmsPath, mms)) |  | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(self.mmsPath, mms, 'sourcehook')) |  | ||||||
| 
 |  | ||||||
| 		info = self.possibleSdks |  | ||||||
| 		compiler['CDEFINES'].extend(['SE_' + info[i]['name'] + '=' + info[i]['def'] for i in info]) |  | ||||||
| 				 |  | ||||||
| 		# We don't build for Portal 2 (yet?, ever?), but using this define in code as  |  | ||||||
| 		# it saves trouble if we ever need to |  | ||||||
| 		compiler['CDEFINES'].append('SE_PORTAL2=14') |  | ||||||
| 
 |  | ||||||
| 		paths = [['public'], ['public', 'engine'], ['public', 'mathlib'], ['public', 'vstdlib'], |  | ||||||
| 						 ['public', 'tier0'], ['public', 'tier1']] |  | ||||||
| 		if sdk == 'ep1' or sdk == 'darkm': |  | ||||||
| 			paths.append(['public', 'dlls']) |  | ||||||
| 			paths.append(['game_shared']) |  | ||||||
| 		else: |  | ||||||
| 			paths.append(['public', 'game', 'server']) |  | ||||||
| 			paths.append(['public', 'toolframework']) |  | ||||||
| 			paths.append(['game', 'shared']) |  | ||||||
| 			paths.append(['common']) |  | ||||||
| 
 |  | ||||||
| 		info = self.sdkInfo[sdk] |  | ||||||
| 		sdkPath = AMBuild.cache[info['sdk']] |  | ||||||
| 
 |  | ||||||
| 		compiler['CDEFINES'].append('SOURCE_ENGINE=' + info['def']) |  | ||||||
| 
 |  | ||||||
| 		if sdk in ['swarm','csgo']: |  | ||||||
| 			if AMBuild.target['platform'] == 'windows': |  | ||||||
| 				compiler['CDEFINES'].extend(['COMPILER_MSVC', 'COMPILER_MSVC32']) |  | ||||||
| 			else: |  | ||||||
| 				compiler['CDEFINES'].extend(['COMPILER_GCC']) |  | ||||||
| 
 |  | ||||||
| 		if sdk == 'ep1': |  | ||||||
| 			if AMBuild.target['platform'] == 'linux': |  | ||||||
| 				staticLibs = os.path.join(sdkPath, 'linux_sdk') |  | ||||||
| 		else: |  | ||||||
| 			if AMBuild.target['platform'] == 'linux': |  | ||||||
| 				staticLibs = os.path.join(sdkPath, 'lib', 'linux') |  | ||||||
| 			elif AMBuild.target['platform'] == 'darwin': |  | ||||||
| 				staticLibs = os.path.join(sdkPath, 'lib', 'mac') |  | ||||||
| 
 |  | ||||||
| 		for i in paths: |  | ||||||
| 			compiler['CXXINCLUDES'].append(os.path.join(sdkPath, *i)) |  | ||||||
| 
 |  | ||||||
| 		if not noLink: |  | ||||||
| 			if AMBuild.target['platform'] == 'linux': |  | ||||||
| 				compiler['POSTLINKFLAGS'][0:0] = ['-lm'] |  | ||||||
| 				if sdk in ['css', 'hl2dm', 'dods', 'tf2', 'l4d2']: |  | ||||||
| 					compiler['POSTLINKFLAGS'][0:0] = ['libtier0_srv.so'] |  | ||||||
| 					compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib_srv.so'] |  | ||||||
| 				elif sdk in ['l4d', 'nd', 'csgo']: |  | ||||||
| 					compiler['POSTLINKFLAGS'][0:0] = ['libtier0.so'] |  | ||||||
| 					compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib.so'] |  | ||||||
| 				else: |  | ||||||
| 					compiler['POSTLINKFLAGS'][0:0] = ['tier0_i486.so'] |  | ||||||
| 					compiler['POSTLINKFLAGS'][0:0] = ['vstdlib_i486.so'] |  | ||||||
| 			elif AMBuild.target['platform'] == 'darwin': |  | ||||||
| 				compiler['POSTLINKFLAGS'][0:0] = ['libtier0.dylib'] |  | ||||||
| 				compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib.dylib'] |  | ||||||
| 
 |  | ||||||
| 		return compiler |  | ||||||
| 		 |  | ||||||
| 	def ResolveEnvPath(self, env, defaultDir): |  | ||||||
|   if env in os.environ: |   if env in os.environ: | ||||||
|     path = os.environ[env] |     path = os.environ[env] | ||||||
|     if os.path.isdir(path): |     if os.path.isdir(path): | ||||||
| @ -453,47 +51,426 @@ class SM: | |||||||
|     head = os.getcwd() |     head = os.getcwd() | ||||||
|     oldhead = None |     oldhead = None | ||||||
|     while head != None and head != oldhead: |     while head != None and head != oldhead: | ||||||
| 				path = os.path.join(head, defaultDir) |       path = os.path.join(head, folder) | ||||||
|       if os.path.isdir(path): |       if os.path.isdir(path): | ||||||
|         return path |         return path | ||||||
|       oldhead = head |       oldhead = head | ||||||
|       head, tail = os.path.split(head) |       head, tail = os.path.split(head) | ||||||
|   return None |   return None | ||||||
| 
 | 
 | ||||||
| sm = SM() | class SMConfig(object): | ||||||
| globals = { |   def __init__(self): | ||||||
| 	'SM': sm |     self.sdks = {} | ||||||
| } |     self.binaries = [] | ||||||
|  |     self.extensions = [] | ||||||
|  |     self.generated_headers = None | ||||||
|  |     self.mms_root = None | ||||||
|  |     self.mysql_root = None | ||||||
|  |     self.spcomp = None | ||||||
|  |     self.smx_files = {} | ||||||
|  |     self.versionlib = None | ||||||
| 
 | 
 | ||||||
| AMBuild.Include(os.path.join('tools', 'buildbot', 'Versioning'), globals) |   def detectProductVersion(self): | ||||||
|  |     builder.AddConfigureFile('product.version') | ||||||
| 
 | 
 | ||||||
| FileList = [ |     # For OS X dylib versioning | ||||||
| 		['loader', 'AMBuilder'], |     import re | ||||||
| 		['core', 'AMBuilder'], |     with open(os.path.join(builder.sourcePath, 'product.version'), 'r') as fp: | ||||||
| 		['core', 'logic', 'AMBuilder'], |       productContents = fp.read() | ||||||
| 		['extensions', 'bintools', 'AMBuilder'], |     m = re.match('(\d+)\.(\d+)\.(\d+).*', productContents) | ||||||
| 		['extensions', 'clientprefs', 'AMBuilder'], |     if m == None: | ||||||
| 		['extensions', 'cstrike', 'AMBuilder'], |       self.productVersion = '1.0.0' | ||||||
| 		['extensions', 'curl', 'AMBuilder'], |     else: | ||||||
| 		['extensions', 'geoip', 'AMBuilder'], |       major, minor, release = m.groups() | ||||||
| 		['extensions', 'mysql', 'AMBuilder'], |       self.productVersion = '{0}.{1}.{2}'.format(major, minor, release) | ||||||
| 		['extensions', 'sdkhooks', 'AMBuilder'], | 
 | ||||||
| 		['extensions', 'sdktools', 'AMBuilder'], |   def detectSDKs(self): | ||||||
| 		['extensions', 'topmenus', 'AMBuilder'], |     sdk_list = builder.options.sdks.split(',') | ||||||
| 		['extensions', 'updater', 'AMBuilder'], |     use_all = sdk_list[0] == 'all' | ||||||
| 		['extensions', 'sqlite', 'AMBuilder'], |     use_present = sdk_list[0] == 'present' | ||||||
| 		['extensions', 'regex', 'AMBuilder'], | 
 | ||||||
| 		['extensions', 'tf2', 'AMBuilder'], |     for sdk_name in PossibleSDKs: | ||||||
| 		['sourcepawn', 'jit', 'AMBuilder'], |       sdk = PossibleSDKs[sdk_name] | ||||||
| 		['sourcepawn', 'compiler', 'AMBuilder'], |       if builder.target_platform in sdk.platform: | ||||||
| 		['plugins', 'AMBuilder'], |         sdk_path = ResolveEnvPath(sdk.envvar, sdk.folder) | ||||||
| 		['tools', 'buildbot', 'PackageScript'], |         if sdk_path is None: | ||||||
| 		['tools', 'buildbot', 'BreakpadSymbols'] |           if use_all or sdk_name in sdk_list: | ||||||
|  |             raise Exception('Could not find a valid path for {0}'.format(sdk.envvar)) | ||||||
|  |           continue | ||||||
|  |         if use_all or use_present or sdk_name in sdk_list: | ||||||
|  |           sdk.path = sdk_path | ||||||
|  |           self.sdks[sdk_name] = sdk | ||||||
|  | 
 | ||||||
|  |     if len(self.sdks) < 1: | ||||||
|  |       raise Exception('At least one SDK must be available.') | ||||||
|  | 
 | ||||||
|  |     self.mms_root = ResolveEnvPath('MMSOURCE110', 'mmsource-1.10') | ||||||
|  |     if not self.mms_root: | ||||||
|  |       self.mms_root = ResolveEnvPath('MMSOURCE_DEV', 'mmsource-central') | ||||||
|  |       if not self.mms_root: | ||||||
|  |         raise Exception('Could not find a source copy of Metamod:Source') | ||||||
|  | 
 | ||||||
|  |     if builder.options.hasMySql: | ||||||
|  |       for i in range(7): | ||||||
|  |         self.mysql_root = ResolveEnvPath('MYSQL5', 'mysql-5.' + str(i)) | ||||||
|  |         if self.mysql_root: | ||||||
|  |           break | ||||||
|  |       if not self.mysql_root: | ||||||
|  |         raise Exception('Could not find a path to MySQL!') | ||||||
|  | 
 | ||||||
|  |   def configure(self): | ||||||
|  |     builder.AddConfigureFile('pushbuild.txt') | ||||||
|  | 
 | ||||||
|  |     cfg = builder.DetectCompilers() | ||||||
|  |     cxx = cfg.cxx | ||||||
|  | 
 | ||||||
|  |     if cxx.behavior is 'gcc': | ||||||
|  |       cfg.defines += [ | ||||||
|  |         'stricmp=strcasecmp', | ||||||
|  |         '_stricmp=strcasecmp', | ||||||
|  |         '_snprintf=snprintf', | ||||||
|  |         '_vsnprintf=vsnprintf', | ||||||
|  |         'HAVE_STDINT_H', | ||||||
|  |         'GNUC', | ||||||
|  |       ] | ||||||
|  |       cfg.cflags += [ | ||||||
|  |         '-pipe', | ||||||
|  |         '-fno-strict-aliasing', | ||||||
|  |         '-Wall', | ||||||
|  |         '-Werror', | ||||||
|  |         '-Wno-uninitialized', | ||||||
|  |         '-Wno-unused', | ||||||
|  |         '-Wno-logical-op-parentheses', | ||||||
|  |         '-Wno-switch', | ||||||
|  |         '-msse', | ||||||
|  |         '-m32', | ||||||
|       ] |       ] | ||||||
| 
 | 
 | ||||||
| if not sm.hasMySql: |       have_gcc = cxx.name is 'gcc' | ||||||
| 	FileList.remove(['extensions', 'mysql', 'AMBuilder']) |       have_clang = cxx.name is 'clang' | ||||||
|  |       if have_clang or (have_gcc and cxx.majorVersion >= 4): | ||||||
|  |         cfg.cflags += ['-fvisibility=hidden'] | ||||||
|  |         cfg.cxxflags += ['-fvisibility-inlines-hidden'] | ||||||
|  |         if have_clang or (have_gcc and cxx.minorVersion >= 6): | ||||||
|  |           cfg.cflags += ['-Wno-narrowing'] | ||||||
|  |         if (have_gcc and cxx.minorVersion >= 7) or (have_clang and cxx.majorVersion >= 3): | ||||||
|  |           cfg.cxxflags += ['-Wno-delete-non-virtual-dtor'] | ||||||
| 
 | 
 | ||||||
| for parts in FileList: |       cfg.linkflags += ['-m32'] | ||||||
| 	AMBuild.Include(os.path.join(*parts), globals) |       cfg.cxxflags += [ | ||||||
|  |         '-fno-exceptions', | ||||||
|  |         '-fno-threadsafe-statics', | ||||||
|  |         '-Wno-non-virtual-dtor', | ||||||
|  |         '-Wno-overloaded-virtual', | ||||||
|  |       ] | ||||||
| 
 | 
 | ||||||
|  |       if have_gcc: | ||||||
|  |         cfg.cflags += ['-mfpmath=sse'] | ||||||
|  |     elif cxx.name == 'msvc': | ||||||
|  |       if builder.options.debug == '1': | ||||||
|  |         cfg.cflags += ['/MTd'] | ||||||
|  |         cfg.linkflags += ['/NODEFAULTLIB:libcmt'] | ||||||
|  |       else: | ||||||
|  |         cfg.cflags += ['/MT'] | ||||||
|  |       cfg.defines += [ | ||||||
|  |         '_CRT_SECURE_NO_DEPRECATE', | ||||||
|  |         '_CRT_SECURE_NO_WARNINGS', | ||||||
|  |         '_CRT_NONSTDC_NO_DEPRECATE', | ||||||
|  |         '_ITERATOR_DEBUG_LEVEL=0', | ||||||
|  |       ] | ||||||
|  |       cfg.cflags += [ | ||||||
|  |         '/W3', | ||||||
|  |       ] | ||||||
|  |       cfg.cxxflags += [ | ||||||
|  |         '/EHsc', | ||||||
|  |         '/GR-', | ||||||
|  |         '/TP', | ||||||
|  |       ] | ||||||
|  |       cfg.linkflags += [ | ||||||
|  |         '/MACHINE:X86', | ||||||
|  |         '/SUBSYSTEM:WINDOWS', | ||||||
|  |         'kernel32.lib', | ||||||
|  |         'user32.lib', | ||||||
|  |         'gdi32.lib', | ||||||
|  |         'winspool.lib', | ||||||
|  |         'comdlg32.lib', | ||||||
|  |         'advapi32.lib', | ||||||
|  |         'shell32.lib', | ||||||
|  |         'ole32.lib', | ||||||
|  |         'oleaut32.lib', | ||||||
|  |         'uuid.lib', | ||||||
|  |         'odbc32.lib', | ||||||
|  |         'odbccp32.lib', | ||||||
|  |       ]  | ||||||
|  | 
 | ||||||
|  |     # Optimization | ||||||
|  |     if builder.options.opt == '1': | ||||||
|  |       cfg.defines += ['NDEBUG'] | ||||||
|  |       if cxx.behavior == 'gcc': | ||||||
|  |         cfg.cflags += ['-O3'] | ||||||
|  |       elif cxx.behavior == 'msvc': | ||||||
|  |         cfg.cflags += ['/Ox'] | ||||||
|  |         cfg.linkflags += ['/OPT:ICF', '/OPT:REF'] | ||||||
|  | 
 | ||||||
|  |     # Debugging | ||||||
|  |     if builder.options.debug == '1': | ||||||
|  |       cfg.defines += ['DEBUG', '_DEBUG'] | ||||||
|  |       if cxx.behavior == 'msvc': | ||||||
|  |         cfg.cflags += ['/Od', '/RTC1'] | ||||||
|  | 
 | ||||||
|  |     # This needs to be after our optimization flags which could otherwise disable it. | ||||||
|  |     if cxx.name == 'msvc': | ||||||
|  |       # Don't omit the frame pointer. | ||||||
|  |       cfg.cflags += ['/Oy-'] | ||||||
|  | 
 | ||||||
|  |     # Platform-specifics | ||||||
|  |     if builder.target_platform == 'linux': | ||||||
|  |       cfg.defines += ['_LINUX', 'POSIX'] | ||||||
|  |       if cxx.name == 'gcc': | ||||||
|  |         cfg.linkflags += ['-static-libgcc'] | ||||||
|  |       elif cxx.name == 'clang': | ||||||
|  |         cfg.linkflags += ['-lgcc_eh'] | ||||||
|  |     elif builder.target_platform == 'mac': | ||||||
|  |       cfg.defines += ['OSX', '_OSX', 'POSIX'] | ||||||
|  |       cfg.linkflags += [ | ||||||
|  |         '-mmacosx-version-min=10.5', | ||||||
|  |         '-arch', 'i386', | ||||||
|  |         '-lstdc++', | ||||||
|  |         '-stdlib=libstdc++', | ||||||
|  |       ] | ||||||
|  |       cfg.cxxflags += ['-stdlib=libstdc++'] | ||||||
|  |     elif builder.target_platform == 'windows': | ||||||
|  |       cfg.defines += ['WIN32', '_WINDOWS'] | ||||||
|  | 
 | ||||||
|  |     # Finish up. | ||||||
|  |     cfg.defines += [ | ||||||
|  |       'SOURCEMOD_BUILD', | ||||||
|  |       'SM_GENERATED_BUILD', | ||||||
|  |       'SM_USE_VERSIONLIB', | ||||||
|  |     ] | ||||||
|  |     cfg.includes += [os.path.join(builder.buildPath, 'includes')] | ||||||
|  |     cfg.includes += [os.path.join(builder.sourcePath, 'versionlib')] | ||||||
|  | 
 | ||||||
|  |   def LibraryBuilder(self, compiler, name): | ||||||
|  |     binary = compiler.Library(name) | ||||||
|  |     if builder.target_platform == 'windows': | ||||||
|  |       binary.sources += ['version.rc'] | ||||||
|  |       binary.compiler.rcdefines += [ | ||||||
|  |         'BINARY_NAME="{0}"'.format(binary.outputFile), | ||||||
|  |         'SM_GENERATED_BUILD', | ||||||
|  |         'RC_COMPILE', | ||||||
|  |       ] | ||||||
|  |     elif builder.target_platform == 'mac': | ||||||
|  |       binary.compiler.postlink += [ | ||||||
|  |         '-compatibility_version', '1.0.0', | ||||||
|  |         '-current_version', self.productVersion | ||||||
|  |       ] | ||||||
|  |     binary.compiler.linkflags += [self.versionlib] | ||||||
|  |     binary.compiler.sourcedeps += SM.generated_headers | ||||||
|  |     return binary | ||||||
|  | 
 | ||||||
|  |   def ProgramBuilder(self, compiler, name): | ||||||
|  |     binary = compiler.Program(name) | ||||||
|  |     if builder.target_platform == 'windows': | ||||||
|  |       binary.sources += ['version.rc'] | ||||||
|  |       binary.compiler.rcdefines += [ | ||||||
|  |         'BINARY_NAME="{0}"'.format(binary.outputFile), | ||||||
|  |         'SM_GENERATED_BUILD', | ||||||
|  |         'RC_COMPILE', | ||||||
|  |       ] | ||||||
|  |     binary.compiler.linkflags += [self.versionlib] | ||||||
|  |     binary.compiler.sourcedeps += SM.generated_headers | ||||||
|  |     return binary | ||||||
|  | 
 | ||||||
|  |   def Library(self, context, name): | ||||||
|  |     compiler = context.compiler.clone() | ||||||
|  |     return self.LibraryBuilder(compiler, name) | ||||||
|  | 
 | ||||||
|  |   def Program(self, context, name): | ||||||
|  |     compiler = context.compiler.clone() | ||||||
|  |     return self.ProgramBuilder(compiler, name) | ||||||
|  | 
 | ||||||
|  |   def ExtCompiler(self, context): | ||||||
|  |     compiler = context.compiler.clone() | ||||||
|  |     compiler.cxxincludes += [ | ||||||
|  |       os.path.join(context.currentSourcePath), | ||||||
|  |       os.path.join(context.currentSourcePath, 'sdk'), | ||||||
|  |       os.path.join(builder.sourcePath, 'public'), | ||||||
|  |       os.path.join(builder.sourcePath, 'public', 'extensions'), | ||||||
|  |       os.path.join(builder.sourcePath, 'public', 'sourcepawn'), | ||||||
|  |       os.path.join(builder.sourcePath, 'public', 'amtl'), | ||||||
|  |     ] | ||||||
|  |     return compiler | ||||||
|  | 
 | ||||||
|  |   def HL2Compiler(self, context, sdk): | ||||||
|  |     compiler = self.ExtCompiler(context) | ||||||
|  | 
 | ||||||
|  |     if sdk.name == 'ep1': | ||||||
|  |       mms_path = os.path.join(self.mms_root, 'core-legacy') | ||||||
|  |     else: | ||||||
|  |       mms_path = os.path.join(self.mms_root, 'core') | ||||||
|  | 
 | ||||||
|  |     compiler.cxxincludes += [ | ||||||
|  |       os.path.join(mms_path), | ||||||
|  |       os.path.join(mms_path, 'sourcehook'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     defines = ['SE_' + PossibleSDKs[i].define + '=' + PossibleSDKs[i].code for i in PossibleSDKs] | ||||||
|  |     compiler.defines += defines | ||||||
|  |     paths = [ | ||||||
|  |       ['public'], | ||||||
|  |       ['public', 'engine'], | ||||||
|  |       ['public', 'mathlib'], | ||||||
|  |       ['public', 'vstdlib'], | ||||||
|  |       ['public', 'tier0'], | ||||||
|  |       ['public', 'tier1'] | ||||||
|  |     ] | ||||||
|  |     if sdk.name == 'ep1' or sdk.name == 'darkm': | ||||||
|  |       paths.append(['public', 'dlls']) | ||||||
|  |       paths.append(['game_shared']) | ||||||
|  |     else: | ||||||
|  |       paths.append(['public', 'game', 'server']) | ||||||
|  |       paths.append(['public', 'toolframework']) | ||||||
|  |       paths.append(['game', 'shared']) | ||||||
|  |       paths.append(['common']) | ||||||
|  | 
 | ||||||
|  |     compiler.defines += ['SOURCE_ENGINE=' + sdk.code] | ||||||
|  | 
 | ||||||
|  |     if sdk.name == '2013' and compiler.cxx.behavior == 'gcc': | ||||||
|  |       # The 2013 SDK already has these in public/tier0/basetypes.h | ||||||
|  |       compiler.defines.remove('stricmp=strcasecmp') | ||||||
|  |       compiler.defines.remove('_stricmp=strcasecmp') | ||||||
|  |       compiler.defines.remove('_snprintf=snprintf') | ||||||
|  |       compiler.defines.remove('_vsnprintf=vsnprintf') | ||||||
|  | 
 | ||||||
|  |     if sdk.name in ['swarm', 'blade', 'insurgency', 'csgo', 'dota']: | ||||||
|  |       if compiler.cc.behavior == 'msvc': | ||||||
|  |         compiler.defines += ['COMPILER_MSVC', 'COMPILER_MSVC32'] | ||||||
|  |       else: | ||||||
|  |         compiler.defines += ['COMPILER_GCC'] | ||||||
|  | 
 | ||||||
|  |     if sdk.name in ['css', 'hl2dm', 'dods', '2013', 'tf2', 'l4d2']: | ||||||
|  |       if builder.target_platform in ['linux', 'mac']: | ||||||
|  |         compiler.defines += ['NO_MALLOC_OVERRIDE'] | ||||||
|  | 
 | ||||||
|  |     for path in paths: | ||||||
|  |       compiler.cxxincludes += [os.path.join(sdk.path, *path)] | ||||||
|  | 
 | ||||||
|  |     return compiler | ||||||
|  | 
 | ||||||
|  |   def ExtLibrary(self, context, name): | ||||||
|  |     compiler = self.ExtCompiler(context) | ||||||
|  |     return self.LibraryBuilder(compiler, name) | ||||||
|  | 
 | ||||||
|  |   def HL2Library(self, context, name, sdk): | ||||||
|  |     compiler = self.HL2Compiler(context, sdk) | ||||||
|  | 
 | ||||||
|  |     if builder.target_platform is 'linux': | ||||||
|  |       if sdk.name is 'ep1': | ||||||
|  |         lib_folder = os.path.join(sdk.path, 'linux_sdk') | ||||||
|  |       elif sdk.name is '2013': | ||||||
|  |         lib_folder = os.path.join(sdk.path, 'lib', 'public', 'linux32') | ||||||
|  |       else: | ||||||
|  |         lib_folder = os.path.join(sdk.path, 'lib', 'linux') | ||||||
|  |     elif builder.target_platform == 'mac': | ||||||
|  |       if sdk.name is '2013': | ||||||
|  |         lib_folder = os.path.join(sdk.path, 'lib', 'public', 'osx32') | ||||||
|  |       else: | ||||||
|  |         lib_folder = os.path.join(sdk.path, 'lib', 'mac') | ||||||
|  | 
 | ||||||
|  |     if builder.target_platform in ['linux', 'mac']: | ||||||
|  |       if sdk.name is '2013': | ||||||
|  |         compiler.postlink += [ | ||||||
|  |           compiler.Dep(os.path.join(lib_folder, 'tier1.a')), | ||||||
|  |           compiler.Dep(os.path.join(lib_folder, 'mathlib.a')) | ||||||
|  |         ] | ||||||
|  |       else: | ||||||
|  |         compiler.postlink += [ | ||||||
|  |           compiler.Dep(os.path.join(lib_folder, 'tier1_i486.a')), | ||||||
|  |           compiler.Dep(os.path.join(lib_folder, 'mathlib_i486.a')) | ||||||
|  |         ] | ||||||
|  | 
 | ||||||
|  |       if sdk.name in ['blade', 'insurgency', 'csgo', 'dota']: | ||||||
|  |         compiler.postlink += [compiler.Dep(os.path.join(lib_folder, 'interfaces_i486.a'))] | ||||||
|  | 
 | ||||||
|  |     binary = self.LibraryBuilder(compiler, name) | ||||||
|  | 
 | ||||||
|  |     dynamic_libs = [] | ||||||
|  |     if builder.target_platform == 'linux': | ||||||
|  |       compiler.linkflags[0:0] = ['-lm'] | ||||||
|  |       if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', '2013', 'l4d2']: | ||||||
|  |         dynamic_libs = ['libtier0_srv.so', 'libvstdlib_srv.so'] | ||||||
|  |       elif sdk.name in ['l4d', 'nd', 'blade', 'insurgency', 'csgo']: | ||||||
|  |         dynamic_libs = ['libtier0.so', 'libvstdlib.so'] | ||||||
|  |       else: | ||||||
|  |         dynamic_libs = ['tier0_i486.so', 'vstdlib_i486.so'] | ||||||
|  |     elif builder.target_platform == 'mac': | ||||||
|  |       binary.compiler.linkflags.append('-liconv') | ||||||
|  |       dynamic_libs = ['libtier0.dylib', 'libvstdlib.dylib'] | ||||||
|  |     elif builder.target_platform == 'windows': | ||||||
|  |       libs = ['tier0', 'tier1', 'vstdlib', 'mathlib'] | ||||||
|  |       if sdk.name in ['swarm', 'blade', 'insurgency', 'csgo', 'dota']: | ||||||
|  |         libs.append('interfaces') | ||||||
|  |       for lib in libs: | ||||||
|  |         lib_path = os.path.join(sdk.path, 'lib', 'public', lib) + '.lib' | ||||||
|  |         binary.compiler.linkflags.append(binary.Dep(lib_path)) | ||||||
|  | 
 | ||||||
|  |     for library in dynamic_libs: | ||||||
|  |       source_path = os.path.join(lib_folder, library) | ||||||
|  |       output_path = os.path.join(binary.localFolder, library) | ||||||
|  | 
 | ||||||
|  |       def make_linker(source_path, output_path): | ||||||
|  |         def link(context, binary): | ||||||
|  |           cmd_node, (output,) = context.AddSymlink(source_path, output_path) | ||||||
|  |           return output | ||||||
|  |         return link | ||||||
|  | 
 | ||||||
|  |       linker = make_linker(source_path, output_path) | ||||||
|  |       binary.compiler.linkflags[0:0] = [binary.Dep(library, linker)] | ||||||
|  | 
 | ||||||
|  |     return binary | ||||||
|  | 
 | ||||||
|  | SM = SMConfig() | ||||||
|  | SM.detectProductVersion() | ||||||
|  | SM.detectSDKs() | ||||||
|  | SM.configure() | ||||||
|  | 
 | ||||||
|  | SM.generated_headers = builder.RunScript( | ||||||
|  |   'tools/buildbot/Versioning', | ||||||
|  |   { 'SM': SM } | ||||||
|  | ) | ||||||
|  | SM.versionlib = builder.RunScript( | ||||||
|  |   'versionlib/AMBuilder', | ||||||
|  |   { 'SM': SM } | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | builder.RunBuildScripts( | ||||||
|  |   [ | ||||||
|  |     'loader/AMBuilder', | ||||||
|  |     'core/AMBuilder', | ||||||
|  |     'core/logic/AMBuilder', | ||||||
|  |     'extensions/bintools/AMBuilder', | ||||||
|  |     'extensions/clientprefs/AMBuilder', | ||||||
|  |     'extensions/curl/AMBuilder', | ||||||
|  |     'extensions/cstrike/AMBuilder', | ||||||
|  |     'extensions/geoip/AMBuilder', | ||||||
|  |     'extensions/mysql/AMBuilder', | ||||||
|  |     'extensions/regex/AMBuilder', | ||||||
|  |     'extensions/sdkhooks/AMBuilder', | ||||||
|  |     'extensions/sdktools/AMBuilder', | ||||||
|  |     'extensions/sqlite/AMBuilder', | ||||||
|  |     'extensions/tf2/AMBuilder', | ||||||
|  |     'extensions/topmenus/AMBuilder', | ||||||
|  |     'extensions/updater/AMBuilder', | ||||||
|  |     'sourcepawn/compiler/AMBuilder', | ||||||
|  |     'sourcepawn/jit/AMBuilder', | ||||||
|  |     'plugins/AMBuilder', | ||||||
|  |     'tools/buildbot/PackageScript', | ||||||
|  |   ], | ||||||
|  |   { | ||||||
|  |     'SM': SM | ||||||
|  |   } | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | if builder.options.breakpad_dump: | ||||||
|  |   builder.RunScript('tools/buildbot/BreakpadSymbols', { 'SM': SM }) | ||||||
|  | |||||||
							
								
								
									
										19
									
								
								configure.py
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								configure.py
									
									
									
									
									
								
							| @ -1,8 +1,19 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet: | # vim: set ts=2 sw=2 tw=99 noet: | ||||||
| import sys | import sys | ||||||
| import ambuild.runner as runner | try: | ||||||
|  | 	from ambuild2 import run | ||||||
|  | except: | ||||||
|  | 	try: | ||||||
|  | 		import ambuild | ||||||
|  | 		sys.stderr.write('It looks like you have AMBuild 1 installed, but this project uses AMBuild 2.\n') | ||||||
|  | 		sys.stderr.write('Upgrade to the latest version of AMBuild to continue.\n') | ||||||
|  | 	except: | ||||||
|  | 		sys.stderr.write('AMBuild must be installed to build this project.\n') | ||||||
|  | 		sys.stderr.write('http://www.alliedmods.net/ambuild\n') | ||||||
|  | 	sys.exit(1) | ||||||
| 
 | 
 | ||||||
| run = runner.Runner() | run = run.PrepareBuild(sourcePath=sys.path[0]) | ||||||
|  | run.default_build_folder = 'obj-' + run.target_platform | ||||||
| run.options.add_option('--enable-debug', action='store_const', const='1', dest='debug', | run.options.add_option('--enable-debug', action='store_const', const='1', dest='debug', | ||||||
|                        help='Enable debugging symbols') |                        help='Enable debugging symbols') | ||||||
| run.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt', | run.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt', | ||||||
| @ -12,4 +23,6 @@ run.options.add_option('--no-mysql', action='store_false', default=True, dest='h | |||||||
| run.options.add_option('-s', '--sdks', default='all', dest='sdks', | run.options.add_option('-s', '--sdks', default='all', dest='sdks', | ||||||
|                        help='Build against specified SDKs; valid args are "all", "present", or ' |                        help='Build against specified SDKs; valid args are "all", "present", or ' | ||||||
|                             'comma-delimited list of engine names (default: %default)') |                             'comma-delimited list of engine names (default: %default)') | ||||||
| run.Configure(sys.path[0]) | run.options.add_option('--breakpad-dump', action='store_true', dest='breakpad_dump', | ||||||
|  | 											 default=False, help='Dump and upload breakpad symbols') | ||||||
|  | run.Configure() | ||||||
|  | |||||||
							
								
								
									
										142
									
								
								core/AMBuilder
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								core/AMBuilder
									
									
									
									
									
								
							| @ -1,128 +1,124 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:  | ||||||
| import os | import os | ||||||
| from ambuild.command import SymlinkCommand |  | ||||||
| 
 | 
 | ||||||
| for i in SM.sdkInfo: | for sdk_name in SM.sdks: | ||||||
| 	sdk = SM.sdkInfo[i] |   sdk = SM.sdks[sdk_name] | ||||||
| 	if AMBuild.target['platform'] not in sdk['platform']: |   binary_name = 'sourcemod.' + sdk.ext | ||||||
| 		continue |  | ||||||
| 
 | 
 | ||||||
| 	name = 'sourcemod.' + sdk['ext'] |   binary = SM.HL2Library(builder, binary_name, sdk) | ||||||
|  |   compiler = binary.compiler | ||||||
| 
 | 
 | ||||||
| 	compiler = SM.DefaultHL2Compiler('core', i) |   if sdk.name is 'csgo': | ||||||
| 
 |  | ||||||
| 	if i == 'csgo': |  | ||||||
|     # Protobuf 2.3 headers have some signed/unsigned compares. I believe that it's fixed in later versions, but Valve. |     # Protobuf 2.3 headers have some signed/unsigned compares. I believe that it's fixed in later versions, but Valve. | ||||||
| 		if isinstance(compiler.cxx, Cpp.CompatGCC): |     if compiler.cxx.behavior is 'gcc': | ||||||
| 			compiler.AddToListVar('CFLAGS', '-Wno-sign-compare') |       compiler.cflags += ['-Wno-sign-compare'] | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'common', 'protobuf-2.3.0', 'src')) |     compiler.cxxincludes += [ | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'engine', 'protobuf')) |       os.path.join(sdk.path, 'common', 'protobuf-2.3.0', 'src'), | ||||||
| 		compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'game', 'shared', 'csgo', 'protobuf')) |       os.path.join(sdk.path, 'public', 'engine', 'protobuf'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf') | ||||||
|  |     ] | ||||||
|  |   elif sdk.name is 'dota': | ||||||
|  |     compiler.cxxincludes += [ | ||||||
|  |       os.path.join(sdk.path, 'common', 'protobuf-2.4.1', 'src'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'engine', 'protobuf'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf') | ||||||
|  |     ] | ||||||
| 
 | 
 | ||||||
| 	extension = AMBuild.AddJob(name) |   if builder.target_platform is 'linux': | ||||||
| 	binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) |     compiler.postlink += ['-lpthread', '-lrt'] | ||||||
| 	SM.PreSetupHL2Job(extension, binary, i) |  | ||||||
| 
 | 
 | ||||||
| 	if i == 'csgo': |   if sdk.name is 'csgo' or sdk.name is 'dota': | ||||||
| 		if AMBuild.target['platform'] == 'linux': |     if builder.target_platform is 'linux': | ||||||
| 			link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a') |       lib_path = os.path.join(sdk.path, 'lib', 'linux32', 'release', 'libprotobuf.a') | ||||||
| 			target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'linux32', 'release'), 'libprotobuf.a') |     elif builder.target_platform is 'mac': | ||||||
| 			try: |       lib_path = os.path.join(sdk.path, 'lib', 'osx32', 'release', 'libprotobuf.a') | ||||||
| 				os.lstat(link) |     elif builder.target_platform is 'windows': | ||||||
| 			except: |       if 'DEBUG' in compiler.defines: | ||||||
| 				extension.AddCommand(SymlinkCommand(link, target)) |         lib_path = os.path.join(sdk.path, 'lib', 'win32', 'debug', 'vs2010', 'libprotobuf.lib') | ||||||
| 		elif AMBuild.target['platform'] == 'darwin': |       else: | ||||||
| 			link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a') |         lib_path = os.path.join(sdk.path, 'lib', 'win32', 'release', 'vs2010', 'libprotobuf.lib') | ||||||
| 			target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'osx32', 'release'), 'libprotobuf.a') |     compiler.linkflags.insert(0, binary.Dep(lib_path)) | ||||||
| 			try: |  | ||||||
| 				os.lstat(link) |  | ||||||
| 			except: |  | ||||||
| 				extension.AddCommand(SymlinkCommand(link, target)) |  | ||||||
| 		elif AMBuild.target['platform'] == 'windows': |  | ||||||
| 			libPath = os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'win32', 'release', 'vs2010', 'libprotobuf.lib') |  | ||||||
| 			binary.RebuildIfNewer(libPath) |  | ||||||
| 			binary['POSTLINKFLAGS'].append(libPath) |  | ||||||
| 
 | 
 | ||||||
| 	files = [ |   binary.sources += [ | ||||||
|     'AdminCache.cpp', |     'AdminCache.cpp', | ||||||
| 		'ExtensionSys.cpp', |  | ||||||
|     'MenuStyle_Valve.cpp', |     'MenuStyle_Valve.cpp', | ||||||
|     'logic_bridge.cpp', |     'logic_bridge.cpp', | ||||||
|     'smn_entities.cpp', |     'smn_entities.cpp', | ||||||
|     'sm_stringutil.cpp', |     'sm_stringutil.cpp', | ||||||
| 		'ADTFactory.cpp', |  | ||||||
| 		'ForwardSys.cpp', |  | ||||||
|     'MenuVoting.cpp', |     'MenuVoting.cpp', | ||||||
|     'smn_events.cpp', |     'smn_events.cpp', | ||||||
|     'smn_menus.cpp', |     'smn_menus.cpp', | ||||||
|     'sm_trie.cpp', |     'sm_trie.cpp', | ||||||
|     'CDataPack.cpp', |     'CDataPack.cpp', | ||||||
|     'frame_hooks.cpp', |     'frame_hooks.cpp', | ||||||
| 		'NativeInvoker.cpp', |  | ||||||
| 		'smn_fakenatives.cpp', |  | ||||||
|     'smn_nextmap.cpp', |     'smn_nextmap.cpp', | ||||||
|     'sourcemm_api.cpp', |     'sourcemm_api.cpp', | ||||||
|     'ChatTriggers.cpp', |     'ChatTriggers.cpp', | ||||||
| 		'NativeOwner.cpp', |  | ||||||
| 		'smn_filesystem.cpp', |  | ||||||
|     'smn_player.cpp', |     'smn_player.cpp', | ||||||
|     'sourcemod.cpp', |     'sourcemod.cpp', | ||||||
|     'concmd_cleaner.cpp', |     'concmd_cleaner.cpp', | ||||||
|     'HalfLife2.cpp', |     'HalfLife2.cpp', | ||||||
|     'NextMap.cpp', |     'NextMap.cpp', | ||||||
|     'ConCmdManager.cpp', |     'ConCmdManager.cpp', | ||||||
| 		'HandleSys.cpp', |  | ||||||
|     'ConVarManager.cpp', |     'ConVarManager.cpp', | ||||||
|     'LibrarySys.cpp', |     'LibrarySys.cpp', | ||||||
|     'PlayerManager.cpp', |     'PlayerManager.cpp', | ||||||
|     'TimerSys.cpp', |     'TimerSys.cpp', | ||||||
|     'CoreConfig.cpp', |     'CoreConfig.cpp', | ||||||
|     'Logger.cpp', |     'Logger.cpp', | ||||||
| 		'PluginInfoDatabase.cpp', |  | ||||||
|     'smn_halflife.cpp', |     'smn_halflife.cpp', | ||||||
| 		'PluginSys.cpp', |  | ||||||
|     'smn_console.cpp', |     'smn_console.cpp', | ||||||
|     'UserMessages.cpp', |     'UserMessages.cpp', | ||||||
| 		'Database.cpp', |  | ||||||
|     'MenuManager.cpp', |     'MenuManager.cpp', | ||||||
|     'smn_core.cpp', |     'smn_core.cpp', | ||||||
|     'smn_hudtext.cpp', |     'smn_hudtext.cpp', | ||||||
|     'smn_usermsgs.cpp', |     'smn_usermsgs.cpp', | ||||||
| 		'DebugReporter.cpp', |  | ||||||
|     'MenuStyle_Base.cpp', |     'MenuStyle_Base.cpp', | ||||||
| 		'ShareSys.cpp', |  | ||||||
| 		'smn_database.cpp', |  | ||||||
|     'smn_keyvalues.cpp', |     'smn_keyvalues.cpp', | ||||||
|     'smn_vector.cpp', |     'smn_vector.cpp', | ||||||
|     'EventManager.cpp', |     'EventManager.cpp', | ||||||
|     'MenuStyle_Radio.cpp', |     'MenuStyle_Radio.cpp', | ||||||
|     'sm_autonatives.cpp', |     'sm_autonatives.cpp', | ||||||
|     'sm_srvcmds.cpp', |     'sm_srvcmds.cpp', | ||||||
| 		'ConsoleDetours.cpp' |     'ConsoleDetours.cpp', | ||||||
|  |     'NativeInvoker.cpp', | ||||||
|  |     'smn_database.cpp', | ||||||
|  |     'ForwardSys.cpp', | ||||||
|  |     'Database.cpp', | ||||||
|  |     'DebugReporter.cpp', | ||||||
|  |     'ShareSys.cpp', | ||||||
|  |     'PluginSys.cpp', | ||||||
|  |     'HandleSys.cpp', | ||||||
|  |     'NativeOwner.cpp', | ||||||
|  |     'ExtensionSys.cpp', | ||||||
|  |     'smn_fakenatives.cpp', | ||||||
|  |     'smn_filesystem.cpp', | ||||||
|  |     'ADTFactory.cpp', | ||||||
|  |     'PluginInfoDatabase.cpp', | ||||||
|   ] |   ] | ||||||
|    |    | ||||||
| 	if i == 'csgo': |   if sdk.name in ['csgo', 'dota']: | ||||||
| 		files.append('smn_protobuf.cpp') |     binary.sources += ['smn_protobuf.cpp'] | ||||||
|   else: |   else: | ||||||
| 		files.append('smn_bitbuffer.cpp') |     binary.sources += ['smn_bitbuffer.cpp'] | ||||||
| 
 | 
 | ||||||
| 	binary.AddSourceFiles('core', files) |   if sdk.name is 'csgo': | ||||||
| 
 |     binary.sources += [ | ||||||
| 	if i == 'csgo': |       os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'), | ||||||
| 		files = [ |       os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'), | ||||||
| 			os.path.join('public', 'engine', 'protobuf', 'netmessages.pb.cc'), |       os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'), | ||||||
| 			os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'), |     ] | ||||||
| 			os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'), |   elif sdk.name is 'dota': | ||||||
|  |     binary.sources += [ | ||||||
|  |       os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'networkbasetypes.pb.cc'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'ai_activity.pb.cc'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'usermessages.pb.cc'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_commonmessages.pb.cc'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessages.pb.cc'), | ||||||
|  |       os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessage_helpers.cpp'), | ||||||
|     ] |     ] | ||||||
| 		binary.AddSourceFiles(AMBuild.cache[sdk['sdk']], files) |  | ||||||
| 
 | 
 | ||||||
| 	SM.PostSetupHL2Job(extension, binary, i) |   SM.binaries += [builder.Add(binary)] | ||||||
| 	 |  | ||||||
| 	if i == 'csgo': |  | ||||||
| 		if AMBuild.target['platform'] in ['linux', 'darwin']: |  | ||||||
| 			binary.AddObjectFiles(['libprotobuf.a']) |  | ||||||
| 	 |  | ||||||
| 	SM.AutoVersion('core', binary) |  | ||||||
| 	SM.ExtractDebugInfo(extension, binary) |  | ||||||
| 	binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -408,7 +408,7 @@ bool SM_ExecuteConfig(CPlugin *pl, AutoConfig *cfg, bool can_create) | |||||||
| 			FILE *fp = fopen(file, "wt"); | 			FILE *fp = fopen(file, "wt"); | ||||||
| 			if (fp) | 			if (fp) | ||||||
| 			{ | 			{ | ||||||
| 				fprintf(fp, "// This file was auto-generated by SourceMod (v%s)\n", SM_VERSION_STRING); | 				fprintf(fp, "// This file was auto-generated by SourceMod (v%s)\n", SOURCEMOD_VERSION); | ||||||
| 				fprintf(fp, "// ConVars for plugin \"%s\"\n", pl->GetFilename()); | 				fprintf(fp, "// ConVars for plugin \"%s\"\n", pl->GetFilename()); | ||||||
| 				fprintf(fp, "\n\n"); | 				fprintf(fp, "\n\n"); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -149,7 +149,7 @@ void Logger::_NewMapFile() | |||||||
| 	} else { | 	} else { | ||||||
| 		char date[32]; | 		char date[32]; | ||||||
| 		strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime); | 		strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime); | ||||||
| 		fprintf(fp, "L %s: SourceMod log file started (file \"L%02d%02d%03d.log\") (Version \"%s\")\n", date, curtime->tm_mon + 1, curtime->tm_mday, i, SM_VERSION_STRING); | 		fprintf(fp, "L %s: SourceMod log file started (file \"L%02d%02d%03d.log\") (Version \"%s\")\n", date, curtime->tm_mon + 1, curtime->tm_mday, i, SOURCEMOD_VERSION); | ||||||
| 		fclose(fp); | 		fclose(fp); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -362,7 +362,7 @@ void Logger::LogMessage(const char *vafmt, ...) | |||||||
| 			char date[32]; | 			char date[32]; | ||||||
| 			m_DailyPrintHdr = false; | 			m_DailyPrintHdr = false; | ||||||
| 			strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime); | 			strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime); | ||||||
| 			fprintf(fp, "L %s: SourceMod log file session started (file \"L%04d%02d%02d.log\") (Version \"%s\")\n", date, curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday, SM_VERSION_STRING); | 			fprintf(fp, "L %s: SourceMod log file session started (file \"L%04d%02d%02d.log\") (Version \"%s\")\n", date, curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday, SOURCEMOD_VERSION); | ||||||
| 	 	} | 	 	} | ||||||
| 		va_list ap; | 		va_list ap; | ||||||
| 		va_start(ap, vafmt); | 		va_start(ap, vafmt); | ||||||
|  | |||||||
| @ -816,7 +816,7 @@ void PlayerManager::OnClientCommand(edict_t *pEntity) | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		ClientConsolePrint(pEntity, | 		ClientConsolePrint(pEntity, | ||||||
| 			"SourceMod %s, by AlliedModders LLC", SM_VERSION_STRING); | 			"SourceMod %s, by AlliedModders LLC", SOURCEMOD_VERSION); | ||||||
| 		ClientConsolePrint(pEntity, | 		ClientConsolePrint(pEntity, | ||||||
| 			"To see running plugins, type \"sm plugins\""); | 			"To see running plugins, type \"sm plugins\""); | ||||||
| 		ClientConsolePrint(pEntity, | 		ClientConsolePrint(pEntity, | ||||||
|  | |||||||
| @ -1,24 +1,25 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultCompiler() | binary = SM.Library(builder, 'sourcemod.logic') | ||||||
| base = AMBuild.sourceFolder | binary.compiler.cxxincludes += [ | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) |   os.path.join(builder.sourcePath, 'core', 'logic'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'core', 'logic')) |   os.path.join(builder.sourcePath, 'public'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'public')) |   os.path.join(builder.sourcePath, 'public', 'sourcepawn'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'sourcepawn')) |   os.path.join(builder.sourcePath, 'public', 'amtl'), | ||||||
| compiler['CDEFINES'].append('SM_DEFAULT_THREADER') |   os.path.join(SM.mms_root, 'core', 'sourcehook') | ||||||
| compiler['CDEFINES'].append('SM_LOGIC') | ] | ||||||
|  | binary.compiler.defines += [ | ||||||
|  |   'SM_DEFAULT_THREADER', | ||||||
|  |   'SM_LOGIC' | ||||||
|  | ] | ||||||
|    |    | ||||||
| if AMBuild.target['platform'] == 'linux': | if builder.target_platform is 'linux': | ||||||
| 	compiler['POSTLINKFLAGS'].append('-lpthread') |   binary.compiler.postlink += ['-lpthread', '-lrt'] | ||||||
| if AMBuild.target['platform'] == 'darwin': | elif builder.target_platform is 'mac': | ||||||
| 	compiler['CFLAGS'].extend(['-Wno-deprecated-declarations']) |   binary.compiler.cflags += ['-Wno-deprecated-declarations'] | ||||||
| 	compiler['POSTLINKFLAGS'].extend(['-framework', 'CoreServices']) |   binary.compiler.postlink += ['-framework', 'CoreServices'] | ||||||
| 
 | binary.sources += [ | ||||||
| extension = AMBuild.AddJob('sourcemod.logic') |  | ||||||
| binary = Cpp.LibraryBuilder('sourcemod.logic', AMBuild, extension, compiler) |  | ||||||
| files = [ |  | ||||||
|   'common_logic.cpp', |   'common_logic.cpp', | ||||||
|   'smn_adt_array.cpp', |   'smn_adt_array.cpp', | ||||||
|   'smn_sorting.cpp', |   'smn_sorting.cpp', | ||||||
| @ -48,14 +49,11 @@ files = [ | |||||||
|   'smn_gameconfigs.cpp', |   'smn_gameconfigs.cpp', | ||||||
|   'GameConfigs.cpp', |   'GameConfigs.cpp', | ||||||
|   'sm_crc32.cpp', |   'sm_crc32.cpp', | ||||||
| 	'smn_profiler.cpp' |   'smn_profiler.cpp', | ||||||
| 	] | ] | ||||||
| if AMBuild.target['platform'] == 'windows': | if builder.target_platform is 'windows': | ||||||
| 	files.append('thread/WinThreads.cpp') |   binary.sources += ['thread/WinThreads.cpp'] | ||||||
| else: | else: | ||||||
| 	files.append('thread/PosixThreads.cpp') |   binary.sources += ['thread/PosixThreads.cpp'] | ||||||
| binary.AddSourceFiles('core/logic', files) |  | ||||||
| SM.AutoVersion('core/logic', binary) |  | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | SM.binaries += [builder.Add(binary)] | ||||||
|  | |||||||
| @ -39,7 +39,7 @@ | |||||||
| 
 | 
 | ||||||
| RootConsoleMenu g_RootMenu; | RootConsoleMenu g_RootMenu; | ||||||
| 
 | 
 | ||||||
| ConVar sourcemod_version("sourcemod_version", SM_VERSION_STRING, FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, "SourceMod Version"); | ConVar sourcemod_version("sourcemod_version", SOURCEMOD_VERSION, FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, "SourceMod Version"); | ||||||
| 
 | 
 | ||||||
| RootConsoleMenu::RootConsoleMenu() | RootConsoleMenu::RootConsoleMenu() | ||||||
| { | { | ||||||
| @ -339,11 +339,11 @@ void RootConsoleMenu::OnRootConsoleCommand(const char *cmdname, const CCommand & | |||||||
| 	else if (strcmp(cmdname, "version") == 0) | 	else if (strcmp(cmdname, "version") == 0) | ||||||
| 	{ | 	{ | ||||||
| 		ConsolePrint(" SourceMod Version Information:"); | 		ConsolePrint(" SourceMod Version Information:"); | ||||||
| 		ConsolePrint("    SourceMod Version: %s", SM_VERSION_STRING); | 		ConsolePrint("    SourceMod Version: %s", SOURCEMOD_VERSION); | ||||||
| 		ConsolePrint("    SourcePawn Engine: %s (build %s)", g_pSourcePawn2->GetEngineName(), g_pSourcePawn2->GetVersionString()); | 		ConsolePrint("    SourcePawn Engine: %s (build %s)", g_pSourcePawn2->GetEngineName(), g_pSourcePawn2->GetVersionString()); | ||||||
| 		ConsolePrint("    SourcePawn API: v1 = %d, v2 = %d", g_pSourcePawn->GetEngineAPIVersion(), g_pSourcePawn2->GetAPIVersion()); | 		ConsolePrint("    SourcePawn API: v1 = %d, v2 = %d", g_pSourcePawn->GetEngineAPIVersion(), g_pSourcePawn2->GetAPIVersion()); | ||||||
| 		ConsolePrint("    Compiled on: %s %s", __DATE__, __TIME__); | 		ConsolePrint("    Compiled on: %s %s", __DATE__, __TIME__); | ||||||
| 		ConsolePrint("    Build ID: %s", SM_BUILD_UNIQUEID); | 		ConsolePrint("    Build ID: %s", SOURCEMOD_BUILD_ID); | ||||||
| 		ConsolePrint("    http://www.sourcemod.net/"); | 		ConsolePrint("    http://www.sourcemod.net/"); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
| @ -147,7 +147,7 @@ const char *SourceMod_Core::GetLicense() | |||||||
| 
 | 
 | ||||||
| const char *SourceMod_Core::GetVersion() | const char *SourceMod_Core::GetVersion() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *SourceMod_Core::GetDate() | const char *SourceMod_Core::GetDate() | ||||||
|  | |||||||
| @ -1,15 +1,15 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultExtCompiler('extensions/bintools') | binary = SM.ExtLibrary(builder, 'bintools.ext') | ||||||
| compiler['CDEFINES'].append('HOOKING_ENABLED') | binary.compiler.defines += ['HOOKING_ENABLED'] | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) | binary.compiler.cxxincludes += [ | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit')) |   os.path.join(SM.mms_root, 'core', 'sourcehook'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit', 'x86')) |   os.path.join(builder.sourcePath, 'public', 'jit'), | ||||||
|  |   os.path.join(builder.sourcePath, 'public', 'jit', 'x86'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('bintools.ext') | binary.sources += [ | ||||||
| binary = Cpp.LibraryBuilder('bintools.ext', AMBuild, extension, compiler) |  | ||||||
| binary.AddSourceFiles('extensions/bintools', [ |  | ||||||
|   'extension.cpp', |   'extension.cpp', | ||||||
|   'CallMaker.cpp', |   'CallMaker.cpp', | ||||||
|   'CallWrapper.cpp', |   'CallWrapper.cpp', | ||||||
| @ -17,9 +17,7 @@ binary.AddSourceFiles('extensions/bintools', [ | |||||||
|   'jit_call.cpp', |   'jit_call.cpp', | ||||||
|   'jit_hook.cpp', |   'jit_hook.cpp', | ||||||
|   'sdk/smsdk_ext.cpp' |   'sdk/smsdk_ext.cpp' | ||||||
| 	]) | ] | ||||||
| SM.AutoVersion('extensions/bintools', binary) |  | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | SM.extensions += [builder.Add(binary)] | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -61,11 +61,11 @@ bool BinTools::SDK_OnLoad(char *error, size_t maxlength, bool late) | |||||||
| 
 | 
 | ||||||
| const char *BinTools::GetExtensionVerString() | const char *BinTools::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *BinTools::GetExtensionDateString() | const char *BinTools::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,20 +1,19 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultExtCompiler('extensions/clientprefs') | binary = SM.ExtLibrary(builder, 'clientprefs.ext') | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) | binary.compiler.cxxincludes += [ | ||||||
|  |   os.path.join(SM.mms_root, 'core', 'sourcehook'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('clientprefs.ext') | binary.sources += [ | ||||||
| binary = Cpp.LibraryBuilder('clientprefs.ext', AMBuild, extension, compiler) |  | ||||||
| binary.AddSourceFiles('extensions/clientprefs', [ |  | ||||||
|   'extension.cpp', |   'extension.cpp', | ||||||
|   'cookie.cpp', |   'cookie.cpp', | ||||||
|   'menus.cpp', |   'menus.cpp', | ||||||
|   'natives.cpp', |   'natives.cpp', | ||||||
|   'query.cpp', |   'query.cpp', | ||||||
|   'sdk/smsdk_ext.cpp' |   'sdk/smsdk_ext.cpp' | ||||||
| 	]) | ] | ||||||
| SM.AutoVersion('extensions/clientprefs', binary) | 
 | ||||||
| SM.ExtractDebugInfo(extension, binary) | SM.extensions += [builder.Add(binary)] | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -483,11 +483,11 @@ IdentityToken_t *ClientPrefs::GetIdentity() const | |||||||
| 
 | 
 | ||||||
| const char *ClientPrefs::GetExtensionVerString() | const char *ClientPrefs::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *ClientPrefs::GetExtensionDateString() | const char *ClientPrefs::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,22 +1,13 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| for i in SM.sdkInfo: | for sdk_name in ['css', 'csgo']: | ||||||
| 	if i != 'css' and i != 'csgo': |   if sdk_name not in SM.sdks: | ||||||
|     continue |     continue | ||||||
|  |   sdk = SM.sdks[sdk_name] | ||||||
|    |    | ||||||
| 	sdk = SM.sdkInfo[i] |   binary = SM.HL2Library(builder, 'game.cstrike.ext.' + sdk.ext, sdk) | ||||||
| 	 |   binary.sources += [ | ||||||
| 	if AMBuild.target['platform'] not in sdk['platform']: |  | ||||||
| 		continue |  | ||||||
| 	 |  | ||||||
| 	compiler = SM.DefaultHL2Compiler('extensions/cstrike', i) |  | ||||||
| 
 |  | ||||||
| 	name = 'game.cstrike.ext.' + sdk['ext'] |  | ||||||
| 	extension = AMBuild.AddJob(name) |  | ||||||
| 	binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) |  | ||||||
| 	SM.PreSetupHL2Job(extension, binary, i) |  | ||||||
| 	binary.AddSourceFiles('extensions/cstrike', [ |  | ||||||
|     'extension.cpp', |     'extension.cpp', | ||||||
|     'natives.cpp', |     'natives.cpp', | ||||||
|     'RegNatives.cpp', |     'RegNatives.cpp', | ||||||
| @ -26,8 +17,5 @@ for i in SM.sdkInfo: | |||||||
|     'sdk/smsdk_ext.cpp', |     'sdk/smsdk_ext.cpp', | ||||||
|     'CDetour/detours.cpp', |     'CDetour/detours.cpp', | ||||||
|     'asm/asm.c' |     'asm/asm.c' | ||||||
| 		]) |   ] | ||||||
| 	SM.PostSetupHL2Job(extension, binary, i) |   SM.extensions += [builder.Add(binary)] | ||||||
| 	SM.AutoVersion('extensions/cstrike', binary) |  | ||||||
| 	SM.ExtractDebugInfo(extension, binary) |  | ||||||
| 	binary.SendToJob() |  | ||||||
|  | |||||||
| @ -283,12 +283,12 @@ bool CStrike::ProcessCommandTarget(cmd_target_info_t *info) | |||||||
| 
 | 
 | ||||||
| const char *CStrike::GetExtensionVerString() | const char *CStrike::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *CStrike::GetExtensionDateString() | const char *CStrike::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void CStrike::OnPluginLoaded(IPlugin *plugin) | void CStrike::OnPluginLoaded(IPlugin *plugin) | ||||||
|  | |||||||
| @ -1,87 +1,24 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python :  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python :  | ||||||
| import os.path | import os | ||||||
| import subprocess |  | ||||||
| import ambuild.command as command |  | ||||||
| import ambuild.osutil as osutil |  | ||||||
| 
 | 
 | ||||||
| def BuildCURL(): | libcurl = builder.RunScript('curl-src/lib/AMBuilder') | ||||||
| 	curl = AMBuild.AddJob('curl') |  | ||||||
| 	if AMBuild.target['platform'] in ['linux', 'darwin']: |  | ||||||
| 		if not osutil.FileExists(os.path.join(AMBuild.outputFolder, 'curl', 'Makefile')): |  | ||||||
| 			args = ['/bin/bash', |  | ||||||
| 							os.path.join(AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'configure'), |  | ||||||
| 							'--enable-static', |  | ||||||
| 							'--disable-shared', |  | ||||||
| 							'--disable-ldap', |  | ||||||
| 							'--without-ssl', |  | ||||||
| 							'--without-libidn', |  | ||||||
| 							'--without-libssh2', |  | ||||||
| 							'--without-zlib'] |  | ||||||
| 			env = os.environ.copy() |  | ||||||
| 			env['CFLAGS'] = '-m32' |  | ||||||
| 			if AMBuild.target['platform'] == 'darwin': |  | ||||||
| 				env['LDFLAGS'] = '-mmacosx-version-min=10.5' |  | ||||||
| 			else: |  | ||||||
| 				env['CFLAGS'] += ' -D_GNU_SOURCE' |  | ||||||
| 			curl.AddCommand(command.DirectCommand(argv = args, env = env)) |  | ||||||
| 			curl.AddCommand(command.ShellCommand('cd lib && make')) |  | ||||||
| 	else: |  | ||||||
| 		args = '' |  | ||||||
| 		projpath = os.path.join(AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'lib', |  | ||||||
| 		                    'build_libcurl.vcproj') |  | ||||||
| 		try: |  | ||||||
| 			subprocess.Popen('vcbuild') |  | ||||||
| 		except: |  | ||||||
| 			xprojpath = os.path.join(AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'lib', |  | ||||||
| 		                    'build_libcurl.vcxproj') |  | ||||||
| 			if not os.path.isfile(xprojpath): |  | ||||||
| 				curl.AddCommand(command.DirectCommand(['vcupgrade', projpath])) |  | ||||||
| 			args = ['msbuild', xprojpath, '/p:Configuration=LIB Release'] |  | ||||||
| 
 | 
 | ||||||
| 		if not args: | binary = SM.ExtLibrary(builder, 'webternet.ext') | ||||||
| 			args = ['vcbuild', projpath, 'LIB Release'] | binary.compiler.includes += [ | ||||||
|  |   os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'include') | ||||||
|  | ] | ||||||
|  | binary.compiler.defines += ['CURL_STATICLIB'] | ||||||
|  | binary.compiler.postlink += [libcurl.binary] | ||||||
|  | if builder.target_platform is 'linux': | ||||||
|  |   binary.compiler.postlink += ['-lrt'] | ||||||
|  | elif builder.target_platform is 'windows': | ||||||
|  |   binary.compiler.postlink += ['ws2_32.lib'] | ||||||
| 
 | 
 | ||||||
| 		curl.AddCommand(command.DirectCommand(args)) | binary.sources += [ | ||||||
| 		#die "Unable to find libcurl.lib!\n" unless (-f "LIB-Release\\libcurl.lib"); |  | ||||||
| 
 |  | ||||||
| BuildCURL() |  | ||||||
| 
 |  | ||||||
| compiler = SM.DefaultExtCompiler('extensions/curl') |  | ||||||
| extension = AMBuild.AddJob('webternet.ext') |  | ||||||
| binary = Cpp.LibraryBuilder('webternet.ext', AMBuild, extension, compiler) |  | ||||||
| 
 |  | ||||||
| curlPath = [AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'include'] |  | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(*curlPath)) |  | ||||||
| compiler['CDEFINES'].append('CURL_STATICLIB') |  | ||||||
|                                            |  | ||||||
| binary.AddSourceFiles('extensions/curl', [ |  | ||||||
|   'extension.cpp', |   'extension.cpp', | ||||||
|   'curlapi.cpp', |   'curlapi.cpp', | ||||||
|   'sdk/smsdk_ext.cpp', |   'sdk/smsdk_ext.cpp', | ||||||
| 	]) | ] | ||||||
| 
 | 
 | ||||||
| if AMBuild.target['platform'] == 'linux' or AMBuild.target['platform'] == 'darwin': | SM.extensions += [builder.Add(binary)] | ||||||
| 	path = os.path.join(AMBuild.outputFolder, |  | ||||||
|                       'curl', |  | ||||||
|                       'lib', |  | ||||||
|                       '.libs', |  | ||||||
|                       'libcurl.a') |  | ||||||
| 	if AMBuild.target['platform'] == 'linux': |  | ||||||
| 		binary['POSTLINKFLAGS'].append('-lrt') |  | ||||||
| 	binary.AddObjectFiles([path]) |  | ||||||
| elif AMBuild.target['platform'] == 'windows': |  | ||||||
| 	path = os.path.join(AMBuild.sourceFolder, |  | ||||||
| 	                    'extensions', |  | ||||||
| 	                    'curl', |  | ||||||
| 	                    'curl-src', |  | ||||||
| 	                    'lib', |  | ||||||
| 	                    'LIB-Release', |  | ||||||
| 	                    'libcurl.lib') |  | ||||||
| 	if os.path.isfile(path): |  | ||||||
| 		binary.RelinkIfNewer(path) |  | ||||||
| 	binary['POSTLINKFLAGS'].extend([path, 'ws2_32.lib']) |  | ||||||
| 
 |  | ||||||
| SM.AutoVersion('extensions/curl', binary) |  | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										92
									
								
								extensions/curl/curl-src/lib/AMBuilder
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								extensions/curl/curl-src/lib/AMBuilder
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,92 @@ | |||||||
|  | # vim: sts=2 ts=8 sw=2 tw=99 et ft=python:  | ||||||
|  | import os, platform | ||||||
|  | 
 | ||||||
|  | builder.SetBuildFolder('libcurl') | ||||||
|  | 
 | ||||||
|  | binary = builder.compiler.StaticLibrary('curl') | ||||||
|  | binary.compiler.includes += [ | ||||||
|  |   os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'lib'), | ||||||
|  |   os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'include') | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | if builder.target_platform is 'mac': | ||||||
|  |   mac_version, ignore, ignore = platform.mac_ver() | ||||||
|  |   mac_tuple = mac_version.split('.') | ||||||
|  |   if int(mac_tuple[0]) >= 10 and int(mac_tuple[1]) >= 9: | ||||||
|  |     binary.compiler.defines += ['BUILTIN_STRLCAT'] | ||||||
|  | elif builder.target_platform is 'windows': | ||||||
|  |   binary.compiler.defines += [ | ||||||
|  |     'BUILDING_LIBCURL', | ||||||
|  |     'CURL_STATICLIB', | ||||||
|  |     'CURL_DISABLE_LDAP', | ||||||
|  |   ] | ||||||
|  | 
 | ||||||
|  | binary.sources += [ | ||||||
|  |   'base64.c', | ||||||
|  |   'connect.c', | ||||||
|  |   'content_encoding.c', | ||||||
|  |   'cookie.c', | ||||||
|  |   'curl_addrinfo.c', | ||||||
|  |   'dict.c', | ||||||
|  |   'easy.c', | ||||||
|  |   'escape.c', | ||||||
|  |   'file.c', | ||||||
|  |   'formdata.c', | ||||||
|  |   'ftp.c', | ||||||
|  |   'getenv.c', | ||||||
|  |   'getinfo.c', | ||||||
|  |   'gtls.c', | ||||||
|  |   'hash.c', | ||||||
|  |   'hostares.c', | ||||||
|  |   'hostasyn.c', | ||||||
|  |   'hostip.c', | ||||||
|  |   'hostip4.c', | ||||||
|  |   'hostip6.c', | ||||||
|  |   'hostsyn.c', | ||||||
|  |   'hostthre.c', | ||||||
|  |   'http.c', | ||||||
|  |   'http_chunks.c', | ||||||
|  |   'http_digest.c', | ||||||
|  |   'http_negotiate.c', | ||||||
|  |   'http_ntlm.c', | ||||||
|  |   'if2ip.c', | ||||||
|  |   'inet_ntop.c', | ||||||
|  |   'inet_pton.c', | ||||||
|  |   'krb4.c', | ||||||
|  |   'krb5.c', | ||||||
|  |   'ldap.c', | ||||||
|  |   'llist.c', | ||||||
|  |   'md5.c', | ||||||
|  |   'memdebug.c', | ||||||
|  |   'mprintf.c', | ||||||
|  |   'multi.c', | ||||||
|  |   'netrc.c', | ||||||
|  |   'nss.c', | ||||||
|  |   'parsedate.c', | ||||||
|  |   'progress.c', | ||||||
|  |   'qssl.c', | ||||||
|  |   'rawstr.c', | ||||||
|  |   'security.c', | ||||||
|  |   'select.c', | ||||||
|  |   'sendf.c', | ||||||
|  |   'share.c', | ||||||
|  |   'socks.c', | ||||||
|  |   'speedcheck.c', | ||||||
|  |   'splay.c', | ||||||
|  |   'ssh.c', | ||||||
|  |   'sslgen.c', | ||||||
|  |   'ssluse.c', | ||||||
|  |   'strdup.c', | ||||||
|  |   'strequal.c', | ||||||
|  |   'strerror.c', | ||||||
|  |   'strtok.c', | ||||||
|  |   'strtoofft.c', | ||||||
|  |   'telnet.c', | ||||||
|  |   'tftp.c', | ||||||
|  |   'timeval.c', | ||||||
|  |   'transfer.c', | ||||||
|  |   'url.c', | ||||||
|  |   'version.c' | ||||||
|  | ] | ||||||
|  | rvalue = builder.Add(binary) | ||||||
|  | 
 | ||||||
							
								
								
									
										918
									
								
								extensions/curl/curl-src/lib/config-sm-linux.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										918
									
								
								extensions/curl/curl-src/lib/config-sm-linux.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,918 @@ | |||||||
|  | /* lib/config.h.  Generated from config.h.in by configure.  */ | ||||||
|  | /* lib/config.h.in.  Generated from configure.ac by autoheader.  */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the $func function. */ | ||||||
|  | /* #undef AS_TR_CPP */ | ||||||
|  | 
 | ||||||
|  | /* when building libcurl itself */ | ||||||
|  | /* #undef BUILDING_LIBCURL */ | ||||||
|  | 
 | ||||||
|  | /* Location of default ca bundle */ | ||||||
|  | #define CURL_CA_BUNDLE "/etc/ssl/certs/ca-certificates.crt" | ||||||
|  | 
 | ||||||
|  | /* Location of default ca path */ | ||||||
|  | /* #undef CURL_CA_PATH */ | ||||||
|  | 
 | ||||||
|  | /* to disable cookies support */ | ||||||
|  | /* #undef CURL_DISABLE_COOKIES */ | ||||||
|  | 
 | ||||||
|  | /* to disable cryptographic authentication */ | ||||||
|  | /* #undef CURL_DISABLE_CRYPTO_AUTH */ | ||||||
|  | 
 | ||||||
|  | /* to disable DICT */ | ||||||
|  | /* #undef CURL_DISABLE_DICT */ | ||||||
|  | 
 | ||||||
|  | /* to disable FILE */ | ||||||
|  | /* #undef CURL_DISABLE_FILE */ | ||||||
|  | 
 | ||||||
|  | /* to disable FTP */ | ||||||
|  | /* #undef CURL_DISABLE_FTP */ | ||||||
|  | 
 | ||||||
|  | /* to disable HTTP */ | ||||||
|  | /* #undef CURL_DISABLE_HTTP */ | ||||||
|  | 
 | ||||||
|  | /* to disable LDAP */ | ||||||
|  | #define CURL_DISABLE_LDAP 1 | ||||||
|  | 
 | ||||||
|  | /* to disable LDAPS */ | ||||||
|  | #define CURL_DISABLE_LDAPS 1 | ||||||
|  | 
 | ||||||
|  | /* to disable proxies */ | ||||||
|  | /* #undef CURL_DISABLE_PROXY */ | ||||||
|  | 
 | ||||||
|  | /* to disable TELNET */ | ||||||
|  | /* #undef CURL_DISABLE_TELNET */ | ||||||
|  | 
 | ||||||
|  | /* to disable TFTP */ | ||||||
|  | /* #undef CURL_DISABLE_TFTP */ | ||||||
|  | 
 | ||||||
|  | /* to disable verbose strings */ | ||||||
|  | /* #undef CURL_DISABLE_VERBOSE_STRINGS */ | ||||||
|  | 
 | ||||||
|  | /* to make a symbol visible */ | ||||||
|  | /* #undef CURL_EXTERN_SYMBOL */ | ||||||
|  | 
 | ||||||
|  | /* to enable hidden symbols */ | ||||||
|  | /* #undef CURL_HIDDEN_SYMBOLS */ | ||||||
|  | 
 | ||||||
|  | /* W$ LDAP with non-W$ compiler */ | ||||||
|  | /* #undef CURL_LDAP_HYBRID */ | ||||||
|  | 
 | ||||||
|  | /* Use W$ LDAP implementation */ | ||||||
|  | /* #undef CURL_LDAP_WIN */ | ||||||
|  | 
 | ||||||
|  | /* when not building a shared library */ | ||||||
|  | /* #undef CURL_STATICLIB */ | ||||||
|  | 
 | ||||||
|  | /* Set to explicitly specify we don't want to use thread-safe functions */ | ||||||
|  | /* #undef DISABLED_THREADSAFE */ | ||||||
|  | 
 | ||||||
|  | /* your Entropy Gathering Daemon socket pathname */ | ||||||
|  | /* #undef EGD_SOCKET */ | ||||||
|  | 
 | ||||||
|  | /* Define if you want to enable IPv6 support */ | ||||||
|  | #define ENABLE_IPV6 1 | ||||||
|  | 
 | ||||||
|  | /* Define to the type qualifier of arg 1 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_QUAL_ARG1 const | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG1 struct sockaddr * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 2 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG2 socklen_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of args 4 and 6 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG46 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 7 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG7 unsigned int | ||||||
|  | 
 | ||||||
|  | /* Specifies the number of arguments to getservbyport_r */ | ||||||
|  | #define GETSERVBYPORT_R_ARGS 6 | ||||||
|  | 
 | ||||||
|  | /* Specifies the size of the buffer to pass to getservbyport_r */ | ||||||
|  | #define GETSERVBYPORT_R_BUFSIZE 4096 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the alarm function. */ | ||||||
|  | #define HAVE_ALARM 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <alloca.h> header file. */ | ||||||
|  | #define HAVE_ALLOCA_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <arpa/inet.h> header file. */ | ||||||
|  | #define HAVE_ARPA_INET_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <arpa/tftp.h> header file. */ | ||||||
|  | #define HAVE_ARPA_TFTP_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <assert.h> header file. */ | ||||||
|  | #define HAVE_ASSERT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `basename' function. */ | ||||||
|  | #define HAVE_BASENAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if bool is an available type. */ | ||||||
|  | #define HAVE_BOOL_T 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the clock_gettime function and monotonic timer. */ | ||||||
|  | #define HAVE_CLOCK_GETTIME_MONOTONIC 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `closesocket' function. */ | ||||||
|  | /* #undef HAVE_CLOSESOCKET */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */ | ||||||
|  | /* #undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <crypto.h> header file. */ | ||||||
|  | /* #undef HAVE_CRYPTO_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <des.h> header file. */ | ||||||
|  | /* #undef HAVE_DES_H */ | ||||||
|  | 
 | ||||||
|  | /* disabled non-blocking sockets */ | ||||||
|  | /* #undef HAVE_DISABLED_NONBLOCKING */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <dlfcn.h> header file. */ | ||||||
|  | #define HAVE_DLFCN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ENGINE_load_builtin_engines' function. */ | ||||||
|  | /* #undef HAVE_ENGINE_LOAD_BUILTIN_ENGINES */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <errno.h> header file. */ | ||||||
|  | #define HAVE_ERRNO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <err.h> header file. */ | ||||||
|  | /* #undef HAVE_ERR_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <fcntl.h> header file. */ | ||||||
|  | #define HAVE_FCNTL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the fdopen function. */ | ||||||
|  | #define HAVE_FDOPEN 1 | ||||||
|  | 
 | ||||||
|  | /* use FIONBIO for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_FIONBIO */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `fork' function. */ | ||||||
|  | #define HAVE_FORK 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the freeaddrinfo function. */ | ||||||
|  | #define HAVE_FREEADDRINFO 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the freeifaddrs function. */ | ||||||
|  | #define HAVE_FREEIFADDRS 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ftruncate function. */ | ||||||
|  | #define HAVE_FTRUNCATE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working getaddrinfo function. */ | ||||||
|  | #define HAVE_GETADDRINFO 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `geteuid' function. */ | ||||||
|  | #define HAVE_GETEUID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `gethostbyaddr' function. */ | ||||||
|  | #define HAVE_GETHOSTBYADDR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the gethostbyaddr_r function. */ | ||||||
|  | #define HAVE_GETHOSTBYADDR_R 1 | ||||||
|  | 
 | ||||||
|  | /* gethostbyaddr_r() takes 5 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYADDR_R_5 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyaddr_r() takes 7 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYADDR_R_7 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyaddr_r() takes 8 args */ | ||||||
|  | #define HAVE_GETHOSTBYADDR_R_8 1 | ||||||
|  | 
 | ||||||
|  | /* If you have gethostbyname */ | ||||||
|  | #define HAVE_GETHOSTBYNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the gethostbyname_r function. */ | ||||||
|  | #define HAVE_GETHOSTBYNAME_R 1 | ||||||
|  | 
 | ||||||
|  | /* gethostbyname_r() takes 3 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYNAME_R_3 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyname_r() takes 5 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYNAME_R_5 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyname_r() takes 6 args */ | ||||||
|  | #define HAVE_GETHOSTBYNAME_R_6 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the gethostname function. */ | ||||||
|  | #define HAVE_GETHOSTNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working getifaddrs function. */ | ||||||
|  | #define HAVE_GETIFADDRS 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the getnameinfo function. */ | ||||||
|  | #define HAVE_GETNAMEINFO 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getpass_r' function. */ | ||||||
|  | /* #undef HAVE_GETPASS_R */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getppid' function. */ | ||||||
|  | #define HAVE_GETPPID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getprotobyname' function. */ | ||||||
|  | #define HAVE_GETPROTOBYNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getpwuid' function. */ | ||||||
|  | #define HAVE_GETPWUID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getrlimit' function. */ | ||||||
|  | #define HAVE_GETRLIMIT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the getservbyport_r function. */ | ||||||
|  | #define HAVE_GETSERVBYPORT_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `gettimeofday' function. */ | ||||||
|  | #define HAVE_GETTIMEOFDAY 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working glibc-style strerror_r function. */ | ||||||
|  | /* #undef HAVE_GLIBC_STRERROR_R */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working gmtime_r function. */ | ||||||
|  | #define HAVE_GMTIME_R 1 | ||||||
|  | 
 | ||||||
|  | /* if you have the gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSAPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */ | ||||||
|  | /* #undef HAVE_GSSAPI_GSSAPI_GENERIC_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <gssapi/gssapi.h> header file. */ | ||||||
|  | /* #undef HAVE_GSSAPI_GSSAPI_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <gssapi/gssapi_krb5.h> header file. */ | ||||||
|  | /* #undef HAVE_GSSAPI_GSSAPI_KRB5_H */ | ||||||
|  | 
 | ||||||
|  | /* if you have the GNU gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSGNU */ | ||||||
|  | 
 | ||||||
|  | /* if you have the Heimdal gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSHEIMDAL */ | ||||||
|  | 
 | ||||||
|  | /* if you have the MIT gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSMIT */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `idna_strerror' function. */ | ||||||
|  | /* #undef HAVE_IDNA_STRERROR */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `idn_free' function. */ | ||||||
|  | /* #undef HAVE_IDN_FREE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <idn-free.h> header file. */ | ||||||
|  | /* #undef HAVE_IDN_FREE_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <ifaddrs.h> header file. */ | ||||||
|  | #define HAVE_IFADDRS_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `inet_addr' function. */ | ||||||
|  | #define HAVE_INET_ADDR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the inet_ntoa_r function. */ | ||||||
|  | /* #undef HAVE_INET_NTOA_R */ | ||||||
|  | 
 | ||||||
|  | /* inet_ntoa_r() takes 2 args */ | ||||||
|  | /* #undef HAVE_INET_NTOA_R_2 */ | ||||||
|  | 
 | ||||||
|  | /* inet_ntoa_r() takes 3 args */ | ||||||
|  | /* #undef HAVE_INET_NTOA_R_3 */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a IPv6 capable working inet_ntop function. */ | ||||||
|  | /* #undef HAVE_INET_NTOP */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a IPv6 capable working inet_pton function. */ | ||||||
|  | /* #undef HAVE_INET_PTON */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <inttypes.h> header file. */ | ||||||
|  | #define HAVE_INTTYPES_H 1 | ||||||
|  | 
 | ||||||
|  | /* use ioctlsocket() for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_IOCTLSOCKET */ | ||||||
|  | 
 | ||||||
|  | /* use Ioctlsocket() for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_IOCTLSOCKET_CASE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <io.h> header file. */ | ||||||
|  | /* #undef HAVE_IO_H */ | ||||||
|  | 
 | ||||||
|  | /* if you have the Kerberos4 libraries (including -ldes) */ | ||||||
|  | /* #undef HAVE_KRB4 */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `krb_get_our_ip_for_realm' function. */ | ||||||
|  | /* #undef HAVE_KRB_GET_OUR_IP_FOR_REALM */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <krb.h> header file. */ | ||||||
|  | /* #undef HAVE_KRB_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the lber.h header file. */ | ||||||
|  | /* #undef HAVE_LBER_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ldapssl.h header file. */ | ||||||
|  | /* #undef HAVE_LDAPSSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ldap.h header file. */ | ||||||
|  | /* #undef HAVE_LDAP_H */ | ||||||
|  | 
 | ||||||
|  | /* Use LDAPS implementation */ | ||||||
|  | /* #undef HAVE_LDAP_SSL */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ldap_ssl.h header file. */ | ||||||
|  | /* #undef HAVE_LDAP_SSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ldap_url_parse' function. */ | ||||||
|  | /* #undef HAVE_LDAP_URL_PARSE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <libgen.h> header file. */ | ||||||
|  | #define HAVE_LIBGEN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `idn' library (-lidn). */ | ||||||
|  | /* #undef HAVE_LIBIDN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `resolv' library (-lresolv). */ | ||||||
|  | /* #undef HAVE_LIBRESOLV */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `resolve' library (-lresolve). */ | ||||||
|  | /* #undef HAVE_LIBRESOLVE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `socket' library (-lsocket). */ | ||||||
|  | /* #undef HAVE_LIBSOCKET */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ssh2' library (-lssh2). */ | ||||||
|  | /* #undef HAVE_LIBSSH2 */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <libssh2.h> header file. */ | ||||||
|  | /* #undef HAVE_LIBSSH2_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ssl' library (-lssl). */ | ||||||
|  | /* #undef HAVE_LIBSSL */ | ||||||
|  | 
 | ||||||
|  | /* if zlib is available */ | ||||||
|  | /* #undef HAVE_LIBZ */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <limits.h> header file. */ | ||||||
|  | #define HAVE_LIMITS_H 1 | ||||||
|  | 
 | ||||||
|  | /* if your compiler supports LL */ | ||||||
|  | #define HAVE_LL 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <locale.h> header file. */ | ||||||
|  | #define HAVE_LOCALE_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working localtime_r function. */ | ||||||
|  | #define HAVE_LOCALTIME_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the compiler supports the 'long long' data type. */ | ||||||
|  | #define HAVE_LONGLONG 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the malloc.h header file. */ | ||||||
|  | #define HAVE_MALLOC_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <memory.h> header file. */ | ||||||
|  | #define HAVE_MEMORY_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the MSG_NOSIGNAL flag. */ | ||||||
|  | #define HAVE_MSG_NOSIGNAL 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <netdb.h> header file. */ | ||||||
|  | #define HAVE_NETDB_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <netinet/in.h> header file. */ | ||||||
|  | #define HAVE_NETINET_IN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <netinet/tcp.h> header file. */ | ||||||
|  | #define HAVE_NETINET_TCP_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <net/if.h> header file. */ | ||||||
|  | #define HAVE_NET_IF_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if NI_WITHSCOPEID exists and works. */ | ||||||
|  | /* #undef HAVE_NI_WITHSCOPEID */ | ||||||
|  | 
 | ||||||
|  | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE
 | ||||||
|  |    */ | ||||||
|  | /* #undef HAVE_OLD_GSSMIT */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/crypto.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_CRYPTO_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/engine.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_ENGINE_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/err.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_ERR_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/pem.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_PEM_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/pkcs12.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_PKCS12_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/rsa.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_RSA_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/ssl.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_SSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/x509.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_X509_H */ | ||||||
|  | 
 | ||||||
|  | /* use O_NONBLOCK for non-blocking sockets */ | ||||||
|  | #define HAVE_O_NONBLOCK 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <pem.h> header file. */ | ||||||
|  | /* #undef HAVE_PEM_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `perror' function. */ | ||||||
|  | #define HAVE_PERROR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `pipe' function. */ | ||||||
|  | #define HAVE_PIPE 1 | ||||||
|  | 
 | ||||||
|  | /* if you have the function PK11_CreateGenericObject */ | ||||||
|  | /* #undef HAVE_PK11_CREATEGENERICOBJECT */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `poll' function. */ | ||||||
|  | #define HAVE_POLL 1 | ||||||
|  | 
 | ||||||
|  | /* If you have a fine poll */ | ||||||
|  | #define HAVE_POLL_FINE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <poll.h> header file. */ | ||||||
|  | #define HAVE_POLL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working POSIX-style strerror_r function. */ | ||||||
|  | #define HAVE_POSIX_STRERROR_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <pwd.h> header file. */ | ||||||
|  | #define HAVE_PWD_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `RAND_egd' function. */ | ||||||
|  | /* #undef HAVE_RAND_EGD */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `RAND_screen' function. */ | ||||||
|  | /* #undef HAVE_RAND_SCREEN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `RAND_status' function. */ | ||||||
|  | /* #undef HAVE_RAND_STATUS */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the recv function. */ | ||||||
|  | #define HAVE_RECV 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the recvfrom function. */ | ||||||
|  | #define HAVE_RECVFROM 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <rsa.h> header file. */ | ||||||
|  | /* #undef HAVE_RSA_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the select function. */ | ||||||
|  | #define HAVE_SELECT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the send function. */ | ||||||
|  | #define HAVE_SEND 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <setjmp.h> header file. */ | ||||||
|  | #define HAVE_SETJMP_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `setlocale' function. */ | ||||||
|  | #define HAVE_SETLOCALE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `setmode' function. */ | ||||||
|  | /* #undef HAVE_SETMODE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `setrlimit' function. */ | ||||||
|  | #define HAVE_SETRLIMIT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sgtty.h> header file. */ | ||||||
|  | #define HAVE_SGTTY_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the sigaction function. */ | ||||||
|  | #define HAVE_SIGACTION 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the siginterrupt function. */ | ||||||
|  | #define HAVE_SIGINTERRUPT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the signal function. */ | ||||||
|  | #define HAVE_SIGNAL 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <signal.h> header file. */ | ||||||
|  | #define HAVE_SIGNAL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the sigsetjmp function or macro. */ | ||||||
|  | #define HAVE_SIGSETJMP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if sig_atomic_t is an available typedef. */ | ||||||
|  | #define HAVE_SIG_ATOMIC_T 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if sig_atomic_t is already defined as volatile. */ | ||||||
|  | /* #undef HAVE_SIG_ATOMIC_T_VOLATILE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `socket' function. */ | ||||||
|  | #define HAVE_SOCKET 1 | ||||||
|  | 
 | ||||||
|  | /* use SO_NONBLOCK for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_SO_NONBLOCK */ | ||||||
|  | 
 | ||||||
|  | /* Define this if you have the SPNEGO library fbopenssl */ | ||||||
|  | /* #undef HAVE_SPNEGO */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `SSL_get_shutdown' function. */ | ||||||
|  | /* #undef HAVE_SSL_GET_SHUTDOWN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <ssl.h> header file. */ | ||||||
|  | /* #undef HAVE_SSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdbool.h> header file. */ | ||||||
|  | #define HAVE_STDBOOL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdint.h> header file. */ | ||||||
|  | #define HAVE_STDINT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdio.h> header file. */ | ||||||
|  | #define HAVE_STDIO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdlib.h> header file. */ | ||||||
|  | #define HAVE_STDLIB_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strcasecmp function. */ | ||||||
|  | #define HAVE_STRCASECMP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strcasestr function. */ | ||||||
|  | /* #undef HAVE_STRCASESTR */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strcmpi function. */ | ||||||
|  | /* #undef HAVE_STRCMPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strdup function. */ | ||||||
|  | #define HAVE_STRDUP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strerror_r function. */ | ||||||
|  | #define HAVE_STRERROR_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the stricmp function. */ | ||||||
|  | /* #undef HAVE_STRICMP */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <strings.h> header file. */ | ||||||
|  | #define HAVE_STRINGS_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <string.h> header file. */ | ||||||
|  | #define HAVE_STRING_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strlcat function. */ | ||||||
|  | /* #undef HAVE_STRLCAT */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `strlcpy' function. */ | ||||||
|  | /* #undef HAVE_STRLCPY */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strncasecmp function. */ | ||||||
|  | #define HAVE_STRNCASECMP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strncmpi function. */ | ||||||
|  | /* #undef HAVE_STRNCMPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strnicmp function. */ | ||||||
|  | /* #undef HAVE_STRNICMP */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strstr function. */ | ||||||
|  | #define HAVE_STRSTR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strtok_r function. */ | ||||||
|  | #define HAVE_STRTOK_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strtoll function. */ | ||||||
|  | #define HAVE_STRTOLL 1 | ||||||
|  | 
 | ||||||
|  | /* if struct sockaddr_storage is defined */ | ||||||
|  | #define HAVE_STRUCT_SOCKADDR_STORAGE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the timeval struct. */ | ||||||
|  | #define HAVE_STRUCT_TIMEVAL 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/filio.h> header file. */ | ||||||
|  | /* #undef HAVE_SYS_FILIO_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/ioctl.h> header file. */ | ||||||
|  | #define HAVE_SYS_IOCTL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/param.h> header file. */ | ||||||
|  | #define HAVE_SYS_PARAM_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/poll.h> header file. */ | ||||||
|  | #define HAVE_SYS_POLL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/resource.h> header file. */ | ||||||
|  | #define HAVE_SYS_RESOURCE_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/select.h> header file. */ | ||||||
|  | #define HAVE_SYS_SELECT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/socket.h> header file. */ | ||||||
|  | #define HAVE_SYS_SOCKET_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/sockio.h> header file. */ | ||||||
|  | /* #undef HAVE_SYS_SOCKIO_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/stat.h> header file. */ | ||||||
|  | #define HAVE_SYS_STAT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/time.h> header file. */ | ||||||
|  | #define HAVE_SYS_TIME_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/types.h> header file. */ | ||||||
|  | #define HAVE_SYS_TYPES_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/uio.h> header file. */ | ||||||
|  | #define HAVE_SYS_UIO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/un.h> header file. */ | ||||||
|  | #define HAVE_SYS_UN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/utime.h> header file. */ | ||||||
|  | /* #undef HAVE_SYS_UTIME_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <termios.h> header file. */ | ||||||
|  | #define HAVE_TERMIOS_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <termio.h> header file. */ | ||||||
|  | #define HAVE_TERMIO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <time.h> header file. */ | ||||||
|  | #define HAVE_TIME_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <tld.h> header file. */ | ||||||
|  | /* #undef HAVE_TLD_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `tld_strerror' function. */ | ||||||
|  | /* #undef HAVE_TLD_STRERROR */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `uname' function. */ | ||||||
|  | #define HAVE_UNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <unistd.h> header file. */ | ||||||
|  | #define HAVE_UNISTD_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `utime' function. */ | ||||||
|  | #define HAVE_UTIME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <utime.h> header file. */ | ||||||
|  | #define HAVE_UTIME_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if compiler supports C99 variadic macro style. */ | ||||||
|  | #define HAVE_VARIADIC_MACROS_C99 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if compiler supports old gcc variadic macro style. */ | ||||||
|  | #define HAVE_VARIADIC_MACROS_GCC 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winber.h header file. */ | ||||||
|  | /* #undef HAVE_WINBER_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the windows.h header file. */ | ||||||
|  | /* #undef HAVE_WINDOWS_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winldap.h header file. */ | ||||||
|  | /* #undef HAVE_WINLDAP_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winsock2.h header file. */ | ||||||
|  | /* #undef HAVE_WINSOCK2_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winsock.h header file. */ | ||||||
|  | /* #undef HAVE_WINSOCK_H */ | ||||||
|  | 
 | ||||||
|  | /* Define this symbol if your OS supports changing the contents of argv */ | ||||||
|  | #define HAVE_WRITABLE_ARGV 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the writev function. */ | ||||||
|  | #define HAVE_WRITEV 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ws2tcpip.h header file. */ | ||||||
|  | /* #undef HAVE_WS2TCPIP_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <x509.h> header file. */ | ||||||
|  | /* #undef HAVE_X509_H */ | ||||||
|  | 
 | ||||||
|  | /* if you have the zlib.h header file */ | ||||||
|  | /* #undef HAVE_ZLIB_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you are building a native Windows target. */ | ||||||
|  | /* #undef NATIVE_WINDOWS */ | ||||||
|  | 
 | ||||||
|  | /* If you lack a fine basename() prototype */ | ||||||
|  | /* #undef NEED_BASENAME_PROTO */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you need the lber.h header file even with ldap.h */ | ||||||
|  | /* #undef NEED_LBER_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you need the malloc.h header file even with stdlib.h */ | ||||||
|  | /* #undef NEED_MALLOC_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if _REENTRANT preprocessor symbol must be defined. */ | ||||||
|  | /* #undef NEED_REENTRANT */ | ||||||
|  | 
 | ||||||
|  | /* cpu-machine-OS */ | ||||||
|  | #define OS "x86_64-unknown-linux-gnu" | ||||||
|  | 
 | ||||||
|  | /* Name of package */ | ||||||
|  | #define PACKAGE "curl" | ||||||
|  | 
 | ||||||
|  | /* Define to the address where bug reports for this package should be sent. */ | ||||||
|  | #define PACKAGE_BUGREPORT "a suitable curl mailing list => http://curl.haxx.se/mail/"
 | ||||||
|  | 
 | ||||||
|  | /* Define to the full name of this package. */ | ||||||
|  | #define PACKAGE_NAME "curl" | ||||||
|  | 
 | ||||||
|  | /* Define to the full name and version of this package. */ | ||||||
|  | #define PACKAGE_STRING "curl -" | ||||||
|  | 
 | ||||||
|  | /* Define to the one symbol short name of this package. */ | ||||||
|  | #define PACKAGE_TARNAME "curl" | ||||||
|  | 
 | ||||||
|  | /* Define to the version of this package. */ | ||||||
|  | #define PACKAGE_VERSION "-" | ||||||
|  | 
 | ||||||
|  | /* a suitable file to read random data from */ | ||||||
|  | /* #undef RANDOM_FILE */ | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type pointed by arg 2 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG2 void | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the type pointed by arg 2 for recvfrom is void. */ | ||||||
|  | #define RECVFROM_TYPE_ARG2_IS_VOID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 4 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG4 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type pointed by arg 5 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG5 struct sockaddr | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the type pointed by arg 5 for recvfrom is void. */ | ||||||
|  | /* #undef RECVFROM_TYPE_ARG5_IS_VOID */ | ||||||
|  | 
 | ||||||
|  | /* Define to the type pointed by arg 6 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG6 socklen_t | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the type pointed by arg 6 for recvfrom is void. */ | ||||||
|  | /* #undef RECVFROM_TYPE_ARG6_IS_VOID */ | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_RETV int | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 2 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG2 void * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 4 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG4 int | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for recv. */ | ||||||
|  | #define RECV_TYPE_RETV int | ||||||
|  | 
 | ||||||
|  | /* Define as the return type of signal handlers (`int' or `void'). */ | ||||||
|  | #define RETSIGTYPE void | ||||||
|  | 
 | ||||||
|  | /* Define to the type qualifier of arg 5 for select. */ | ||||||
|  | #define SELECT_QUAL_ARG5  | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for select. */ | ||||||
|  | #define SELECT_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type of args 2, 3 and 4 for select. */ | ||||||
|  | #define SELECT_TYPE_ARG234 fd_set * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 5 for select. */ | ||||||
|  | #define SELECT_TYPE_ARG5 struct timeval * | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for select. */ | ||||||
|  | #define SELECT_TYPE_RETV int | ||||||
|  | 
 | ||||||
|  | /* Define to the type qualifier of arg 2 for send. */ | ||||||
|  | #define SEND_QUAL_ARG2 const | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for send. */ | ||||||
|  | #define SEND_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 2 for send. */ | ||||||
|  | #define SEND_TYPE_ARG2 void * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for send. */ | ||||||
|  | #define SEND_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 4 for send. */ | ||||||
|  | #define SEND_TYPE_ARG4 int | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for send. */ | ||||||
|  | #define SEND_TYPE_RETV int | ||||||
|  | 
 | ||||||
|  | /* The size of `int', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_INT 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `long', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_LONG 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `off_t', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_OFF_T 8 | ||||||
|  | 
 | ||||||
|  | /* The size of `size_t', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_SIZE_T 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `time_t', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_TIME_T 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `void*', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_VOIDP 4 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ANSI C header files. */ | ||||||
|  | #define STDC_HEADERS 1 | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for strerror_r. */ | ||||||
|  | #define STRERROR_R_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ | ||||||
|  | #define TIME_WITH_SYS_TIME 1 | ||||||
|  | 
 | ||||||
|  | /* Define if you want to enable c-ares support */ | ||||||
|  | /* #undef USE_ARES */ | ||||||
|  | 
 | ||||||
|  | /* if GnuTLS is enabled */ | ||||||
|  | /* #undef USE_GNUTLS */ | ||||||
|  | 
 | ||||||
|  | /* if libSSH2 is in use */ | ||||||
|  | /* #undef USE_LIBSSH2 */ | ||||||
|  | 
 | ||||||
|  | /* If you want to build curl with the built-in manual */ | ||||||
|  | #define USE_MANUAL 1 | ||||||
|  | 
 | ||||||
|  | /* if NSS is enabled */ | ||||||
|  | /* #undef USE_NSS */ | ||||||
|  | 
 | ||||||
|  | /* if OpenSSL is in use */ | ||||||
|  | /* #undef USE_OPENSSL */ | ||||||
|  | 
 | ||||||
|  | /* if SSL is enabled */ | ||||||
|  | /* #undef USE_SSLEAY */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you are building a Windows target without large file
 | ||||||
|  |    support. */ | ||||||
|  | /* #undef USE_WIN32_LARGE_FILES */ | ||||||
|  | 
 | ||||||
|  | /* to enable SSPI support */ | ||||||
|  | /* #undef USE_WINDOWS_SSPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if using yaSSL in OpenSSL compatibility mode. */ | ||||||
|  | /* #undef USE_YASSLEMUL */ | ||||||
|  | 
 | ||||||
|  | /* Version number of package */ | ||||||
|  | #define VERSION "7.19.2" | ||||||
|  | 
 | ||||||
|  | /* Define to avoid automatic inclusion of winsock.h */ | ||||||
|  | /* #undef WIN32_LEAN_AND_MEAN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if OS is AIX. */ | ||||||
|  | #ifndef _ALL_SOURCE | ||||||
|  | /* #  undef _ALL_SOURCE */ | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /* Number of bits in a file offset, on hosts where this is settable. */ | ||||||
|  | #define _FILE_OFFSET_BITS 64 | ||||||
|  | 
 | ||||||
|  | /* Define for large files, on AIX-style hosts. */ | ||||||
|  | /* #undef _LARGE_FILES */ | ||||||
|  | 
 | ||||||
|  | /* define this if you need it to compile thread-safe code */ | ||||||
|  | /* #undef _THREAD_SAFE */ | ||||||
|  | 
 | ||||||
|  | /* Define to empty if `const' does not conform to ANSI C. */ | ||||||
|  | /* #undef const */ | ||||||
|  | 
 | ||||||
|  | /* Type to use in place of in_addr_t when system does not provide it. */ | ||||||
|  | /* #undef in_addr_t */ | ||||||
|  | 
 | ||||||
|  | /* Define to `__inline__' or `__inline' if that's what the C compiler
 | ||||||
|  |    calls it, or to nothing if 'inline' is not supported under any name.  */ | ||||||
|  | #ifndef __cplusplus | ||||||
|  | /* #undef inline */ | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /* Define to `unsigned int' if <sys/types.h> does not define. */ | ||||||
|  | /* #undef size_t */ | ||||||
|  | 
 | ||||||
|  | /* Type to use in place of socklen_t when system does not provide it. */ | ||||||
|  | /* #undef socklen_t */ | ||||||
|  | 
 | ||||||
|  | /* the signed version of size_t */ | ||||||
|  | /* #undef ssize_t */ | ||||||
							
								
								
									
										918
									
								
								extensions/curl/curl-src/lib/config-sm-mac.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										918
									
								
								extensions/curl/curl-src/lib/config-sm-mac.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,918 @@ | |||||||
|  | /* lib/config.h.  Generated from config.h.in by configure.  */ | ||||||
|  | /* lib/config.h.in.  Generated from configure.ac by autoheader.  */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the $func function. */ | ||||||
|  | /* #undef AS_TR_CPP */ | ||||||
|  | 
 | ||||||
|  | /* when building libcurl itself */ | ||||||
|  | /* #undef BUILDING_LIBCURL */ | ||||||
|  | 
 | ||||||
|  | /* Location of default ca bundle */ | ||||||
|  | /* #undef CURL_CA_BUNDLE */ | ||||||
|  | 
 | ||||||
|  | /* Location of default ca path */ | ||||||
|  | /* #undef CURL_CA_PATH */ | ||||||
|  | 
 | ||||||
|  | /* to disable cookies support */ | ||||||
|  | /* #undef CURL_DISABLE_COOKIES */ | ||||||
|  | 
 | ||||||
|  | /* to disable cryptographic authentication */ | ||||||
|  | /* #undef CURL_DISABLE_CRYPTO_AUTH */ | ||||||
|  | 
 | ||||||
|  | /* to disable DICT */ | ||||||
|  | /* #undef CURL_DISABLE_DICT */ | ||||||
|  | 
 | ||||||
|  | /* to disable FILE */ | ||||||
|  | /* #undef CURL_DISABLE_FILE */ | ||||||
|  | 
 | ||||||
|  | /* to disable FTP */ | ||||||
|  | /* #undef CURL_DISABLE_FTP */ | ||||||
|  | 
 | ||||||
|  | /* to disable HTTP */ | ||||||
|  | /* #undef CURL_DISABLE_HTTP */ | ||||||
|  | 
 | ||||||
|  | /* to disable LDAP */ | ||||||
|  | #define CURL_DISABLE_LDAP 1 | ||||||
|  | 
 | ||||||
|  | /* to disable LDAPS */ | ||||||
|  | #define CURL_DISABLE_LDAPS 1 | ||||||
|  | 
 | ||||||
|  | /* to disable proxies */ | ||||||
|  | /* #undef CURL_DISABLE_PROXY */ | ||||||
|  | 
 | ||||||
|  | /* to disable TELNET */ | ||||||
|  | /* #undef CURL_DISABLE_TELNET */ | ||||||
|  | 
 | ||||||
|  | /* to disable TFTP */ | ||||||
|  | /* #undef CURL_DISABLE_TFTP */ | ||||||
|  | 
 | ||||||
|  | /* to disable verbose strings */ | ||||||
|  | /* #undef CURL_DISABLE_VERBOSE_STRINGS */ | ||||||
|  | 
 | ||||||
|  | /* to make a symbol visible */ | ||||||
|  | /* #undef CURL_EXTERN_SYMBOL */ | ||||||
|  | 
 | ||||||
|  | /* to enable hidden symbols */ | ||||||
|  | /* #undef CURL_HIDDEN_SYMBOLS */ | ||||||
|  | 
 | ||||||
|  | /* W$ LDAP with non-W$ compiler */ | ||||||
|  | /* #undef CURL_LDAP_HYBRID */ | ||||||
|  | 
 | ||||||
|  | /* Use W$ LDAP implementation */ | ||||||
|  | /* #undef CURL_LDAP_WIN */ | ||||||
|  | 
 | ||||||
|  | /* when not building a shared library */ | ||||||
|  | /* #undef CURL_STATICLIB */ | ||||||
|  | 
 | ||||||
|  | /* Set to explicitly specify we don't want to use thread-safe functions */ | ||||||
|  | /* #undef DISABLED_THREADSAFE */ | ||||||
|  | 
 | ||||||
|  | /* your Entropy Gathering Daemon socket pathname */ | ||||||
|  | /* #undef EGD_SOCKET */ | ||||||
|  | 
 | ||||||
|  | /* Define if you want to enable IPv6 support */ | ||||||
|  | #define ENABLE_IPV6 1 | ||||||
|  | 
 | ||||||
|  | /* Define to the type qualifier of arg 1 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_QUAL_ARG1 const | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG1 struct sockaddr * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 2 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG2 socklen_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of args 4 and 6 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG46 socklen_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 7 for getnameinfo. */ | ||||||
|  | #define GETNAMEINFO_TYPE_ARG7 int | ||||||
|  | 
 | ||||||
|  | /* Specifies the number of arguments to getservbyport_r */ | ||||||
|  | /* #undef GETSERVBYPORT_R_ARGS */ | ||||||
|  | 
 | ||||||
|  | /* Specifies the size of the buffer to pass to getservbyport_r */ | ||||||
|  | /* #undef GETSERVBYPORT_R_BUFSIZE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the alarm function. */ | ||||||
|  | #define HAVE_ALARM 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <alloca.h> header file. */ | ||||||
|  | #define HAVE_ALLOCA_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <arpa/inet.h> header file. */ | ||||||
|  | #define HAVE_ARPA_INET_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <arpa/tftp.h> header file. */ | ||||||
|  | #define HAVE_ARPA_TFTP_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <assert.h> header file. */ | ||||||
|  | #define HAVE_ASSERT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `basename' function. */ | ||||||
|  | #define HAVE_BASENAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if bool is an available type. */ | ||||||
|  | #define HAVE_BOOL_T 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the clock_gettime function and monotonic timer. */ | ||||||
|  | /* #undef HAVE_CLOCK_GETTIME_MONOTONIC */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `closesocket' function. */ | ||||||
|  | /* #undef HAVE_CLOSESOCKET */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */ | ||||||
|  | /* #undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <crypto.h> header file. */ | ||||||
|  | /* #undef HAVE_CRYPTO_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <des.h> header file. */ | ||||||
|  | /* #undef HAVE_DES_H */ | ||||||
|  | 
 | ||||||
|  | /* disabled non-blocking sockets */ | ||||||
|  | /* #undef HAVE_DISABLED_NONBLOCKING */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <dlfcn.h> header file. */ | ||||||
|  | #define HAVE_DLFCN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ENGINE_load_builtin_engines' function. */ | ||||||
|  | /* #undef HAVE_ENGINE_LOAD_BUILTIN_ENGINES */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <errno.h> header file. */ | ||||||
|  | #define HAVE_ERRNO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <err.h> header file. */ | ||||||
|  | /* #undef HAVE_ERR_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <fcntl.h> header file. */ | ||||||
|  | #define HAVE_FCNTL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the fdopen function. */ | ||||||
|  | #define HAVE_FDOPEN 1 | ||||||
|  | 
 | ||||||
|  | /* use FIONBIO for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_FIONBIO */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `fork' function. */ | ||||||
|  | #define HAVE_FORK 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the freeaddrinfo function. */ | ||||||
|  | #define HAVE_FREEADDRINFO 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the freeifaddrs function. */ | ||||||
|  | #define HAVE_FREEIFADDRS 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ftruncate function. */ | ||||||
|  | #define HAVE_FTRUNCATE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working getaddrinfo function. */ | ||||||
|  | #define HAVE_GETADDRINFO 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `geteuid' function. */ | ||||||
|  | #define HAVE_GETEUID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `gethostbyaddr' function. */ | ||||||
|  | #define HAVE_GETHOSTBYADDR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the gethostbyaddr_r function. */ | ||||||
|  | /* #undef HAVE_GETHOSTBYADDR_R */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyaddr_r() takes 5 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYADDR_R_5 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyaddr_r() takes 7 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYADDR_R_7 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyaddr_r() takes 8 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYADDR_R_8 */ | ||||||
|  | 
 | ||||||
|  | /* If you have gethostbyname */ | ||||||
|  | #define HAVE_GETHOSTBYNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the gethostbyname_r function. */ | ||||||
|  | /* #undef HAVE_GETHOSTBYNAME_R */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyname_r() takes 3 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYNAME_R_3 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyname_r() takes 5 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYNAME_R_5 */ | ||||||
|  | 
 | ||||||
|  | /* gethostbyname_r() takes 6 args */ | ||||||
|  | /* #undef HAVE_GETHOSTBYNAME_R_6 */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the gethostname function. */ | ||||||
|  | #define HAVE_GETHOSTNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working getifaddrs function. */ | ||||||
|  | #define HAVE_GETIFADDRS 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the getnameinfo function. */ | ||||||
|  | #define HAVE_GETNAMEINFO 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getpass_r' function. */ | ||||||
|  | /* #undef HAVE_GETPASS_R */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getppid' function. */ | ||||||
|  | #define HAVE_GETPPID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getprotobyname' function. */ | ||||||
|  | #define HAVE_GETPROTOBYNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getpwuid' function. */ | ||||||
|  | #define HAVE_GETPWUID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `getrlimit' function. */ | ||||||
|  | #define HAVE_GETRLIMIT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the getservbyport_r function. */ | ||||||
|  | /* #undef HAVE_GETSERVBYPORT_R */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `gettimeofday' function. */ | ||||||
|  | #define HAVE_GETTIMEOFDAY 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working glibc-style strerror_r function. */ | ||||||
|  | /* #undef HAVE_GLIBC_STRERROR_R */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working gmtime_r function. */ | ||||||
|  | #define HAVE_GMTIME_R 1 | ||||||
|  | 
 | ||||||
|  | /* if you have the gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSAPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */ | ||||||
|  | /* #undef HAVE_GSSAPI_GSSAPI_GENERIC_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <gssapi/gssapi.h> header file. */ | ||||||
|  | /* #undef HAVE_GSSAPI_GSSAPI_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <gssapi/gssapi_krb5.h> header file. */ | ||||||
|  | /* #undef HAVE_GSSAPI_GSSAPI_KRB5_H */ | ||||||
|  | 
 | ||||||
|  | /* if you have the GNU gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSGNU */ | ||||||
|  | 
 | ||||||
|  | /* if you have the Heimdal gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSHEIMDAL */ | ||||||
|  | 
 | ||||||
|  | /* if you have the MIT gssapi libraries */ | ||||||
|  | /* #undef HAVE_GSSMIT */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `idna_strerror' function. */ | ||||||
|  | /* #undef HAVE_IDNA_STRERROR */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `idn_free' function. */ | ||||||
|  | /* #undef HAVE_IDN_FREE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <idn-free.h> header file. */ | ||||||
|  | /* #undef HAVE_IDN_FREE_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <ifaddrs.h> header file. */ | ||||||
|  | #define HAVE_IFADDRS_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `inet_addr' function. */ | ||||||
|  | #define HAVE_INET_ADDR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the inet_ntoa_r function. */ | ||||||
|  | /* #undef HAVE_INET_NTOA_R */ | ||||||
|  | 
 | ||||||
|  | /* inet_ntoa_r() takes 2 args */ | ||||||
|  | /* #undef HAVE_INET_NTOA_R_2 */ | ||||||
|  | 
 | ||||||
|  | /* inet_ntoa_r() takes 3 args */ | ||||||
|  | /* #undef HAVE_INET_NTOA_R_3 */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a IPv6 capable working inet_ntop function. */ | ||||||
|  | /* #undef HAVE_INET_NTOP */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a IPv6 capable working inet_pton function. */ | ||||||
|  | /* #undef HAVE_INET_PTON */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <inttypes.h> header file. */ | ||||||
|  | #define HAVE_INTTYPES_H 1 | ||||||
|  | 
 | ||||||
|  | /* use ioctlsocket() for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_IOCTLSOCKET */ | ||||||
|  | 
 | ||||||
|  | /* use Ioctlsocket() for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_IOCTLSOCKET_CASE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <io.h> header file. */ | ||||||
|  | /* #undef HAVE_IO_H */ | ||||||
|  | 
 | ||||||
|  | /* if you have the Kerberos4 libraries (including -ldes) */ | ||||||
|  | /* #undef HAVE_KRB4 */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `krb_get_our_ip_for_realm' function. */ | ||||||
|  | /* #undef HAVE_KRB_GET_OUR_IP_FOR_REALM */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <krb.h> header file. */ | ||||||
|  | /* #undef HAVE_KRB_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the lber.h header file. */ | ||||||
|  | /* #undef HAVE_LBER_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ldapssl.h header file. */ | ||||||
|  | /* #undef HAVE_LDAPSSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ldap.h header file. */ | ||||||
|  | /* #undef HAVE_LDAP_H */ | ||||||
|  | 
 | ||||||
|  | /* Use LDAPS implementation */ | ||||||
|  | /* #undef HAVE_LDAP_SSL */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ldap_ssl.h header file. */ | ||||||
|  | /* #undef HAVE_LDAP_SSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ldap_url_parse' function. */ | ||||||
|  | /* #undef HAVE_LDAP_URL_PARSE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <libgen.h> header file. */ | ||||||
|  | #define HAVE_LIBGEN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `idn' library (-lidn). */ | ||||||
|  | /* #undef HAVE_LIBIDN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `resolv' library (-lresolv). */ | ||||||
|  | /* #undef HAVE_LIBRESOLV */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `resolve' library (-lresolve). */ | ||||||
|  | /* #undef HAVE_LIBRESOLVE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `socket' library (-lsocket). */ | ||||||
|  | /* #undef HAVE_LIBSOCKET */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ssh2' library (-lssh2). */ | ||||||
|  | /* #undef HAVE_LIBSSH2 */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <libssh2.h> header file. */ | ||||||
|  | /* #undef HAVE_LIBSSH2_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `ssl' library (-lssl). */ | ||||||
|  | /* #undef HAVE_LIBSSL */ | ||||||
|  | 
 | ||||||
|  | /* if zlib is available */ | ||||||
|  | /* #undef HAVE_LIBZ */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <limits.h> header file. */ | ||||||
|  | #define HAVE_LIMITS_H 1 | ||||||
|  | 
 | ||||||
|  | /* if your compiler supports LL */ | ||||||
|  | #define HAVE_LL 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <locale.h> header file. */ | ||||||
|  | #define HAVE_LOCALE_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working localtime_r function. */ | ||||||
|  | #define HAVE_LOCALTIME_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the compiler supports the 'long long' data type. */ | ||||||
|  | #define HAVE_LONGLONG 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the malloc.h header file. */ | ||||||
|  | /* #undef HAVE_MALLOC_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <memory.h> header file. */ | ||||||
|  | #define HAVE_MEMORY_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the MSG_NOSIGNAL flag. */ | ||||||
|  | /* #undef HAVE_MSG_NOSIGNAL */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <netdb.h> header file. */ | ||||||
|  | #define HAVE_NETDB_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <netinet/in.h> header file. */ | ||||||
|  | #define HAVE_NETINET_IN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <netinet/tcp.h> header file. */ | ||||||
|  | #define HAVE_NETINET_TCP_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <net/if.h> header file. */ | ||||||
|  | #define HAVE_NET_IF_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if NI_WITHSCOPEID exists and works. */ | ||||||
|  | /* #undef HAVE_NI_WITHSCOPEID */ | ||||||
|  | 
 | ||||||
|  | /* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE
 | ||||||
|  |    */ | ||||||
|  | /* #undef HAVE_OLD_GSSMIT */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/crypto.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_CRYPTO_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/engine.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_ENGINE_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/err.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_ERR_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/pem.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_PEM_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/pkcs12.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_PKCS12_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/rsa.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_RSA_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/ssl.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_SSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <openssl/x509.h> header file. */ | ||||||
|  | /* #undef HAVE_OPENSSL_X509_H */ | ||||||
|  | 
 | ||||||
|  | /* use O_NONBLOCK for non-blocking sockets */ | ||||||
|  | #define HAVE_O_NONBLOCK 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <pem.h> header file. */ | ||||||
|  | /* #undef HAVE_PEM_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `perror' function. */ | ||||||
|  | #define HAVE_PERROR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `pipe' function. */ | ||||||
|  | #define HAVE_PIPE 1 | ||||||
|  | 
 | ||||||
|  | /* if you have the function PK11_CreateGenericObject */ | ||||||
|  | /* #undef HAVE_PK11_CREATEGENERICOBJECT */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `poll' function. */ | ||||||
|  | #define HAVE_POLL 1 | ||||||
|  | 
 | ||||||
|  | /* If you have a fine poll */ | ||||||
|  | /* #undef HAVE_POLL_FINE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <poll.h> header file. */ | ||||||
|  | #define HAVE_POLL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have a working POSIX-style strerror_r function. */ | ||||||
|  | #define HAVE_POSIX_STRERROR_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <pwd.h> header file. */ | ||||||
|  | #define HAVE_PWD_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `RAND_egd' function. */ | ||||||
|  | /* #undef HAVE_RAND_EGD */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `RAND_screen' function. */ | ||||||
|  | /* #undef HAVE_RAND_SCREEN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `RAND_status' function. */ | ||||||
|  | /* #undef HAVE_RAND_STATUS */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the recv function. */ | ||||||
|  | #define HAVE_RECV 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the recvfrom function. */ | ||||||
|  | #define HAVE_RECVFROM 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <rsa.h> header file. */ | ||||||
|  | /* #undef HAVE_RSA_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the select function. */ | ||||||
|  | #define HAVE_SELECT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the send function. */ | ||||||
|  | #define HAVE_SEND 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <setjmp.h> header file. */ | ||||||
|  | #define HAVE_SETJMP_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `setlocale' function. */ | ||||||
|  | #define HAVE_SETLOCALE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `setmode' function. */ | ||||||
|  | #define HAVE_SETMODE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `setrlimit' function. */ | ||||||
|  | #define HAVE_SETRLIMIT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sgtty.h> header file. */ | ||||||
|  | #define HAVE_SGTTY_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the sigaction function. */ | ||||||
|  | #define HAVE_SIGACTION 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the siginterrupt function. */ | ||||||
|  | #define HAVE_SIGINTERRUPT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the signal function. */ | ||||||
|  | #define HAVE_SIGNAL 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <signal.h> header file. */ | ||||||
|  | #define HAVE_SIGNAL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the sigsetjmp function or macro. */ | ||||||
|  | #define HAVE_SIGSETJMP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if sig_atomic_t is an available typedef. */ | ||||||
|  | #define HAVE_SIG_ATOMIC_T 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if sig_atomic_t is already defined as volatile. */ | ||||||
|  | /* #undef HAVE_SIG_ATOMIC_T_VOLATILE */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `socket' function. */ | ||||||
|  | #define HAVE_SOCKET 1 | ||||||
|  | 
 | ||||||
|  | /* use SO_NONBLOCK for non-blocking sockets */ | ||||||
|  | /* #undef HAVE_SO_NONBLOCK */ | ||||||
|  | 
 | ||||||
|  | /* Define this if you have the SPNEGO library fbopenssl */ | ||||||
|  | /* #undef HAVE_SPNEGO */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `SSL_get_shutdown' function. */ | ||||||
|  | /* #undef HAVE_SSL_GET_SHUTDOWN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <ssl.h> header file. */ | ||||||
|  | /* #undef HAVE_SSL_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdbool.h> header file. */ | ||||||
|  | #define HAVE_STDBOOL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdint.h> header file. */ | ||||||
|  | #define HAVE_STDINT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdio.h> header file. */ | ||||||
|  | #define HAVE_STDIO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <stdlib.h> header file. */ | ||||||
|  | #define HAVE_STDLIB_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strcasecmp function. */ | ||||||
|  | #define HAVE_STRCASECMP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strcasestr function. */ | ||||||
|  | #define HAVE_STRCASESTR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strcmpi function. */ | ||||||
|  | /* #undef HAVE_STRCMPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strdup function. */ | ||||||
|  | #define HAVE_STRDUP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strerror_r function. */ | ||||||
|  | #define HAVE_STRERROR_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the stricmp function. */ | ||||||
|  | /* #undef HAVE_STRICMP */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <strings.h> header file. */ | ||||||
|  | #define HAVE_STRINGS_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <string.h> header file. */ | ||||||
|  | #define HAVE_STRING_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strlcat function. */ | ||||||
|  | #define HAVE_STRLCAT 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `strlcpy' function. */ | ||||||
|  | /* #undef HAVE_STRLCPY */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strncasecmp function. */ | ||||||
|  | #define HAVE_STRNCASECMP 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strncmpi function. */ | ||||||
|  | /* #undef HAVE_STRNCMPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strnicmp function. */ | ||||||
|  | /* #undef HAVE_STRNICMP */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strstr function. */ | ||||||
|  | #define HAVE_STRSTR 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strtok_r function. */ | ||||||
|  | #define HAVE_STRTOK_R 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the strtoll function. */ | ||||||
|  | #define HAVE_STRTOLL 1 | ||||||
|  | 
 | ||||||
|  | /* if struct sockaddr_storage is defined */ | ||||||
|  | #define HAVE_STRUCT_SOCKADDR_STORAGE 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the timeval struct. */ | ||||||
|  | #define HAVE_STRUCT_TIMEVAL 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/filio.h> header file. */ | ||||||
|  | #define HAVE_SYS_FILIO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/ioctl.h> header file. */ | ||||||
|  | #define HAVE_SYS_IOCTL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/param.h> header file. */ | ||||||
|  | #define HAVE_SYS_PARAM_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/poll.h> header file. */ | ||||||
|  | #define HAVE_SYS_POLL_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/resource.h> header file. */ | ||||||
|  | #define HAVE_SYS_RESOURCE_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/select.h> header file. */ | ||||||
|  | #define HAVE_SYS_SELECT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/socket.h> header file. */ | ||||||
|  | #define HAVE_SYS_SOCKET_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/sockio.h> header file. */ | ||||||
|  | #define HAVE_SYS_SOCKIO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/stat.h> header file. */ | ||||||
|  | #define HAVE_SYS_STAT_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/time.h> header file. */ | ||||||
|  | #define HAVE_SYS_TIME_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/types.h> header file. */ | ||||||
|  | #define HAVE_SYS_TYPES_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/uio.h> header file. */ | ||||||
|  | #define HAVE_SYS_UIO_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/un.h> header file. */ | ||||||
|  | #define HAVE_SYS_UN_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <sys/utime.h> header file. */ | ||||||
|  | /* #undef HAVE_SYS_UTIME_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <termios.h> header file. */ | ||||||
|  | #define HAVE_TERMIOS_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <termio.h> header file. */ | ||||||
|  | /* #undef HAVE_TERMIO_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <time.h> header file. */ | ||||||
|  | #define HAVE_TIME_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <tld.h> header file. */ | ||||||
|  | /* #undef HAVE_TLD_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `tld_strerror' function. */ | ||||||
|  | /* #undef HAVE_TLD_STRERROR */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `uname' function. */ | ||||||
|  | #define HAVE_UNAME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <unistd.h> header file. */ | ||||||
|  | #define HAVE_UNISTD_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the `utime' function. */ | ||||||
|  | #define HAVE_UTIME 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <utime.h> header file. */ | ||||||
|  | #define HAVE_UTIME_H 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if compiler supports C99 variadic macro style. */ | ||||||
|  | #define HAVE_VARIADIC_MACROS_C99 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if compiler supports old gcc variadic macro style. */ | ||||||
|  | #define HAVE_VARIADIC_MACROS_GCC 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winber.h header file. */ | ||||||
|  | /* #undef HAVE_WINBER_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the windows.h header file. */ | ||||||
|  | /* #undef HAVE_WINDOWS_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winldap.h header file. */ | ||||||
|  | /* #undef HAVE_WINLDAP_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winsock2.h header file. */ | ||||||
|  | /* #undef HAVE_WINSOCK2_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the winsock.h header file. */ | ||||||
|  | /* #undef HAVE_WINSOCK_H */ | ||||||
|  | 
 | ||||||
|  | /* Define this symbol if your OS supports changing the contents of argv */ | ||||||
|  | #define HAVE_WRITABLE_ARGV 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the writev function. */ | ||||||
|  | #define HAVE_WRITEV 1 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ws2tcpip.h header file. */ | ||||||
|  | /* #undef HAVE_WS2TCPIP_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the <x509.h> header file. */ | ||||||
|  | /* #undef HAVE_X509_H */ | ||||||
|  | 
 | ||||||
|  | /* if you have the zlib.h header file */ | ||||||
|  | /* #undef HAVE_ZLIB_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you are building a native Windows target. */ | ||||||
|  | /* #undef NATIVE_WINDOWS */ | ||||||
|  | 
 | ||||||
|  | /* If you lack a fine basename() prototype */ | ||||||
|  | /* #undef NEED_BASENAME_PROTO */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you need the lber.h header file even with ldap.h */ | ||||||
|  | /* #undef NEED_LBER_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you need the malloc.h header file even with stdlib.h */ | ||||||
|  | /* #undef NEED_MALLOC_H */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if _REENTRANT preprocessor symbol must be defined. */ | ||||||
|  | /* #undef NEED_REENTRANT */ | ||||||
|  | 
 | ||||||
|  | /* cpu-machine-OS */ | ||||||
|  | #define OS "i386-apple-darwin13.0.0" | ||||||
|  | 
 | ||||||
|  | /* Name of package */ | ||||||
|  | #define PACKAGE "curl" | ||||||
|  | 
 | ||||||
|  | /* Define to the address where bug reports for this package should be sent. */ | ||||||
|  | #define PACKAGE_BUGREPORT "a suitable curl mailing list => http://curl.haxx.se/mail/"
 | ||||||
|  | 
 | ||||||
|  | /* Define to the full name of this package. */ | ||||||
|  | #define PACKAGE_NAME "curl" | ||||||
|  | 
 | ||||||
|  | /* Define to the full name and version of this package. */ | ||||||
|  | #define PACKAGE_STRING "curl -" | ||||||
|  | 
 | ||||||
|  | /* Define to the one symbol short name of this package. */ | ||||||
|  | #define PACKAGE_TARNAME "curl" | ||||||
|  | 
 | ||||||
|  | /* Define to the version of this package. */ | ||||||
|  | #define PACKAGE_VERSION "-" | ||||||
|  | 
 | ||||||
|  | /* a suitable file to read random data from */ | ||||||
|  | /* #undef RANDOM_FILE */ | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type pointed by arg 2 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG2 void | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the type pointed by arg 2 for recvfrom is void. */ | ||||||
|  | #define RECVFROM_TYPE_ARG2_IS_VOID 1 | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 4 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG4 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type pointed by arg 5 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG5 struct sockaddr | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the type pointed by arg 5 for recvfrom is void. */ | ||||||
|  | /* #undef RECVFROM_TYPE_ARG5_IS_VOID */ | ||||||
|  | 
 | ||||||
|  | /* Define to the type pointed by arg 6 for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_ARG6 socklen_t | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if the type pointed by arg 6 for recvfrom is void. */ | ||||||
|  | /* #undef RECVFROM_TYPE_ARG6_IS_VOID */ | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for recvfrom. */ | ||||||
|  | #define RECVFROM_TYPE_RETV ssize_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 2 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG2 void * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 4 for recv. */ | ||||||
|  | #define RECV_TYPE_ARG4 int | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for recv. */ | ||||||
|  | #define RECV_TYPE_RETV ssize_t | ||||||
|  | 
 | ||||||
|  | /* Define as the return type of signal handlers (`int' or `void'). */ | ||||||
|  | #define RETSIGTYPE void | ||||||
|  | 
 | ||||||
|  | /* Define to the type qualifier of arg 5 for select. */ | ||||||
|  | #define SELECT_QUAL_ARG5  | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for select. */ | ||||||
|  | #define SELECT_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type of args 2, 3 and 4 for select. */ | ||||||
|  | #define SELECT_TYPE_ARG234 fd_set * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 5 for select. */ | ||||||
|  | #define SELECT_TYPE_ARG5 struct timeval * | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for select. */ | ||||||
|  | #define SELECT_TYPE_RETV int | ||||||
|  | 
 | ||||||
|  | /* Define to the type qualifier of arg 2 for send. */ | ||||||
|  | #define SEND_QUAL_ARG2 const | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 1 for send. */ | ||||||
|  | #define SEND_TYPE_ARG1 int | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 2 for send. */ | ||||||
|  | #define SEND_TYPE_ARG2 void * | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for send. */ | ||||||
|  | #define SEND_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 4 for send. */ | ||||||
|  | #define SEND_TYPE_ARG4 int | ||||||
|  | 
 | ||||||
|  | /* Define to the function return type for send. */ | ||||||
|  | #define SEND_TYPE_RETV ssize_t | ||||||
|  | 
 | ||||||
|  | /* The size of `int', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_INT 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `long', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_LONG 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `off_t', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_OFF_T 8 | ||||||
|  | 
 | ||||||
|  | /* The size of `size_t', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_SIZE_T 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `time_t', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_TIME_T 4 | ||||||
|  | 
 | ||||||
|  | /* The size of `void*', as computed by sizeof. */ | ||||||
|  | #define SIZEOF_VOIDP 4 | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you have the ANSI C header files. */ | ||||||
|  | #define STDC_HEADERS 1 | ||||||
|  | 
 | ||||||
|  | /* Define to the type of arg 3 for strerror_r. */ | ||||||
|  | #define STRERROR_R_TYPE_ARG3 size_t | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ | ||||||
|  | #define TIME_WITH_SYS_TIME 1 | ||||||
|  | 
 | ||||||
|  | /* Define if you want to enable c-ares support */ | ||||||
|  | /* #undef USE_ARES */ | ||||||
|  | 
 | ||||||
|  | /* if GnuTLS is enabled */ | ||||||
|  | /* #undef USE_GNUTLS */ | ||||||
|  | 
 | ||||||
|  | /* if libSSH2 is in use */ | ||||||
|  | /* #undef USE_LIBSSH2 */ | ||||||
|  | 
 | ||||||
|  | /* If you want to build curl with the built-in manual */ | ||||||
|  | #define USE_MANUAL 1 | ||||||
|  | 
 | ||||||
|  | /* if NSS is enabled */ | ||||||
|  | /* #undef USE_NSS */ | ||||||
|  | 
 | ||||||
|  | /* if OpenSSL is in use */ | ||||||
|  | /* #undef USE_OPENSSL */ | ||||||
|  | 
 | ||||||
|  | /* if SSL is enabled */ | ||||||
|  | /* #undef USE_SSLEAY */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if you are building a Windows target without large file
 | ||||||
|  |    support. */ | ||||||
|  | /* #undef USE_WIN32_LARGE_FILES */ | ||||||
|  | 
 | ||||||
|  | /* to enable SSPI support */ | ||||||
|  | /* #undef USE_WINDOWS_SSPI */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if using yaSSL in OpenSSL compatibility mode. */ | ||||||
|  | /* #undef USE_YASSLEMUL */ | ||||||
|  | 
 | ||||||
|  | /* Version number of package */ | ||||||
|  | #define VERSION "7.19.2" | ||||||
|  | 
 | ||||||
|  | /* Define to avoid automatic inclusion of winsock.h */ | ||||||
|  | /* #undef WIN32_LEAN_AND_MEAN */ | ||||||
|  | 
 | ||||||
|  | /* Define to 1 if OS is AIX. */ | ||||||
|  | #ifndef _ALL_SOURCE | ||||||
|  | /* #  undef _ALL_SOURCE */ | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /* Number of bits in a file offset, on hosts where this is settable. */ | ||||||
|  | /* #undef _FILE_OFFSET_BITS */ | ||||||
|  | 
 | ||||||
|  | /* Define for large files, on AIX-style hosts. */ | ||||||
|  | /* #undef _LARGE_FILES */ | ||||||
|  | 
 | ||||||
|  | /* define this if you need it to compile thread-safe code */ | ||||||
|  | /* #undef _THREAD_SAFE */ | ||||||
|  | 
 | ||||||
|  | /* Define to empty if `const' does not conform to ANSI C. */ | ||||||
|  | /* #undef const */ | ||||||
|  | 
 | ||||||
|  | /* Type to use in place of in_addr_t when system does not provide it. */ | ||||||
|  | /* #undef in_addr_t */ | ||||||
|  | 
 | ||||||
|  | /* Define to `__inline__' or `__inline' if that's what the C compiler
 | ||||||
|  |    calls it, or to nothing if 'inline' is not supported under any name.  */ | ||||||
|  | #ifndef __cplusplus | ||||||
|  | /* #undef inline */ | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /* Define to `unsigned int' if <sys/types.h> does not define. */ | ||||||
|  | /* #undef size_t */ | ||||||
|  | 
 | ||||||
|  | /* Type to use in place of socklen_t when system does not provide it. */ | ||||||
|  | /* #undef socklen_t */ | ||||||
|  | 
 | ||||||
|  | /* the signed version of size_t */ | ||||||
|  | /* #undef ssize_t */ | ||||||
| @ -48,6 +48,12 @@ | |||||||
| #endif | #endif | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | #ifdef __linux__ | ||||||
|  | # include "config-sm-linux.h" | ||||||
|  | #elif defined(__APPLE__) | ||||||
|  | # include "config-sm-mac.h" | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| #if defined(macintosh) && defined(__MRC__) | #if defined(macintosh) && defined(__MRC__) | ||||||
| #  include "config-mac.h" | #  include "config-mac.h" | ||||||
| #endif | #endif | ||||||
|  | |||||||
| @ -31,6 +31,8 @@ | |||||||
| #ifndef HAVE_STRLCAT | #ifndef HAVE_STRLCAT | ||||||
| #define strlcat(x,y,z) Curl_strlcat(x,y,z) | #define strlcat(x,y,z) Curl_strlcat(x,y,z) | ||||||
| #endif | #endif | ||||||
|  | #if !defined(BUILTIN_STRLCAT) | ||||||
| size_t strlcat(char *dst, const char *src, size_t siz); | size_t strlcat(char *dst, const char *src, size_t siz); | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
|  | |||||||
| @ -78,11 +78,11 @@ void CurlExt::SDK_OnUnload() | |||||||
| 
 | 
 | ||||||
| const char *CurlExt::GetExtensionVerString() | const char *CurlExt::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *CurlExt::GetExtensionDateString() | const char *CurlExt::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,16 +1,15 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| compiler = SM.DefaultExtCompiler('extensions/geoip') | import os | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('geoip.ext') | binary = SM.ExtLibrary(builder, 'geoip.ext') | ||||||
| binary = Cpp.LibraryBuilder('geoip.ext', AMBuild, extension, compiler) | if builder.target_platform is 'windows': | ||||||
| binary.AddSourceFiles('extensions/geoip', [ |   binary.compiler.postlink += ['wsock32.lib'] | ||||||
|  | 
 | ||||||
|  | binary.sources += [ | ||||||
|   'extension.cpp', |   'extension.cpp', | ||||||
|   'GeoIP.c', |   'GeoIP.c', | ||||||
|   'sdk/smsdk_ext.cpp' |   'sdk/smsdk_ext.cpp' | ||||||
| 	]) | ] | ||||||
| if AMBuild.target['platform'] == 'windows': | 
 | ||||||
| 	binary['POSTLINKFLAGS'].append('wsock32.lib') | SM.extensions += [builder.Add(binary)] | ||||||
| SM.AutoVersion('extensions/geoip', binary) |  | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -70,12 +70,12 @@ void GeoIP_Extension::SDK_OnUnload() | |||||||
| 
 | 
 | ||||||
| const char *GeoIP_Extension::GetExtensionVerString() | const char *GeoIP_Extension::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *GeoIP_Extension::GetExtensionDateString() | const char *GeoIP_Extension::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*******************************
 | /*******************************
 | ||||||
|  | |||||||
| @ -1,30 +1,28 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultExtCompiler('extensions/mysql') | if SM.mysql_root: | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache['MYSQL5'], 'include')) |   binary = SM.ExtLibrary(builder, 'dbi.mysql.ext') | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) |   binary.compiler.cxxincludes += [ | ||||||
|  |     os.path.join(SM.mysql_root, 'include'), | ||||||
|  |     os.path.join(SM.mms_root, 'core', 'sourcehook') | ||||||
|  |   ] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('dbi.mysql.ext') |   if builder.target_platform is 'linux' or builder.target_platform is 'mac': | ||||||
| binary = Cpp.LibraryBuilder('dbi.mysql.ext', AMBuild, extension, compiler) |     binary.compiler.postlink += [ | ||||||
| 
 |       os.path.join(SM.mysql_root, 'lib', 'libmysqlclient_r.a'), | ||||||
| if AMBuild.target['platform'] == 'linux' or AMBuild.target['platform'] == 'darwin': |  | ||||||
| 	lib = os.path.join(AMBuild.cache['MYSQL5'], 'lib', 'libmysqlclient_r.a') |  | ||||||
| 	link = [lib, |  | ||||||
|       '-lz', |       '-lz', | ||||||
|       '-lpthread', |       '-lpthread', | ||||||
|           '-lm'] |       '-lm' | ||||||
| 	binary.RelinkIfNewer(lib) |     ] | ||||||
| 	binary['POSTLINKFLAGS'].extend(link) |   elif builder.target_platform is 'windows': | ||||||
| elif AMBuild.target['platform'] == 'windows': |     binary.compiler.postlink += [ | ||||||
| 	mylib = os.path.join(AMBuild.cache['MYSQL5'], 'lib', 'opt', 'mysqlclient.lib') |       os.path.join(SM.mysql_root, 'lib', 'opt', 'mysqlclient.lib'), | ||||||
| 	zlib = os.path.join(AMBuild.cache['MYSQL5'], 'lib', 'opt', 'zlib.lib') |       os.path.join(SM.mysql_root, 'lib', 'opt', 'zlib.lib'), | ||||||
| 	binary.RelinkIfNewer(mylib) |       'wsock32.lib' | ||||||
| 	binary.RelinkIfNewer(zlib) |     ] | ||||||
| 	binary['POSTLINKFLAGS'].extend([mylib, zlib, 'wsock32.lib']) |  | ||||||
| 
 | 
 | ||||||
| 
 |   binary.sources += [ | ||||||
| binary.AddSourceFiles('extensions/mysql', [ |  | ||||||
|     'sdk/smsdk_ext.cpp', |     'sdk/smsdk_ext.cpp', | ||||||
|     'mysql/MyBasicResults.cpp', |     'mysql/MyBasicResults.cpp', | ||||||
|     'mysql/MyBoundResults.cpp', |     'mysql/MyBoundResults.cpp', | ||||||
| @ -32,8 +30,6 @@ binary.AddSourceFiles('extensions/mysql', [ | |||||||
|     'mysql/MyDriver.cpp', |     'mysql/MyDriver.cpp', | ||||||
|     'mysql/MyStatement.cpp', |     'mysql/MyStatement.cpp', | ||||||
|     'extension.cpp' |     'extension.cpp' | ||||||
| 	]) |   ] | ||||||
| SM.AutoVersion('extensions/mysql', binary) |   SM.extensions += [builder.Add(binary)] | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -62,11 +62,11 @@ void DBI_MySQL::SDK_OnUnload() | |||||||
| 
 | 
 | ||||||
| const char *DBI_MySQL::GetExtensionVerString() | const char *DBI_MySQL::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *DBI_MySQL::GetExtensionDateString() | const char *DBI_MySQL::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,28 +1,24 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultExtCompiler('extensions/regex') | binary = SM.ExtLibrary(builder, 'regex.ext') | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) | binary.compiler.cxxincludes += [ | ||||||
|  |   os.path.join(SM.mms_root, 'core', 'sourcehook'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('regex.ext') | if builder.target_platform is 'linux': | ||||||
| binary = Cpp.LibraryBuilder('regex.ext', AMBuild, extension, compiler) |   path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_linux', 'libpcre.a') | ||||||
|  | elif builder.target_platform is 'windows': | ||||||
|  |   path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_win', 'pcre.lib') | ||||||
|  | elif builder.target_platform is 'mac': | ||||||
|  |   path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_darwin', 'libpcre.a') | ||||||
|  | binary.compiler.postlink += [binary.Dep(path)] | ||||||
| 
 | 
 | ||||||
| if AMBuild.target['platform'] == 'linux': | binary.sources += [ | ||||||
| 	path = os.path.join(AMBuild.sourceFolder, 'extensions', 'regex', 'lib_linux', 'libpcre.a') |  | ||||||
| elif AMBuild.target['platform'] == 'windows': |  | ||||||
| 	path = os.path.join(AMBuild.sourceFolder, 'extensions', 'regex', 'lib_win', 'pcre.lib') |  | ||||||
| elif AMBuild.target['platform'] == 'darwin': |  | ||||||
| 	path = os.path.join(AMBuild.sourceFolder, 'extensions', 'regex', 'lib_darwin', 'libpcre.a') |  | ||||||
| 
 |  | ||||||
| binary.RelinkIfNewer(path) |  | ||||||
| binary['POSTLINKFLAGS'].append(path) |  | ||||||
| 
 |  | ||||||
| binary.AddSourceFiles('extensions/regex', [ |  | ||||||
|   'extension.cpp', |   'extension.cpp', | ||||||
|   'CRegEx.cpp', |   'CRegEx.cpp', | ||||||
|   'sdk/smsdk_ext.cpp', |   'sdk/smsdk_ext.cpp', | ||||||
| 	]) | ] | ||||||
| SM.AutoVersion('extensions/regex', binary) | 
 | ||||||
| SM.ExtractDebugInfo(extension, binary) | SM.extensions += [builder.Add(binary)] | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -65,12 +65,12 @@ void RegexExtension::SDK_OnUnload() | |||||||
| 
 | 
 | ||||||
| const char *RegexExtension::GetExtensionVerString() | const char *RegexExtension::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *RegexExtension::GetExtensionDateString() | const char *RegexExtension::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static cell_t CompileRegex(IPluginContext *pCtx, const cell_t *params) | static cell_t CompileRegex(IPluginContext *pCtx, const cell_t *params) | ||||||
|  | |||||||
| @ -1,31 +1,21 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| for i in SM.sdkInfo: | for sdk_name in SM.sdks: | ||||||
| 	sdk = SM.sdkInfo[i] |   sdk = SM.sdks[sdk_name] | ||||||
| 	if AMBuild.target['platform'] not in sdk['platform']: |  | ||||||
| 		continue |  | ||||||
|    |    | ||||||
| 	compiler = SM.DefaultHL2Compiler('extensions/sdkhooks', i) |   binary = SM.HL2Library(builder, 'sdkhooks.ext.' + sdk.ext, sdk) | ||||||
| 	compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'game', 'shared')) |   binary.compiler.cxxincludes += [ | ||||||
|  |     os.path.join(sdk.path, 'game', 'shared') | ||||||
|  |   ] | ||||||
|  |   if binary.compiler.cxx.behavior is 'gcc': | ||||||
|  |     binary.compiler.cxxflags += ['-Wno-invalid-offsetof'] | ||||||
| 
 | 
 | ||||||
| 	if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang': |   binary.sources += [ | ||||||
| 		compiler['CFLAGS'].append('-Wno-parentheses') |  | ||||||
| 		compiler['CXXFLAGS'].append('-Wno-invalid-offsetof') |  | ||||||
| 
 |  | ||||||
| 	name = 'sdkhooks.ext.' + sdk['ext'] |  | ||||||
| 	extension = AMBuild.AddJob(name) |  | ||||||
| 	binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) |  | ||||||
| 	SM.PreSetupHL2Job(extension, binary, i) |  | ||||||
| 	binary.AddSourceFiles('extensions/sdkhooks', [ |  | ||||||
|     'extension.cpp', |     'extension.cpp', | ||||||
|     'natives.cpp', |     'natives.cpp', | ||||||
|     'takedamageinfohack.cpp', |     'takedamageinfohack.cpp', | ||||||
|     'util.cpp', |     'util.cpp', | ||||||
|     'sdk/smsdk_ext.cpp', |     'sdk/smsdk_ext.cpp', | ||||||
| 		]) |   ] | ||||||
| 	SM.PostSetupHL2Job(extension, binary, i) |   SM.extensions += [builder.Add(binary)] | ||||||
| 	SM.AutoVersion('extensions/sdkhooks', binary) |  | ||||||
| 	SM.ExtractDebugInfo(extension, binary) |  | ||||||
| 	binary.SendToJob() |  | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -350,12 +350,12 @@ bool SDKHooks::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool | |||||||
| 
 | 
 | ||||||
| const char *SDKHooks::GetExtensionVerString() | const char *SDKHooks::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *SDKHooks::GetExtensionDateString() | const char *SDKHooks::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void SDKHooks::OnPluginLoaded(IPlugin *plugin) | void SDKHooks::OnPluginLoaded(IPlugin *plugin) | ||||||
|  | |||||||
| @ -1,27 +1,23 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| for i in SM.sdkInfo: | for sdk_name in SM.sdks: | ||||||
| 	sdk = SM.sdkInfo[i] |   sdk = SM.sdks[sdk_name] | ||||||
| 	if AMBuild.target['platform'] not in sdk['platform']: |  | ||||||
| 		continue |  | ||||||
| 
 | 
 | ||||||
| 	compiler = SM.DefaultHL2Compiler('extensions/sdktools', i) |   binary = SM.HL2Library(builder, 'sdktools.ext.' + sdk.ext, sdk) | ||||||
| 	compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit')) |   binary.compiler.cxxincludes += [ | ||||||
| 	compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit', 'x86')) |     os.path.join(sdk.path, 'game', 'shared'), | ||||||
|  |     os.path.join(builder.sourcePath, 'public', 'jit'), | ||||||
|  |     os.path.join(builder.sourcePath, 'public', 'jit', 'x86'), | ||||||
|  |   ] | ||||||
| 
 | 
 | ||||||
| 	if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang': |   if sdk.name != 'ep1': | ||||||
| 		compiler['CFLAGS'].append('-Wno-parentheses') |     binary.compiler.defines += ['HOOKING_ENABLED'] | ||||||
| 		compiler['CXXFLAGS'].append('-Wno-invalid-offsetof') |  | ||||||
| 
 | 
 | ||||||
| 	if i != 'ep1': |   if binary.compiler.cxx.behavior is 'gcc': | ||||||
| 		compiler['CDEFINES'].append('HOOKING_ENABLED') |     binary.compiler.cxxflags += ['-Wno-invalid-offsetof'] | ||||||
| 
 | 
 | ||||||
| 	name = 'sdktools.ext.' + sdk['ext'] |   binary.sources += [ | ||||||
| 	extension = AMBuild.AddJob(name) |  | ||||||
| 	binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) |  | ||||||
| 	SM.PreSetupHL2Job(extension, binary, i) |  | ||||||
| 	binary.AddSourceFiles('extensions/sdktools', [ |  | ||||||
|     'extension.cpp', |     'extension.cpp', | ||||||
|     'inputnatives.cpp', |     'inputnatives.cpp', | ||||||
|     'output.cpp', |     'output.cpp', | ||||||
| @ -45,9 +41,5 @@ for i in SM.sdkInfo: | |||||||
|     'CDetour/detours.cpp', |     'CDetour/detours.cpp', | ||||||
|     'sdk/smsdk_ext.cpp', |     'sdk/smsdk_ext.cpp', | ||||||
|     'asm/asm.c' |     'asm/asm.c' | ||||||
| 		]) |   ] | ||||||
| 	SM.PostSetupHL2Job(extension, binary, i) |   SM.extensions += [builder.Add(binary)] | ||||||
| 	SM.AutoVersion('extensions/sdktools', binary) |  | ||||||
| 	SM.ExtractDebugInfo(extension, binary) |  | ||||||
| 	binary.SendToJob() |  | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -435,12 +435,12 @@ bool SDKTools::ProcessCommandTarget(cmd_target_info_t *info) | |||||||
| 
 | 
 | ||||||
| const char *SDKTools::GetExtensionVerString() | const char *SDKTools::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *SDKTools::GetExtensionDateString() | const char *SDKTools::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void SDKTools::OnClientPutInServer(int client) | void SDKTools::OnClientPutInServer(int client) | ||||||
|  | |||||||
| @ -1,22 +1,28 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultExtCompiler('extensions/sqlite') | binary = SM.ExtLibrary(builder, 'dbi.sqlite.ext') | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) | binary.compiler.cxxincludes += [ | ||||||
|  |   os.path.join(SM.mms_root, 'core', 'sourcehook'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| compiler['CDEFINES'].extend(['SQLITE_OMIT_LOAD_EXTENSION', 'SQLITE_THREADSAFE']) | binary.compiler.defines += [ | ||||||
| if AMBuild.target['platform'] == 'linux': |   'SQLITE_OMIT_LOAD_EXTENSION', | ||||||
| 	compiler['POSTLINKFLAGS'].extend(['-ldl', '-lpthread']) |   'SQLITE_THREADSAFE' | ||||||
|  | ] | ||||||
|  | if builder.target_platform is 'linux': | ||||||
|  |   binary.compiler.postlink += ['-ldl', '-lpthread'] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('dbi.sqlite.ext') | binary.sources += [ | ||||||
| binary = Cpp.LibraryBuilder('dbi.sqlite.ext', AMBuild, extension, compiler) |   'sdk/smsdk_ext.cpp', | ||||||
| files = [ |   'sdk/sm_memtable.cpp', | ||||||
| 	'sdk/smsdk_ext.cpp', 'sdk/sm_memtable.cpp', 'extension.cpp', |   'extension.cpp', | ||||||
| 	'driver/SqDatabase.cpp', 'driver/SqDriver.cpp', 'driver/SqQuery.cpp', |   'driver/SqDatabase.cpp', | ||||||
| 	'driver/SqResults.cpp', 'sqlite-source/sqlite3.c' |   'driver/SqDriver.cpp', | ||||||
| 	] |   'driver/SqQuery.cpp', | ||||||
| binary.AddSourceFiles('extensions/sqlite', files) |   'driver/SqResults.cpp', | ||||||
| SM.AutoVersion('extensions/sqlite', binary) |   'sqlite-source/sqlite3.c' | ||||||
| SM.ExtractDebugInfo(extension, binary) | ] | ||||||
| binary.SendToJob() | 
 | ||||||
|  | SM.extensions += [builder.Add(binary)] | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -74,11 +74,11 @@ size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...) | |||||||
| 
 | 
 | ||||||
| const char *SqliteExt::GetExtensionVerString() | const char *SqliteExt::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *SqliteExt::GetExtensionDateString() | const char *SqliteExt::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,16 +1,11 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| sdk = SM.sdkInfo['tf2'] | if 'tf2' in SM.sdks: | ||||||
| compiler = SM.DefaultHL2Compiler('extensions/tf2', 'tf2') |   sdk = SM.sdks['tf2'] | ||||||
| if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang': |  | ||||||
| 	compiler['CFLAGS'].append('-Wno-parentheses') |  | ||||||
|    |    | ||||||
| name = 'game.tf2.ext.' + sdk['ext'] |   binary = SM.HL2Library(builder, 'game.tf2.ext.' + sdk.ext, sdk) | ||||||
| extension = AMBuild.AddJob(name) |   binary.sources += [ | ||||||
| binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) |  | ||||||
| SM.PreSetupHL2Job(extension, binary, 'tf2') |  | ||||||
| binary.AddSourceFiles('extensions/tf2', [ |  | ||||||
| 		'extension.cpp', | 		'extension.cpp', | ||||||
| 		'natives.cpp', | 		'natives.cpp', | ||||||
| 		'RegNatives.cpp', | 		'RegNatives.cpp', | ||||||
| @ -23,9 +18,5 @@ binary.AddSourceFiles('extensions/tf2', [ | |||||||
| 		'CDetour/detours.cpp', | 		'CDetour/detours.cpp', | ||||||
| 		'sdk/smsdk_ext.cpp', | 		'sdk/smsdk_ext.cpp', | ||||||
| 		'asm/asm.c' | 		'asm/asm.c' | ||||||
| 	]) |   ] | ||||||
| SM.PostSetupHL2Job(extension, binary, 'tf2') |   SM.extensions += [builder.Add(binary)] | ||||||
| SM.AutoVersion('extensions/tf2', binary) |  | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -136,12 +136,12 @@ bool TF2Tools::SDK_OnLoad(char *error, size_t maxlength, bool late) | |||||||
| 
 | 
 | ||||||
| const char *TF2Tools::GetExtensionVerString() | const char *TF2Tools::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *TF2Tools::GetExtensionDateString() | const char *TF2Tools::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool TF2Tools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool late) | bool TF2Tools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool late) | ||||||
|  | |||||||
| @ -1,20 +1,18 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultExtCompiler('extensions/topmenus') | binary = SM.ExtLibrary(builder, 'topmenus.ext') | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) | binary.compiler.cxxincludes += [ | ||||||
|  |   os.path.join(SM.mms_root, 'core', 'sourcehook'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('topmenus.ext') | binary.sources += [ | ||||||
| binary = Cpp.LibraryBuilder('topmenus.ext', AMBuild, extension, compiler) |  | ||||||
| binary.AddSourceFiles('extensions/topmenus', [ |  | ||||||
|   'extension.cpp', |   'extension.cpp', | ||||||
|   'smn_topmenus.cpp', |   'smn_topmenus.cpp', | ||||||
|   'TopMenu.cpp', |   'TopMenu.cpp', | ||||||
|   'TopMenuManager.cpp', |   'TopMenuManager.cpp', | ||||||
|   'sdk/smsdk_ext.cpp', |   'sdk/smsdk_ext.cpp', | ||||||
|   'sdk/sm_memtable.cpp' |   'sdk/sm_memtable.cpp' | ||||||
| 	]) | ] | ||||||
| SM.AutoVersion('extensions/topmenus', binary) |  | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | SM.extensions += [builder.Add(binary)] | ||||||
|  | |||||||
| @ -67,11 +67,11 @@ void TopMenuExtension::SDK_OnUnload() | |||||||
| 
 | 
 | ||||||
| const char *TopMenuExtension::GetExtensionVerString() | const char *TopMenuExtension::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *TopMenuExtension::GetExtensionDateString() | const char *TopMenuExtension::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,19 +1,18 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultExtCompiler('extensions/updater') | binary = SM.ExtLibrary(builder, 'updater.ext') | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) | binary.compiler.cxxincludes += [ | ||||||
|  |   os.path.join(SM.mms_root, 'core', 'sourcehook'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('updater.ext') | binary.sources += [ | ||||||
| binary = Cpp.LibraryBuilder('updater.ext', AMBuild, extension, compiler) |  | ||||||
| binary.AddSourceFiles('extensions/updater', [ |  | ||||||
|   'extension.cpp', |   'extension.cpp', | ||||||
|   'MemoryDownloader.cpp', |   'MemoryDownloader.cpp', | ||||||
|   'Updater.cpp', |   'Updater.cpp', | ||||||
|   'md5.cpp', |   'md5.cpp', | ||||||
|   'sdk/smsdk_ext.cpp' |   'sdk/smsdk_ext.cpp' | ||||||
| 	]) | ] | ||||||
| SM.AutoVersion('extensions/updater', binary) | 
 | ||||||
| SM.ExtractDebugInfo(extension, binary) | SM.extensions += [builder.Add(binary)] | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -356,7 +356,7 @@ void UpdateReader::PerformUpdate(const char *url) | |||||||
| 	xfer = webternet->CreateSession(); | 	xfer = webternet->CreateSession(); | ||||||
| 	xfer->SetFailOnHTTPError(true); | 	xfer->SetFailOnHTTPError(true); | ||||||
| 
 | 
 | ||||||
| 	form->AddString("version", SM_VERSION_STRING); | 	form->AddString("version", SOURCEMOD_VERSION); | ||||||
| 
 | 
 | ||||||
| 	unsigned int num_files = 0; | 	unsigned int num_files = 0; | ||||||
| 	add_folders(form, "gamedata", num_files); | 	add_folders(form, "gamedata", num_files); | ||||||
|  | |||||||
| @ -249,11 +249,11 @@ void AddUpdateError(const char *fmt, ...) | |||||||
| 
 | 
 | ||||||
| const char *SmUpdater::GetExtensionVerString() | const char *SmUpdater::GetExtensionVerString() | ||||||
| { | { | ||||||
| 	return SM_VERSION_STRING; | 	return SOURCEMOD_VERSION; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char *SmUpdater::GetExtensionDateString() | const char *SmUpdater::GetExtensionDateString() | ||||||
| { | { | ||||||
| 	return SM_BUILD_TIMESTAMP; | 	return SOURCEMOD_BUILD_TIME; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,22 +1,22 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os.path | import os.path | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultCompiler() | if builder.target_platform in ['windows', 'mac']: | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core')) |  | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) |  | ||||||
| 
 |  | ||||||
| if AMBuild.target['platform'] == 'windows' or AMBuild.target['platform'] == 'darwin': |  | ||||||
|   name = 'sourcemod_mm' |   name = 'sourcemod_mm' | ||||||
| elif AMBuild.target['platform'] == 'linux': |   extra_ldflags = [] | ||||||
|  | elif builder.target_platform is 'linux': | ||||||
|   name = 'sourcemod_mm_i486' |   name = 'sourcemod_mm_i486' | ||||||
| 	compiler['POSTLINKFLAGS'].extend(['-ldl']) |   extra_ldflags = ['-ldl'] | ||||||
| 
 | 
 | ||||||
| loader = AMBuild.AddJob('loader') | binary = SM.Library(builder, name) | ||||||
| binary = Cpp.LibraryBuilder(name, AMBuild, loader, compiler) | binary.compiler.cxxincludes += [ | ||||||
| binary.AddSourceFiles('loader', [ |   os.path.join(SM.mms_root, 'core'), | ||||||
|  |   os.path.join(SM.mms_root, 'sourcehook') | ||||||
|  | ] | ||||||
|  | binary.compiler.linkflags += extra_ldflags | ||||||
|  | binary.sources = [ | ||||||
|   'loader.cpp' |   'loader.cpp' | ||||||
| 	]) | ] | ||||||
| SM.AutoVersion('loader', binary) |  | ||||||
| SM.ExtractDebugInfo(loader, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 | 
 | ||||||
|  | nodes = builder.Add(binary) | ||||||
|  | SM.binaries += [nodes] | ||||||
|  | |||||||
| @ -1,8 +1,5 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:  | ||||||
| import os | import os | ||||||
| import os.path |  | ||||||
| import ambuild.osutil as osutil |  | ||||||
| import ambuild.command as command |  | ||||||
| 
 | 
 | ||||||
| files = [ | files = [ | ||||||
|   'adminhelp.sp', |   'adminhelp.sp', | ||||||
| @ -28,26 +25,41 @@ files = [ | |||||||
|   'mapchooser.sp', |   'mapchooser.sp', | ||||||
|   'randomcycle.sp', |   'randomcycle.sp', | ||||||
|   'sql-admin-manager.sp' |   'sql-admin-manager.sp' | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | spcomp_argv = [ | ||||||
|  |   os.path.join(builder.buildPath, SM.spcomp.binary.path), | ||||||
|  |   'SM_GENERATED_BUILD=', | ||||||
|  |   '-i' + os.path.relpath(os.path.join(builder.buildPath, 'includes'), | ||||||
|  |                          os.path.join(builder.buildPath, builder.buildFolder)), | ||||||
|  |   '-i' + os.path.relpath(os.path.join(builder.sourcePath, 'plugins', 'include'), | ||||||
|  |                          os.path.join(builder.buildPath, builder.buildFolder)), | ||||||
|  |   '-h', | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | def build_plugin(script_path, smx_file): | ||||||
|  |   inputs = [ | ||||||
|  |     SM.spcomp.binary, | ||||||
|  |     script_path, | ||||||
|   ] |   ] | ||||||
|  |   outputs = [ | ||||||
|  |     smx_file | ||||||
|  |   ] | ||||||
|  |   argv = spcomp_argv + [script_path] | ||||||
|  |   cmd_entry, (smx_entry,) = builder.AddCommand( | ||||||
|  |     inputs = inputs, | ||||||
|  |     argv = argv, | ||||||
|  |     outputs = outputs, | ||||||
|  |     dep_type = 'msvc', | ||||||
|  |     weak_inputs = SM.generated_headers | ||||||
|  |   ) | ||||||
|  |   SM.smx_files[smx_file] = smx_entry | ||||||
| 
 | 
 | ||||||
| plugins = AMBuild.AddJob('plugins') | for script_file in files: | ||||||
| 
 |   script_path = os.path.join(builder.currentSourcePath, script_file) | ||||||
| spcomp = os.path.join(AMBuild.outputFolder, 'spcomp', 'spcomp') |   smx_file = os.path.splitext(script_file)[0] + '.smx' | ||||||
| includes = os.path.relpath(os.path.join(AMBuild.sourceFolder, 'plugins', 'include'), |   build_plugin(script_path, smx_file) | ||||||
|                            os.path.join(AMBuild.outputFolder, 'plugins')) |  | ||||||
| 
 |  | ||||||
| versioninc = os.path.relpath(os.path.join(AMBuild.outputFolder, 'includes'), |  | ||||||
|                              os.path.join(AMBuild.outputFolder, 'plugins')) |  | ||||||
| 
 |  | ||||||
| #This one has to be special |  | ||||||
| sp = os.path.join(AMBuild.sourceFolder, 'plugins', 'admin-flatfile', 'admin-flatfile.sp') |  | ||||||
| args = [spcomp, 'SM_GENERATED_BUILD=', '-i' + versioninc, '-i' + includes, sp] |  | ||||||
| plugins.AddCommand(command.DirectCommand(args)) |  | ||||||
| 
 |  | ||||||
| #Do the normal ones |  | ||||||
| for file in files: |  | ||||||
| 	sp = os.path.join(AMBuild.sourceFolder, 'plugins', file) |  | ||||||
| 	args = [spcomp, 'SM_GENERATED_BUILD=', '-i' + versioninc, '-i' + includes, sp] |  | ||||||
| 	plugins.AddCommand(command.DirectCommand(args)) |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
|  | # This one has to be special. | ||||||
|  | build_plugin(os.path.join(builder.currentSourcePath, 'admin-flatfile', 'admin-flatfile.sp'), | ||||||
|  |              'admin-flatfile.smx') | ||||||
|  | |||||||
| @ -39,21 +39,34 @@ | |||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #if defined SM_GENERATED_BUILD | #if defined SM_GENERATED_BUILD | ||||||
| #include <sourcemod_version_auto.h> | # if defined RC_COMPILE | ||||||
|  | #  undef SM_USE_VERSIONLIB | ||||||
|  | # endif | ||||||
|  | # if defined SM_USE_VERSIONLIB | ||||||
|  | #  include <versionlib.h> | ||||||
|  | # else  | ||||||
|  | #  include <sourcemod_version_auto.h> | ||||||
|  | # endif | ||||||
| #else | #else | ||||||
| #define SM_BUILD_TAG		"manual" | #define SM_BUILD_TAG		"manual" | ||||||
| #define SM_BUILD_REV		"0" | #define SM_BUILD_REV		"0" | ||||||
| #define SM_BUILD_CSET		"0" | #define SM_BUILD_CSET		"0" | ||||||
| #define SM_BUILD_MAJOR		"1" | #define SM_BUILD_MAJOR		"1" | ||||||
| #define SM_BUILD_MINOR		"5" | #define SM_BUILD_MINOR		"6" | ||||||
| #define SM_BUILD_RELEASE	"0" | #define SM_BUILD_RELEASE	"0" | ||||||
| 
 | 
 | ||||||
| #define SM_BUILD_UNIQUEID SM_BUILD_REV ":" SM_BUILD_CSET | #define SM_BUILD_UNIQUEID SM_BUILD_REV ":" SM_BUILD_CSET | ||||||
| 
 | 
 | ||||||
| #define SM_VERSION_STRING	SM_BUILD_MAJOR "." SM_BUILD_MINOR "." SM_BUILD_RELEASE "-" SM_BUILD_TAG | #define SM_VERSION_STRING	SM_BUILD_MAJOR "." SM_BUILD_MINOR "." SM_BUILD_RELEASE "-" SM_BUILD_TAG | ||||||
| #define SM_VERSION_FILE		1,5,0,0 | #define SM_VERSION_FILE		1,6,0,0 | ||||||
| #endif | #endif | ||||||
| #define SM_BUILD_TIMESTAMP	__DATE__ " " __TIME__ | #define SM_BUILD_TIMESTAMP	__DATE__ " " __TIME__ | ||||||
| 
 | 
 | ||||||
|  | #if !defined(SM_GENERATED_BUILD) || !defined(SM_USE_VERSIONLIB) | ||||||
|  | # define SOURCEMOD_VERSION 		SM_VERSION_STRING | ||||||
|  | # define SOURCEMOD_BUILD_ID		SM_BUILD_UNIQUEID | ||||||
|  | # define SOURCEMOD_BUILD_TIME 	SM_BUILD_TIMESTAMP | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| #endif /* _INCLUDE_SOURCEMOD_VERSION_INFORMATION_H_ */ | #endif /* _INCLUDE_SOURCEMOD_VERSION_INFORMATION_H_ */ | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,28 +1,41 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set ts=2 sw=2 tw=99 noet ft=python:  | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultCompiler() | binary = SM.Program(builder, 'spcomp') | ||||||
| compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public')) | compiler = binary.compiler | ||||||
| compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'sourcepawn')) | compiler.includes += [ | ||||||
| compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'sourcepawn', 'compiler')) |   os.path.join(builder.sourcePath, 'public'), | ||||||
| compiler['CINCLUDES'].append(os.path.join(AMBuild.outputFolder, 'includes')) |   os.path.join(builder.sourcePath, 'public', 'sourcepawn'), | ||||||
|  |   os.path.join(builder.sourcePath, 'sourcepawn', 'compiler'), | ||||||
|  |   os.path.join(builder.buildPath, 'includes'), | ||||||
|  | ] | ||||||
|   |   | ||||||
| if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang': | if compiler.cc.behavior is 'gcc': | ||||||
| 	compiler['CFLAGS'].extend(['-Wno-parentheses', '-Wno-format']) |   compiler.cflags += ['-Wno-format'] | ||||||
| 	if AMBuild.target['platform'] == 'linux': |   if builder.target_platform is 'linux': | ||||||
| 		compiler['POSTLINKFLAGS'].extend(['-lgcc', '-lm']) |     compiler.postlink += ['-lgcc', '-lm'] | ||||||
| elif compiler.cc.name == 'msvc': | elif compiler.cc.behavior is 'msvc': | ||||||
| 	compiler['POSTLINKFLAGS'].remove('/SUBSYSTEM:WINDOWS') |   compiler.linkflags.remove('/SUBSYSTEM:WINDOWS') | ||||||
| 	compiler['POSTLINKFLAGS'].append('/SUBSYSTEM:CONSOLE') |   compiler.linkflags.append('/SUBSYSTEM:CONSOLE') | ||||||
|   |   | ||||||
| if AMBuild.target['platform'] == 'linux': | if builder.target_platform is 'linux': | ||||||
| 	compiler['CDEFINES'].extend(['LINUX', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC', '_GNU_SOURCE']) |   compiler.defines += [ | ||||||
| elif AMBuild.target['platform'] == 'darwin': |     'LINUX', | ||||||
| 	compiler['CDEFINES'].extend(['DARWIN', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC']) |     'HAVE_STDINT_H', | ||||||
|  |     'AMX_ANSIONLY', | ||||||
|  |     'ENABLE_BINRELOC', | ||||||
|  |     '_GNU_SOURCE' | ||||||
|  |   ] | ||||||
|  | elif builder.target_platform is 'mac': | ||||||
|  |   compiler.defines += [ | ||||||
|  |     'DARWIN', | ||||||
|  |     'HAVE_STDINT_H', | ||||||
|  |     'AMX_ANSIONLY', | ||||||
|  |     'ENABLE_BINRELOC', | ||||||
|  |     'HAVE_SAFESTR' | ||||||
|  |   ] | ||||||
|   |   | ||||||
| extension = AMBuild.AddJob('spcomp') | binary.sources += [ | ||||||
| binary = Cpp.ExecutableBuilder('spcomp', AMBuild, extension, compiler) |  | ||||||
| files = [ |  | ||||||
|   'libpawnc.c', |   'libpawnc.c', | ||||||
|   'lstring.c', |   'lstring.c', | ||||||
|   'memfile.c', |   'memfile.c', | ||||||
| @ -55,18 +68,8 @@ files = [ | |||||||
|   'zlib/uncompr.c', |   'zlib/uncompr.c', | ||||||
|   'zlib/zutil.c', |   'zlib/zutil.c', | ||||||
|   'sp_symhash.c' |   'sp_symhash.c' | ||||||
| 	] | ] | ||||||
| if AMBuild.target['platform'] == 'linux': | if builder.target_platform is 'linux': | ||||||
| 	files.append('binreloc.c') |   binary.sources.append('binreloc.c') | ||||||
| binary.AddSourceFiles('sourcepawn/compiler', files) |  | ||||||
| 
 |  | ||||||
| if AMBuild.target['platform'] == 'windows': |  | ||||||
| 	env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"', 'SM_GENERATED_BUILD']} |  | ||||||
| 	binary.AddResourceFile('sourcepawn/compiler/libpawnc.rc', env) |  | ||||||
| elif AMBuild.target['platform'] == 'darwin' and isinstance(binary, Cpp.LibraryBuilder): |  | ||||||
| 	binary.compiler['POSTLINKFLAGS'].extend(['-compatibility_version', '1.0.0']) |  | ||||||
| 	binary.compiler['POSTLINKFLAGS'].extend(['-current_version', AMBuild.cache['version']]) |  | ||||||
| 
 |  | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
|   |   | ||||||
|  | SM.spcomp = builder.Add(binary) | ||||||
|  | |||||||
| @ -809,6 +809,7 @@ SC_VDECL int sc_needsemicolon;/* semicolon required to terminate expressions? */ | |||||||
| SC_VDECL int sc_dataalign;    /* data alignment value */ | SC_VDECL int sc_dataalign;    /* data alignment value */ | ||||||
| SC_VDECL int sc_alignnext;    /* must frame of the next function be aligned? */ | SC_VDECL int sc_alignnext;    /* must frame of the next function be aligned? */ | ||||||
| SC_VDECL int pc_docexpr;      /* must expression be attached to documentation comment? */ | SC_VDECL int pc_docexpr;      /* must expression be attached to documentation comment? */ | ||||||
|  | SC_VDECL int sc_showincludes; /* show include files? */ | ||||||
| SC_VDECL int curseg;          /* 1 if currently parsing CODE, 2 if parsing DATA */ | SC_VDECL int curseg;          /* 1 if currently parsing CODE, 2 if parsing DATA */ | ||||||
| SC_VDECL cell pc_stksize;     /* stack size */ | SC_VDECL cell pc_stksize;     /* stack size */ | ||||||
| SC_VDECL cell pc_amxlimit;    /* abstract machine size limit (code + data, or only code) */ | SC_VDECL cell pc_amxlimit;    /* abstract machine size limit (code + data, or only code) */ | ||||||
|  | |||||||
| @ -267,7 +267,9 @@ int pc_compile(int argc, char *argv[]) | |||||||
|       tname=NULL; |       tname=NULL; | ||||||
|       sname=NULL; |       sname=NULL; | ||||||
|     #else |     #else | ||||||
|       tname=tempnam(NULL,"pawn"); |       char buffer[] = P_tmpdir "/pawn.XXXXXX"; | ||||||
|  |       close(mkstemp(buffer)); | ||||||
|  |       tname=buffer; | ||||||
|     #endif |     #endif | ||||||
|     ftmp=(FILE*)pc_createsrc(tname); |     ftmp=(FILE*)pc_createsrc(tname); | ||||||
|     for (fidx=0; (sname=get_sourcefile(fidx))!=NULL; fidx++) { |     for (fidx=0; (sname=get_sourcefile(fidx))!=NULL; fidx++) { | ||||||
| @ -851,11 +853,11 @@ static void parseoptions(int argc,char **argv,char *oname,char *ename,char *pnam | |||||||
|   int arg,i,isoption; |   int arg,i,isoption; | ||||||
| 
 | 
 | ||||||
|   for (arg=1; arg<argc; arg++) { |   for (arg=1; arg<argc; arg++) { | ||||||
|     #if DIRSEP_CHAR=='/' | #if DIRSEP_CHAR=='/' | ||||||
|     isoption= argv[arg][0]=='-'; |     isoption= argv[arg][0]=='-'; | ||||||
|     #else | #else | ||||||
|     isoption= argv[arg][0]=='/' || argv[arg][0]=='-'; |     isoption= argv[arg][0]=='/' || argv[arg][0]=='-'; | ||||||
|     #endif | #endif | ||||||
|     if (isoption) { |     if (isoption) { | ||||||
|       ptr=&argv[arg][1]; |       ptr=&argv[arg][1]; | ||||||
|       switch (*ptr) { |       switch (*ptr) { | ||||||
| @ -925,6 +927,9 @@ static void parseoptions(int argc,char **argv,char *oname,char *ename,char *pnam | |||||||
|           hwndFinish=(HWND)0; |           hwndFinish=(HWND)0; | ||||||
|         break; |         break; | ||||||
| #endif | #endif | ||||||
|  |       case 'h': | ||||||
|  |         sc_showincludes = 1; | ||||||
|  |         break; | ||||||
|       case 'i': |       case 'i': | ||||||
|         strlcpy(str,option_value(ptr),sizeof str);  /* set name of include directory */ |         strlcpy(str,option_value(ptr),sizeof str);  /* set name of include directory */ | ||||||
|         i=strlen(str); |         i=strlen(str); | ||||||
| @ -1233,7 +1238,7 @@ static void setconfig(char *root) | |||||||
| 
 | 
 | ||||||
| static void setcaption(void) | static void setcaption(void) | ||||||
| { | { | ||||||
|   pc_printf("SourcePawn Compiler " SM_VERSION_STRING "\n"); |   pc_printf("SourcePawn Compiler %s\n", SOURCEMOD_VERSION); | ||||||
|   pc_printf("Copyright (c) 1997-2006, ITB CompuPhase, (C)2004-2008 AlliedModders, LLC\n\n"); |   pc_printf("Copyright (c) 1997-2006, ITB CompuPhase, (C)2004-2008 AlliedModders, LLC\n\n"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1263,6 +1268,7 @@ static void about(void) | |||||||
| #if defined	__WIN32__ || defined _WIN32 || defined _Windows | #if defined	__WIN32__ || defined _WIN32 || defined _Windows | ||||||
|     pc_printf("         -H<hwnd> window handle to send a notification message on finish\n"); |     pc_printf("         -H<hwnd> window handle to send a notification message on finish\n"); | ||||||
| #endif | #endif | ||||||
|  |     pc_printf("         -h       show included file paths\n"); | ||||||
|     pc_printf("         -i<name> path for include files\n"); |     pc_printf("         -i<name> path for include files\n"); | ||||||
|     pc_printf("         -l       create list file (preprocess only)\n"); |     pc_printf("         -l       create list file (preprocess only)\n"); | ||||||
|     pc_printf("         -o<name> set base name of (P-code) output file\n"); |     pc_printf("         -o<name> set base name of (P-code) output file\n"); | ||||||
|  | |||||||
| @ -153,6 +153,9 @@ static char *extensions[] = { ".inc", ".p", ".pawn" }; | |||||||
|     *ext='\0';                  /* restore filename */ |     *ext='\0';                  /* restore filename */ | ||||||
|     return FALSE; |     return FALSE; | ||||||
|   } /* if */ |   } /* if */ | ||||||
|  |   if (sc_showincludes && sc_status==statFIRST) { | ||||||
|  |     fprintf(stdout, "Note: including file: %s\n", name); | ||||||
|  |   } | ||||||
|   PUSHSTK_P(inpf); |   PUSHSTK_P(inpf); | ||||||
|   PUSHSTK_P(inpfname);          /* pointer to current file name */ |   PUSHSTK_P(inpfname);          /* pointer to current file name */ | ||||||
|   PUSHSTK_P(curlibrary); |   PUSHSTK_P(curlibrary); | ||||||
|  | |||||||
| @ -91,6 +91,7 @@ SC_VDEFINE char *pc_deprecate=NULL;/* if non-null, mark next declaration as depr | |||||||
| SC_VDEFINE int sc_curstates=0;     /* ID of the current state list */ | SC_VDEFINE int sc_curstates=0;     /* ID of the current state list */ | ||||||
| SC_VDEFINE int pc_optimize=sOPTIMIZE_NOMACRO; /* (peephole) optimization level */ | SC_VDEFINE int pc_optimize=sOPTIMIZE_NOMACRO; /* (peephole) optimization level */ | ||||||
| SC_VDEFINE int pc_memflags=0;      /* special flags for the stack/heap usage */ | SC_VDEFINE int pc_memflags=0;      /* special flags for the stack/heap usage */ | ||||||
|  | SC_VDEFINE int sc_showincludes=0;  /* show include files */ | ||||||
| 
 | 
 | ||||||
| SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */ | SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */ | ||||||
| SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0};   /* state table */ | SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0};   /* state table */ | ||||||
|  | |||||||
| @ -1,20 +1,25 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| compiler = SM.DefaultCompiler() | binary = SM.Library(builder, 'sourcepawn.jit.x86') | ||||||
| base = AMBuild.sourceFolder | binary.compiler.includes += [ | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook')) |   os.path.join(SM.mms_root, 'core', 'sourcehook'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'sourcepawn', 'jit')) |   os.path.join(builder.sourcePath, 'sourcepawn', 'jit'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'sourcepawn', 'jit', 'x86')) |   os.path.join(builder.sourcePath, 'sourcepawn', 'jit', 'x86'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'public')) |   os.path.join(builder.sourcePath, 'public'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'sourcepawn')) |   os.path.join(builder.sourcePath, 'public', 'sourcepawn'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'jit')) |   os.path.join(builder.sourcePath, 'public', 'amtl'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'jit', 'x86')) |   os.path.join(builder.sourcePath, 'public', 'jit'), | ||||||
| compiler['CXXINCLUDES'].append(os.path.join(base, 'knight', 'shared')) |   os.path.join(builder.sourcePath, 'public', 'jit', 'x86'), | ||||||
|  |   os.path.join(builder.sourcePath, 'knight', 'shared'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| extension = AMBuild.AddJob('sourcepawn.jit.x86') | if builder.target_platform is 'linux': | ||||||
| binary = Cpp.LibraryBuilder('sourcepawn.jit.x86', AMBuild, extension, compiler) |   binary.compiler.postlink += ['-lpthread', '-lrt'] | ||||||
| binary.AddSourceFiles('sourcepawn/jit', [ | elif builder.target_platform is 'darwin': | ||||||
|  |   binary.compiler.postlink += ['-lpthread', '-ldl'] | ||||||
|  | 
 | ||||||
|  | binary.sources += [ | ||||||
|   'BaseRuntime.cpp', |   'BaseRuntime.cpp', | ||||||
|   'engine2.cpp', |   'engine2.cpp', | ||||||
|   'dll_exports.cpp', |   'dll_exports.cpp', | ||||||
| @ -37,9 +42,6 @@ binary.AddSourceFiles('sourcepawn/jit', [ | |||||||
|   'zlib/uncompr.c', |   'zlib/uncompr.c', | ||||||
|   'zlib/zutil.c', |   'zlib/zutil.c', | ||||||
|   'md5/md5.cpp', |   'md5/md5.cpp', | ||||||
| 	'../../knight/shared/KeCodeAllocator.cpp' |   '../../knight/shared/KeCodeAllocator.cpp', | ||||||
| 	]) | ] | ||||||
| SM.AutoVersion('sourcepawn/jit', binary) | SM.binaries += [builder.Add(binary)] | ||||||
| SM.ExtractDebugInfo(extension, binary) |  | ||||||
| binary.SendToJob() |  | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -1,31 +1,35 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set ts=2 sw=2 tw=99 noet ft=python:  | ||||||
| import os | import os, sys | ||||||
| try: |  | ||||||
| 	import urllib.request as urllib |  | ||||||
| except ImportError: |  | ||||||
| 	import urllib2 as urllib |  | ||||||
| from ambuild.command import Command |  | ||||||
| from ambuild.command import ShellCommand |  | ||||||
| 
 | 
 | ||||||
| class IterateDebugInfoCommand(Command): | builder.SetBuildFolder('symbols') | ||||||
| 	def run(self, master, job): | 
 | ||||||
| 		pdblog = open(os.path.join(AMBuild.outputFolder, 'pdblog.txt'), 'rt') | UPLOAD_SCRIPT = os.path.join(builder.sourcePath, 'tools', 'buildbot', 'upload_symbols.py') | ||||||
| 		for debug_info in pdblog: | 
 | ||||||
| 			debug_info = os.path.join(AMBuild.outputFolder, debug_info.strip()) | cxx_tasks = SM.binaries + SM.extensions + [SM.spcomp] | ||||||
| 			job.AddCommand(SymbolCommand(debug_info, symbolServer)) | for cxx_task in cxx_tasks: | ||||||
| 		pdblog.close() | 	if builder.target_platform in ['windows']: | ||||||
|  | 		debug_entry = cxx_task.debug | ||||||
|  | 	else: | ||||||
|  | 		debug_entry = cxx_task.binary | ||||||
|  | 
 | ||||||
|  | 	debug_file = os.path.join(builder.buildPath, debug_entry.path) | ||||||
|  | 	if builder.target_platform is 'linux': | ||||||
|  | 		argv = ['dump_syms', debug_file, os.path.dirname(debug_file)] | ||||||
|  | 	elif builder.target_platform is 'mac': | ||||||
|  | 		argv = ['dump_syms', debug_file] | ||||||
|  | 	elif builder.target_platform is 'windows': | ||||||
|  | 		argv = ['dump_syms.exe', debug_file] | ||||||
|  | 
 | ||||||
|  | 	base_file = os.path.splitext(os.path.basename(debug_file))[0] | ||||||
|  | 	symbol_file = base_file + '.breakpad' | ||||||
|  | 
 | ||||||
|  | 	argv = [sys.executable, UPLOAD_SCRIPT, symbol_file] + argv | ||||||
|  | 	builder.AddCommand( | ||||||
|  | 		inputs = [UPLOAD_SCRIPT, debug_entry], | ||||||
|  | 		argv = argv, | ||||||
|  | 		outputs = [symbol_file] | ||||||
|  | 	) | ||||||
| 
 | 
 | ||||||
| class SymbolCommand(ShellCommand): |  | ||||||
| 	def __init__(self, debugFile, symbolServer): |  | ||||||
| 		self.serverResponse = None |  | ||||||
| 		self.symbolServer = symbolServer |  | ||||||
| 		if AMBuild.target['platform'] == 'linux': |  | ||||||
| 			cmdstring = "dump_syms {0} {1}".format(debugFile, os.path.dirname(debugFile)) |  | ||||||
| 		elif AMBuild.target['platform'] == 'darwin': |  | ||||||
| 			cmdstring = "dump_syms {0}".format(debugFile) |  | ||||||
| 		elif AMBuild.target['platform'] == 'windows': |  | ||||||
| 			cmdstring = "dump_syms.exe {0}".format(debugFile) |  | ||||||
| 		ShellCommand.__init__(self, cmdstring) |  | ||||||
| 	def run(self, master, job): | 	def run(self, master, job): | ||||||
| 		ShellCommand.run(self, master, job) | 		ShellCommand.run(self, master, job) | ||||||
| 		if self.stdout != None and len(self.stdout) > 0: | 		if self.stdout != None and len(self.stdout) > 0: | ||||||
| @ -37,8 +41,3 @@ class SymbolCommand(ShellCommand): | |||||||
| 			runner.PrintOut(self.stderr) | 			runner.PrintOut(self.stderr) | ||||||
| 		if self.serverResponse != None and len(self.serverResponse) > 0: | 		if self.serverResponse != None and len(self.serverResponse) > 0: | ||||||
| 			runner.PrintOut(self.serverResponse) | 			runner.PrintOut(self.serverResponse) | ||||||
| 
 |  | ||||||
| if 'BREAKPAD_SYMBOL_SERVER' in os.environ: |  | ||||||
| 	symbolServer = os.environ['BREAKPAD_SYMBOL_SERVER'] |  | ||||||
| 	job = AMBuild.AddJob('breakpad-symbols') |  | ||||||
| 	job.AddCommand(IterateDebugInfoCommand()) |  | ||||||
|  | |||||||
| @ -1,277 +1,442 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:  | ||||||
| import os | import os | ||||||
| import shutil |  | ||||||
| import ambuild.osutil as osutil |  | ||||||
| from ambuild.command import Command |  | ||||||
| 
 | 
 | ||||||
| job = AMBuild.AddJob('package') | builder.SetBuildFolder('package') | ||||||
| 
 | 
 | ||||||
| class DestroyPath(Command): | folder_list = [ | ||||||
| 	def __init__(self, folder): |   'addons/sourcemod', | ||||||
| 		Command.__init__(self) |   'addons/sourcemod/bin', | ||||||
| 		self.folder = folder |   'addons/sourcemod/plugins', | ||||||
|  |   'addons/sourcemod/plugins/disabled', | ||||||
|  |   'addons/sourcemod/gamedata', | ||||||
|  |   'addons/sourcemod/gamedata/core.games', | ||||||
|  |   'addons/sourcemod/gamedata/sdkhooks.games', | ||||||
|  |   'addons/sourcemod/gamedata/sdktools.games', | ||||||
|  |   'addons/sourcemod/gamedata/sm-cstrike.games', | ||||||
|  |   'addons/sourcemod/configs', | ||||||
|  |   'addons/sourcemod/configs/geoip', | ||||||
|  |   'addons/sourcemod/translations', | ||||||
|  |   'addons/sourcemod/logs', | ||||||
|  |   'addons/sourcemod/extensions', | ||||||
|  |   'addons/sourcemod/data', | ||||||
|  |   'addons/sourcemod/configs/sql-init-scripts', | ||||||
|  |   'addons/sourcemod/configs/sql-init-scripts/mysql', | ||||||
|  |   'addons/sourcemod/configs/sql-init-scripts/sqlite', | ||||||
|  |   'addons/sourcemod/scripting', | ||||||
|  |   'addons/sourcemod/scripting/include', | ||||||
|  |   'addons/sourcemod/scripting/admin-flatfile', | ||||||
|  |   'addons/sourcemod/scripting/adminmenu', | ||||||
|  |   'addons/sourcemod/scripting/testsuite', | ||||||
|  |   'addons/sourcemod/scripting/basecommands', | ||||||
|  |   'addons/sourcemod/scripting/basecomm', | ||||||
|  |   'addons/sourcemod/scripting/funvotes', | ||||||
|  |   'addons/sourcemod/scripting/basevotes', | ||||||
|  |   'addons/sourcemod/scripting/basebans', | ||||||
|  |   'addons/sourcemod/scripting/funcommands', | ||||||
|  |   'addons/sourcemod/scripting/playercommands', | ||||||
|  |   'addons/metamod', | ||||||
|  |   'cfg/sourcemod', | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| 	def destroy(self, path): | # Create the distribution folder hierarchy. | ||||||
| 		entries = os.listdir(path) | folder_map = {} | ||||||
| 		for entry in entries: | for folder in folder_list: | ||||||
| 			newpath = os.path.join(path, entry) |   norm_folder = os.path.normpath(folder) | ||||||
| 			if os.path.isdir(newpath): |   folder_map[folder] = builder.AddFolder(norm_folder) | ||||||
| 				self.destroy(newpath) |  | ||||||
| 				os.rmdir(newpath) |  | ||||||
| 			elif os.path.isfile(newpath): |  | ||||||
| 				os.remove(newpath) |  | ||||||
| 
 | 
 | ||||||
| 	def run(self, runner, job): | # Copy binaries. | ||||||
| 		runner.PrintOut('rm -rf {0}/*'.format(self.folder)) | for cxx_task in SM.binaries: | ||||||
| 		self.destroy(self.folder) |   builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/bin']) | ||||||
|  | for cxx_task in SM.extensions: | ||||||
|  |   builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions']) | ||||||
|  | builder.AddCopy(SM.spcomp.binary, folder_map['addons/sourcemod/scripting']) | ||||||
| 
 | 
 | ||||||
| class CreateFolders(Command): | # Copy version_auto.inc. | ||||||
| 	def __init__(self, folders): | for header in SM.generated_headers: | ||||||
| 		Command.__init__(self) |   if 'version_auto.inc' in header.path: | ||||||
| 		self.folders = folders |     builder.AddCopy(header, folder_map['addons/sourcemod/scripting/include']) | ||||||
| 
 | 
 | ||||||
| 	def run(self, runner, job): | # Export PDB files. We write to a file in the build folder which is pretty | ||||||
| 		for folder in self.folders: | # verboten, but it's okay if it's in the root since AMBuild will never try | ||||||
| 			path = os.path.join(*folder) | # to rmdir the root. | ||||||
| 			runner.PrintOut('mkdir {0}'.format(path)) | full_binary_list = SM.binaries + SM.extensions + [SM.spcomp] | ||||||
| 			os.makedirs(path) | with open(os.path.join(builder.buildPath, 'pdblog.txt'), 'w') as fp: | ||||||
|  |   for task in full_binary_list: | ||||||
|  |     fp.write(task.debug.path + '\n') | ||||||
| 
 | 
 | ||||||
| #Shallow folder copy | # Copy plugins. | ||||||
| class CopyFolder(Command): | disabled_plugins = set([ | ||||||
| 	def __init__(self, fromList, toList, excludes = []): |   'admin-sql-prefetch.smx', | ||||||
| 		Command.__init__(self) |   'admin-sql-threaded.smx', | ||||||
| 		self.fromPath = os.path.join(AMBuild.sourceFolder, *fromList) |   'sql-admin-manager.smx', | ||||||
| 		self.toPath = os.path.join(*toList)  |   'mapchooser.smx', | ||||||
| 		self.excludes = excludes |   'randomcycle.smx', | ||||||
|  |   'rockthevote.smx', | ||||||
|  |   'nominations.smx', | ||||||
|  | ]) | ||||||
| 
 | 
 | ||||||
| 	def run(self, runner, job): | for smx_file in SM.smx_files: | ||||||
| 		entries = os.listdir(self.fromPath) |   smx_entry = SM.smx_files[smx_file] | ||||||
| 		for entry in entries: |   if smx_file in disabled_plugins: | ||||||
| 			if entry in self.excludes: |     builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins/disabled']) | ||||||
| 				continue |   else: | ||||||
| 			path = os.path.join(self.fromPath, entry) |     builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins']) | ||||||
| 			if not os.path.isfile(path): |  | ||||||
| 				continue |  | ||||||
| 			runner.PrintOut('copy {0} to {1}'.format(path, self.toPath)) |  | ||||||
| 			shutil.copy(path, self.toPath) |  | ||||||
| 
 | 
 | ||||||
| #Single file copy | # Do all straight-up file copies from the source tree. | ||||||
| class CopyFile(Command): | def CopyFiles(src, dest, files): | ||||||
| 	def __init__(self, fromFile, toPath): |   if not dest: | ||||||
| 		Command.__init__(self) |     dest = src | ||||||
| 		self.fromFile = fromFile |   dest_entry = folder_map[dest] | ||||||
| 		self.toPath = toPath |   for source_file in files: | ||||||
|  |     source_path = os.path.join(builder.sourcePath, src, source_file) | ||||||
|  |     builder.AddCopy(source_path, dest_entry) | ||||||
| 
 | 
 | ||||||
| 	def run(self, runner, job): | CopyFiles('configs', 'addons/sourcemod/configs', | ||||||
| 		runner.PrintOut('copy {0} to {1}'.format(self.fromFile, self.toPath)) |   [ 'admin_groups.cfg', | ||||||
| 		shutil.copy(self.fromFile, self.toPath) |     'admin_levels.cfg', | ||||||
| 
 |     'admin_overrides.cfg', | ||||||
| 
 |     'adminmenu_cfgs.txt', | ||||||
| folders = [['addons', 'sourcemod', 'bin'], |     'adminmenu_custom.txt', | ||||||
|            ['addons', 'sourcemod', 'plugins', 'disabled'], |     'adminmenu_grouping.txt', | ||||||
|            ['addons', 'sourcemod', 'gamedata'], |     'adminmenu_sorting.txt', | ||||||
|            ['addons', 'sourcemod', 'gamedata', 'core.games'], |     'admins.cfg', | ||||||
| 		   ['addons', 'sourcemod', 'gamedata', 'sdkhooks.games'], |     'admins_simple.ini', | ||||||
|            ['addons', 'sourcemod', 'gamedata', 'sdktools.games'], |     'core.cfg', | ||||||
| 		   ['addons', 'sourcemod', 'gamedata', 'sm-cstrike.games'], |     'databases.cfg', | ||||||
|            ['addons', 'sourcemod', 'configs', 'geoip'], |     'languages.cfg', | ||||||
|            ['addons', 'sourcemod', 'translations'], |     'maplists.cfg', | ||||||
|            ['addons', 'sourcemod', 'logs'], |  | ||||||
|            ['addons', 'sourcemod', 'extensions'], |  | ||||||
|            ['addons', 'sourcemod', 'data'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'include'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'admin-flatfile'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'adminmenu'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'testsuite'], |  | ||||||
|            ['cfg', 'sourcemod'], |  | ||||||
|            ['addons', 'sourcemod', 'configs', 'sql-init-scripts'], |  | ||||||
|            ['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'mysql'], |  | ||||||
|            ['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'sqlite'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'basecommands'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'basecomm'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'funvotes'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'basevotes'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'basebans'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'funcommands'], |  | ||||||
|            ['addons', 'sourcemod', 'scripting', 'playercommands'], |  | ||||||
|            ['addons', 'metamod'], |  | ||||||
|   ] |   ] | ||||||
| 
 | ) | ||||||
| #Setup | CopyFiles('configs/geoip', 'addons/sourcemod/configs/geoip', ['GeoIP.dat']) | ||||||
| job.AddCommand(DestroyPath(os.path.join(AMBuild.outputFolder, 'package'))) | CopyFiles('configs/cfg', 'cfg/sourcemod', | ||||||
| job.AddCommand(CreateFolders(folders)) |   [ 'sm_warmode_off.cfg', | ||||||
| 
 |     'sm_warmode_on.cfg', | ||||||
| #Copy Folders |     'sourcemod.cfg', | ||||||
| job.AddCommand(CopyFolder(['configs'], ['addons', 'sourcemod', 'configs'])) |   ] | ||||||
| job.AddCommand(CopyFolder(['configs', 'geoip'], ['addons', 'sourcemod', 'configs', 'geoip'])) | ) | ||||||
| job.AddCommand(CopyFolder(['configs', 'cfg'], ['cfg', 'sourcemod'])) | CopyFiles('configs/metamod', 'addons/metamod', ['sourcemod.vdf']) | ||||||
| job.AddCommand(CopyFolder(['configs', 'metamod'], ['addons', 'metamod'])) | CopyFiles('configs/sql-init-scripts/mysql', 'addons/sourcemod/configs/sql-init-scripts/mysql', | ||||||
| job.AddCommand(CopyFolder(['configs', 'sql-init-scripts'], |   [ 'clientprefs-mysql.sql', | ||||||
| 	['addons', 'sourcemod', 'configs', 'sql-init-scripts'])) |     'create_admins.sql', | ||||||
| job.AddCommand(CopyFolder(['configs', 'sql-init-scripts', 'mysql'], |     'update_admins_r1409.sql', | ||||||
| 	['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'mysql'])) |   ] | ||||||
| job.AddCommand(CopyFolder(['configs', 'sql-init-scripts', 'sqlite'], | ) | ||||||
| 	['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'sqlite'])) | CopyFiles('configs/sql-init-scripts/sqlite', 'addons/sourcemod/configs/sql-init-scripts/sqlite', | ||||||
| job.AddCommand(CopyFolder(['gamedata'], ['addons', 'sourcemod', 'gamedata'])) |   [ 'admins-sqlite.sq3', | ||||||
| job.AddCommand(CopyFolder(['gamedata', 'sdkhooks.games'], |     'clientprefs-sqlite.sq3', | ||||||
| 	['addons', 'sourcemod', 'gamedata', 'sdkhooks.games'])) |     'clientprefs-sqlite.sql', | ||||||
| job.AddCommand(CopyFolder(['gamedata', 'sdktools.games'], |     'create_admins.sql', | ||||||
| 	['addons', 'sourcemod', 'gamedata', 'sdktools.games'])) |     'update_admins-r1409.sql', | ||||||
| job.AddCommand(CopyFolder(['gamedata', 'core.games'], |   ] | ||||||
| 	['addons', 'sourcemod', 'gamedata', 'core.games'])) | ) | ||||||
| job.AddCommand(CopyFolder(['gamedata', 'sm-cstrike.games'], | CopyFiles('gamedata', 'addons/sourcemod/gamedata', ['sm-tf2.games.txt']) | ||||||
| 	['addons', 'sourcemod', 'gamedata', 'sm-cstrike.games'])) | CopyFiles('gamedata/sdkhooks.games', 'addons/sourcemod/gamedata/sdkhooks.games', | ||||||
| job.AddCommand(CopyFolder(['plugins'], ['addons', 'sourcemod', 'scripting'], ['AMBuilder'])) |   [ 'common.games.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'include'], |     'engine.csgo.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'include'])) |     'engine.darkm.txt', | ||||||
| job.AddCommand(CopyFolder(['translations'], ['addons', 'sourcemod', 'translations'])) |     'engine.ep2v.txt', | ||||||
| job.AddCommand(CopyFolder(['public', 'licenses'], ['addons', 'sourcemod'])) |     'engine.l4d.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'admin-flatfile'], |     'game.ag2.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'admin-flatfile'])) |     'game.alienswarm.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'adminmenu'], |     'game.aoc.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'adminmenu'])) |     'game.cspromod.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'testsuite'], |     'game.cstrike.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'testsuite'])) |     'game.dinodday.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'basecommands'], |     'game.empires.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'basecommands'])) |     'game.ff.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'basecomm'], |     'game.fof.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'basecomm'])) |     'game.garrysmod.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'funvotes'], |     'game.gesource.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'funvotes'])) |     'game.hidden.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'basevotes'], |     'game.hl2ctf.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'basevotes'])) |     'game.insurgency.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'basebans'], |     'game.l4d2.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'basebans'])) |     'game.neotokyo.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'funcommands'], |     'game.nmrih.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'funcommands'])) |     'game.nucleardawn.txt', | ||||||
| job.AddCommand(CopyFolder(['plugins', 'playercommands'], |     'game.pvkii.txt', | ||||||
| 	['addons', 'sourcemod', 'scripting', 'playercommands'])) |     'game.sgtls.txt', | ||||||
| 
 |     'game.sourceforts.txt', | ||||||
| defPlugins = [ |     'game.synergy.txt', | ||||||
| 	'admin-flatfile', |     'game.zm.txt', | ||||||
| 	'adminhelp', |     'game.zpanic.txt', | ||||||
| 	'antiflood', |     'master.games.txt', | ||||||
| 	'basecommands', |   ] | ||||||
| 	'reservedslots', | ) | ||||||
| 	'basetriggers', | CopyFiles('gamedata/sdktools.games', 'addons/sourcemod/gamedata/sdktools.games', | ||||||
| 	'nextmap', |   [ 'common.games.txt', | ||||||
| 	'basechat', |     'engine.bgt.txt', | ||||||
| 	'funcommands', |     'engine.csgo.txt', | ||||||
| 	'basevotes', |     'engine.css.txt', | ||||||
| 	'funvotes', |     'engine.darkm.txt', | ||||||
| 	'basebans', |     'engine.ep1.txt', | ||||||
| 	'basecomm', |     'engine.ep2.txt', | ||||||
| 	'adminmenu', |     'engine.ep2valve.txt', | ||||||
| 	'playercommands', |     'engine.eye.txt', | ||||||
| 	'clientprefs', |     'engine.l4d.txt', | ||||||
| 	'sounds' |     'engine.l4d2.txt', | ||||||
| ] |     'engine.swarm.txt', | ||||||
| 
 |     'game.ag2.txt', | ||||||
| disPlugins = [ |     'game.alienswarm.txt', | ||||||
| 	'admin-sql-prefetch', |     'game.aoc.txt', | ||||||
| 	'admin-sql-threaded', |     'game.bg2.txt', | ||||||
| 	'sql-admin-manager', |     'game.cspromod.txt', | ||||||
| 	'mapchooser', |     'game.cstrike.txt', | ||||||
| 	'randomcycle', |     'game.dinodday.txt', | ||||||
| 	'rockthevote', |     'game.dod.txt', | ||||||
| 	'nominations' |     'game.dystopia.txt', | ||||||
| ] |     'game.empires.txt', | ||||||
| 
 |     'game.esmod.txt', | ||||||
| commands = [] |     'game.fas.txt', | ||||||
| for plugin in defPlugins: |     'game.ff.txt', | ||||||
| 	commands.append(CopyFile(os.path.join('..', 'plugins', plugin + '.smx'), |     'game.fof.txt', | ||||||
| 	                         os.path.join('addons', 'sourcemod', 'plugins'))) |     'game.garrysmod.txt', | ||||||
| 
 |     'game.gesource.txt', | ||||||
| for plugin in disPlugins: |     'game.hidden.txt', | ||||||
| 	commands.append(CopyFile(os.path.join('..', 'plugins', plugin + '.smx'), |     'game.hl2ctf.txt', | ||||||
| 	                         os.path.join('addons', 'sourcemod', 'plugins', 'disabled'))) |     'game.hl2mp.txt', | ||||||
| job.AddCommandGroup(commands) |     'game.insurgency.txt', | ||||||
| 
 |     'game.ios.txt', | ||||||
| job.AddCommand(CopyFile(os.path.join('..', 'includes', 'version_auto.inc'), |     'game.left4dead2.txt', | ||||||
| 	os.path.join('addons', 'sourcemod', 'scripting', 'include'))) |     'game.neotokyo.txt', | ||||||
| 
 |     'game.nmrih.txt', | ||||||
| bincopies = [] |     'game.nucleardawn.txt', | ||||||
| 
 |     'game.obsidian.txt', | ||||||
| def AddNormalLibrary(name, dest): |     'game.pvkii.txt', | ||||||
| 	dest = os.path.join('addons', 'sourcemod', dest) |     'game.rnlbeta.txt', | ||||||
| 	bincopies.append(CopyFile(os.path.join('..', name, name + osutil.SharedLibSuffix()), dest)) |     'game.ship.txt', | ||||||
| 	 |     'game.sourceforts.txt', | ||||||
| 	# Each platform's version of dump_syms needs the path in a different format. |     'game.synergy.txt', | ||||||
| 	if AMBuild.target['platform'] == 'linux': |     'game.tf.txt', | ||||||
| 		debug_info.append(name + '/' + name + '.so') |     'game.zm.txt', | ||||||
| 	elif AMBuild.target['platform'] == 'darwin': |     'game.zpanic.txt', | ||||||
| 		debug_info.append(name + '/' + name + '.dylib.dSYM') |     'master.games.txt', | ||||||
| 	elif AMBuild.target['platform'] == 'windows': |   ] | ||||||
| 		debug_info.append(name + '\\' + name + '.pdb') | ) | ||||||
| 
 | CopyFiles('gamedata/core.games', 'addons/sourcemod/gamedata/core.games', | ||||||
| def AddHL2Library(name, dest): |   [ 'blacklist.plugins.txt', | ||||||
| 	for i in SM.sdkInfo: |     'common.games.txt', | ||||||
| 		sdk = SM.sdkInfo[i] |     'engine.bgt.txt', | ||||||
| 		if AMBuild.target['platform'] not in sdk['platform']: |     'engine.csgo.txt', | ||||||
| 			continue |     'engine.css.txt', | ||||||
| 		AddNormalLibrary(name + '.' + sdk['ext'], dest) |     'engine.darkm.txt', | ||||||
| 
 |     'engine.ep1.txt', | ||||||
| debug_info = [] |     'engine.ep2.txt', | ||||||
| 
 |     'engine.ep2valve.txt', | ||||||
| if AMBuild.target['platform'] == 'linux': |     'engine.eye.txt', | ||||||
| 	bincopies.append(CopyFile(os.path.join('..', 'loader', 'sourcemod_mm_i486.so'), |     'engine.l4d.txt', | ||||||
| 	                 os.path.join('addons', 'sourcemod', 'bin'))) |     'engine.l4d2.txt', | ||||||
| 	debug_info.append('loader/sourcemod_mm_i486.so') |     'engine.swarm.txt', | ||||||
| elif AMBuild.target['platform'] == 'darwin': |     'master.games.txt', | ||||||
| 	bincopies.append(CopyFile(os.path.join('..', 'loader', 'sourcemod_mm.dylib'), |   ] | ||||||
| 	                 os.path.join('addons', 'sourcemod', 'bin'))) | ) | ||||||
| 	debug_info.append('loader/sourcemod_mm.dylib.dSYM') | CopyFiles('gamedata/sm-cstrike.games', 'addons/sourcemod/gamedata/sm-cstrike.games', | ||||||
| elif AMBuild.target['platform'] == 'windows': |   [ 'game.csgo.txt', | ||||||
| 	bincopies.append(CopyFile(os.path.join('..', 'loader', 'sourcemod_mm.dll'), |     'game.css.txt', | ||||||
| 	                 os.path.join('addons', 'sourcemod', 'bin'))) |     'master.games.txt', | ||||||
| 	debug_info.append('loader\\sourcemod_mm.pdb') |   ] | ||||||
| 
 | ) | ||||||
| AddHL2Library('sourcemod', 'bin') | CopyFiles('plugins', 'addons/sourcemod/scripting', | ||||||
| AddNormalLibrary('sourcemod.logic', 'bin') |   [ 'admin-sql-prefetch.sp', | ||||||
| AddNormalLibrary('sourcepawn.jit.x86', 'bin') |     'admin-sql-threaded.sp', | ||||||
| AddNormalLibrary('geoip.ext', 'extensions') |     'adminhelp.sp', | ||||||
| if SM.hasMySql: |     'adminmenu.sp', | ||||||
| 	AddNormalLibrary('dbi.mysql.ext', 'extensions') |     'antiflood.sp', | ||||||
| AddNormalLibrary('dbi.sqlite.ext', 'extensions') |     'basebans.sp', | ||||||
| 
 |     'basechat.sp', | ||||||
| if 'css' in SM.sdkInfo: |     'basecomm.sp', | ||||||
| 	AddNormalLibrary('game.cstrike.ext.2.css', 'extensions') |     'basecommands.sp', | ||||||
| 
 |     'basetriggers.sp', | ||||||
| if 'csgo' in SM.sdkInfo: |     'basevotes.sp', | ||||||
| 	AddNormalLibrary('game.cstrike.ext.2.csgo', 'extensions') |     'clientprefs.sp', | ||||||
| 
 |     'compile.sh', | ||||||
| if 'tf2' in SM.sdkInfo: |     'funcommands.sp', | ||||||
| 	AddNormalLibrary('game.tf2.ext.2.tf2', 'extensions') |     'funvotes.sp', | ||||||
| 
 |     'mapchooser.sp', | ||||||
| AddNormalLibrary('topmenus.ext', 'extensions') |     'nextmap.sp', | ||||||
| AddNormalLibrary('regex.ext', 'extensions') |     'nominations.sp', | ||||||
| AddNormalLibrary('webternet.ext', 'extensions') |     'playercommands.sp', | ||||||
| AddNormalLibrary('clientprefs.ext', 'extensions') |     'randomcycle.sp', | ||||||
| AddNormalLibrary('updater.ext', 'extensions') |     'reservedslots.sp', | ||||||
| AddNormalLibrary('bintools.ext', 'extensions') |     'rockthevote.sp', | ||||||
| AddHL2Library('sdkhooks.ext', 'extensions') |     'sounds.sp', | ||||||
| AddHL2Library('sdktools.ext', 'extensions') |     'sql-admin-manager.sp', | ||||||
| 
 |   ] | ||||||
| bincopies.append(CopyFile(os.path.join('..', 'spcomp', 'spcomp' + osutil.ExecutableSuffix()), | ) | ||||||
|                           os.path.join('addons', 'sourcemod', 'scripting'))) | CopyFiles('plugins/include', 'addons/sourcemod/scripting/include', | ||||||
| 
 |   [ 'admin.inc', | ||||||
| # Each platform's version of dump_syms needs the path in a different format. |     'adminmenu.inc', | ||||||
| if AMBuild.target['platform'] == 'linux': |     'adt.inc', | ||||||
| 	debug_info.append('spcomp' + '/' + 'spcomp') |     'adt_array.inc', | ||||||
| elif AMBuild.target['platform'] == 'darwin': |     'adt_stack.inc', | ||||||
| 	debug_info.append('spcomp' + '/' + 'spcomp' + '.dSYM') |     'adt_trie.inc', | ||||||
| elif AMBuild.target['platform'] == 'windows': |     'banning.inc', | ||||||
| 	debug_info.append('spcomp' + '\\' + 'spcomp' + '.pdb') |     'basecomm.inc', | ||||||
| 
 |     'bitbuffer.inc', | ||||||
| job.AddCommandGroup(bincopies) |     'clientprefs.inc', | ||||||
| 
 |     'clients.inc', | ||||||
| if AMBuild.target['platform'] == 'windows': |     'commandfilters.inc', | ||||||
| 	job.AddCommand(CopyFile( |     'console.inc', | ||||||
| 		os.path.join(AMBuild.sourceFolder, 'sourcepawn', 'batchtool', 'compile.exe'), |     'core.inc', | ||||||
| 		os.path.join('addons', 'sourcemod', 'scripting'))) |     'cstrike.inc', | ||||||
| 	 |     'datapack.inc', | ||||||
| pdblog = open(os.path.join(AMBuild.outputFolder, 'pdblog.txt'), 'wt') |     'dbi.inc', | ||||||
| for pdb in debug_info: |     'entity.inc', | ||||||
| 	pdblog.write(pdb + '\n') |     'entity_prop_stocks.inc', | ||||||
| pdblog.close() |     'events.inc', | ||||||
| 
 |     'files.inc', | ||||||
|  |     'float.inc', | ||||||
|  |     'functions.inc', | ||||||
|  |     'geoip.inc', | ||||||
|  |     'halflife.inc', | ||||||
|  |     'handles.inc', | ||||||
|  |     'helpers.inc', | ||||||
|  |     'keyvalues.inc', | ||||||
|  |     'lang.inc', | ||||||
|  |     'logging.inc', | ||||||
|  |     'mapchooser.inc', | ||||||
|  |     'menus.inc', | ||||||
|  |     'nextmap.inc', | ||||||
|  |     'profiler.inc', | ||||||
|  |     'protobuf.inc', | ||||||
|  |     'regex.inc', | ||||||
|  |     'sdkhooks.inc', | ||||||
|  |     'sdktools.inc', | ||||||
|  |     'sdktools_client.inc', | ||||||
|  |     'sdktools_engine.inc', | ||||||
|  |     'sdktools_entinput.inc', | ||||||
|  |     'sdktools_entoutput.inc', | ||||||
|  |     'sdktools_functions.inc', | ||||||
|  |     'sdktools_gamerules.inc', | ||||||
|  |     'sdktools_hooks.inc', | ||||||
|  |     'sdktools_sound.inc', | ||||||
|  |     'sdktools_stocks.inc', | ||||||
|  |     'sdktools_stringtables.inc', | ||||||
|  |     'sdktools_tempents.inc', | ||||||
|  |     'sdktools_tempents_stocks.inc', | ||||||
|  |     'sdktools_trace.inc', | ||||||
|  |     'sdktools_voice.inc', | ||||||
|  |     'sorting.inc', | ||||||
|  |     'sourcemod.inc', | ||||||
|  |     'string.inc', | ||||||
|  |     'textparse.inc', | ||||||
|  |     'tf2.inc', | ||||||
|  |     'tf2_stocks.inc', | ||||||
|  |     'timers.inc', | ||||||
|  |     'topmenus.inc', | ||||||
|  |     'usermessages.inc', | ||||||
|  |     'vector.inc', | ||||||
|  |     'version.inc', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('translations', 'addons/sourcemod/translations', | ||||||
|  |   [ 'adminhelp.phrases.txt', | ||||||
|  |     'adminmenu.phrases.txt', | ||||||
|  |     'antiflood.phrases.txt', | ||||||
|  |     'basebans.phrases.txt', | ||||||
|  |     'basecomm.phrases.txt', | ||||||
|  |     'basetriggers.phrases.txt', | ||||||
|  |     'basevotes.phrases.txt', | ||||||
|  |     'clientprefs.phrases.txt', | ||||||
|  |     'common.phrases.txt', | ||||||
|  |     'core.phrases.txt', | ||||||
|  |     'funcommands.phrases.txt', | ||||||
|  |     'funvotes.phrases.txt', | ||||||
|  |     'mapchooser.phrases.txt', | ||||||
|  |     'nextmap.phrases.txt', | ||||||
|  |     'nominations.phrases.txt', | ||||||
|  |     'playercommands.phrases.txt', | ||||||
|  |     'plugin.basecommands.txt', | ||||||
|  |     'reservedslots.phrases.txt', | ||||||
|  |     'rockthevote.phrases.txt', | ||||||
|  |     'sounds.phrases.txt', | ||||||
|  |     'sqladmins.phrases.txt', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('public/licenses', 'addons/sourcemod', | ||||||
|  |   [ 'GPLv2.txt', | ||||||
|  |     'GPLv3.txt', | ||||||
|  |     'LICENSE.txt' | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/admin-flatfile', 'addons/sourcemod/scripting/admin-flatfile', | ||||||
|  |   [ 'admin-flatfile.sp', | ||||||
|  |     'admin-groups.sp', | ||||||
|  |     'admin-overrides.sp', | ||||||
|  |     'admin-simple.sp', | ||||||
|  |     'admin-users.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/adminmenu', 'addons/sourcemod/scripting/adminmenu', ['dynamicmenu.sp']) | ||||||
|  | CopyFiles('plugins/testsuite', 'addons/sourcemod/scripting/testsuite', | ||||||
|  |   [ 'benchmark.sp', | ||||||
|  |     'bug4059.sp', | ||||||
|  |     'callfunctest.sp', | ||||||
|  |     'capstest.sp', | ||||||
|  |     'clientprefstest.sp', | ||||||
|  |     'cstrike-test.sp', | ||||||
|  |     'entpropelements.sp', | ||||||
|  |     'fakenative1.sp', | ||||||
|  |     'fakenative2.sp', | ||||||
|  |     'filetest.sp', | ||||||
|  |     'fwdtest1.sp', | ||||||
|  |     'fwdtest2.sp', | ||||||
|  |     'gamerules-props.sp', | ||||||
|  |     'goto_test.sp', | ||||||
|  |     'outputtest.sp', | ||||||
|  |     'ptstest.sp', | ||||||
|  |     'sorttest.sp', | ||||||
|  |     'sqltest.sp', | ||||||
|  |     'sqltest.sql', | ||||||
|  |     'stacktest.sp', | ||||||
|  |     'structtest.sp', | ||||||
|  |     'tf2-test.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/basecommands', 'addons/sourcemod/scripting/basecommands', | ||||||
|  |   [ 'cancelvote.sp', | ||||||
|  |     'execcfg.sp', | ||||||
|  |     'kick.sp', | ||||||
|  |     'map.sp', | ||||||
|  |     'reloadadmins.sp', | ||||||
|  |     'who.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/basecomm', 'addons/sourcemod/scripting/basecomm', | ||||||
|  |   [ 'forwards.sp', | ||||||
|  |     'gag.sp', | ||||||
|  |     'natives.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/funvotes', 'addons/sourcemod/scripting/funvotes', | ||||||
|  |   [ 'votealltalk.sp', | ||||||
|  |     'voteburn.sp', | ||||||
|  |     'voteff.sp', | ||||||
|  |     'votegravity.sp', | ||||||
|  |     'voteslay.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/basevotes', 'addons/sourcemod/scripting/basevotes', | ||||||
|  |   [ 'voteban.sp', | ||||||
|  |     'votekick.sp', | ||||||
|  |     'votemap.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/basebans', 'addons/sourcemod/scripting/basebans', ['ban.sp']) | ||||||
|  | CopyFiles('plugins/funcommands', 'addons/sourcemod/scripting/funcommands', | ||||||
|  |   [ 'beacon.sp', | ||||||
|  |     'blind.sp', | ||||||
|  |     'drug.sp', | ||||||
|  |     'fire.sp', | ||||||
|  |     'gravity.sp', | ||||||
|  |     'ice.sp', | ||||||
|  |     'noclip.sp', | ||||||
|  |     'timebomb.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | CopyFiles('plugins/playercommands', 'addons/sourcemod/scripting/playercommands', | ||||||
|  |   [ 'rename.sp', | ||||||
|  |     'slap.sp', | ||||||
|  |     'slay.sp', | ||||||
|  |   ] | ||||||
|  | ) | ||||||
|  | |||||||
| @ -1,89 +1,34 @@ | |||||||
| # vim: set ts=2 sw=2 tw=99 noet ft=python:  | # vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:  | ||||||
| import os | import os, sys | ||||||
| import re |  | ||||||
| import subprocess |  | ||||||
| from ambuild.cache import Cache |  | ||||||
| import ambuild.command as command |  | ||||||
| 
 | 
 | ||||||
| #Quickly try to ascertain the current repository revision | builder.SetBuildFolder('/') | ||||||
| def GetVersion(): |  | ||||||
| 	args = ['hg', 'parent', '-R', AMBuild.sourceFolder] |  | ||||||
| 	p = command.RunDirectCommand(AMBuild, args) |  | ||||||
| 	m = re.match('changeset:\s+(\d+):(.+)', p.stdoutText) |  | ||||||
| 	if m == None: |  | ||||||
| 		raise Exception('Could not determine repository version') |  | ||||||
| 	return m.groups() |  | ||||||
| 
 | 
 | ||||||
| def PerformReversioning(): | includes = builder.AddFolder('includes') | ||||||
| 	rev, cset = GetVersion() |  | ||||||
| 	cacheFile = os.path.join(AMBuild.outputFolder, '.ambuild', 'hgcache') |  | ||||||
| 	cache = Cache(cacheFile) |  | ||||||
| 	if os.path.isfile(cacheFile): |  | ||||||
| 		cache.LoadCache() |  | ||||||
| 		if cache.HasVariable('cset') and cache['cset'] == cset: |  | ||||||
| 			return False |  | ||||||
| 	cache.CacheVariable('cset', cset) |  | ||||||
| 
 | 
 | ||||||
| 	productFile = open(os.path.join(AMBuild.sourceFolder, 'product.version'), 'r') | argv = [ | ||||||
| 	productContents = productFile.read() |   sys.executable, | ||||||
| 	productFile.close() |   os.path.join(builder.sourcePath, 'tools', 'buildbot', 'generate_headers.py'), | ||||||
| 	m = re.match('(\d+)\.(\d+)\.(\d+)-?(.*)', productContents) |   os.path.join(builder.sourcePath), | ||||||
| 	if m == None: |   os.path.join(builder.buildPath, 'includes'), | ||||||
| 		raise Exception('Could not detremine product version') | ] | ||||||
| 	major, minor, release, tag = m.groups() | outputs = [ | ||||||
|  |   os.path.join(builder.buildFolder, 'includes', 'sourcemod_version_auto.h'), | ||||||
|  |   os.path.join(builder.buildFolder, 'includes', 'version_auto.inc'), | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| 	fullstring = "{0}.{1}.{2}".format(major, minor, release) | sources = [ | ||||||
| 	if tag != "": |   os.path.join(builder.sourcePath, 'product.version'), | ||||||
| 		fullstring += "-{0}".format(tag) |  | ||||||
| 		if tag == "dev": |  | ||||||
| 			fullstring += "+{0}".format(rev) |  | ||||||
| 
 | 
 | ||||||
| 	incFolder = os.path.join(AMBuild.outputFolder, 'includes') |   # This is a hack, but we need some way to only run this script when HG changes. | ||||||
| 	if not os.path.isdir(incFolder): |   os.path.join(builder.sourcePath, '.hg', 'dirstate'), | ||||||
| 		os.makedirs(incFolder) |  | ||||||
| 	incFile = open(os.path.join(incFolder, 'sourcemod_version_auto.h'), 'w') |  | ||||||
| 	incFile.write(""" |  | ||||||
| #ifndef _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ |  | ||||||
| #define _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ |  | ||||||
| 
 |  | ||||||
| #define SM_BUILD_TAG		\"{0}\" |  | ||||||
| #define SM_BUILD_REV		\"{1}\" |  | ||||||
| #define SM_BUILD_CSET		\"{2}\" |  | ||||||
| #define SM_BUILD_MAJOR		\"{3}\" |  | ||||||
| #define SM_BUILD_MINOR		\"{4}\" |  | ||||||
| #define SM_BUILD_RELEASE	\"{5}\" |  | ||||||
| 
 |  | ||||||
| #define SM_BUILD_UNIQUEID SM_BUILD_REV \":\" SM_BUILD_CSET |  | ||||||
| 
 |  | ||||||
| #define SM_VERSION_STRING	\"{6}\" |  | ||||||
| #define SM_VERSION_FILE		{7},{8},{9},0 |  | ||||||
| 
 |  | ||||||
| #endif /* _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ */ |  | ||||||
| 
 |  | ||||||
| """.format(tag, rev, cset, major, minor, release, fullstring, major, minor, release)) |  | ||||||
| 	incFile.close() |  | ||||||
| 	 |  | ||||||
| 	incFile = open(os.path.join(incFolder, 'version_auto.inc'), 'w') |  | ||||||
| 	incFile.write(""" |  | ||||||
| #if defined _auto_version_included |  | ||||||
|  #endinput |  | ||||||
| #endif |  | ||||||
| #define _auto_version_included |  | ||||||
| 
 |  | ||||||
| #define SOURCEMOD_V_TAG		\"{0}\" |  | ||||||
| #define SOURCEMOD_V_REV		{1} |  | ||||||
| #define SOURCEMOD_V_CSET	\"{2}\" |  | ||||||
| #define SOURCEMOD_V_MAJOR	{3} |  | ||||||
| #define SOURCEMOD_V_MINOR	{4} |  | ||||||
| #define SOURCEMOD_V_RELEASE	{5} |  | ||||||
| 
 |  | ||||||
| #define SOURCEMOD_VERSION	\"{6}\" |  | ||||||
| 
 |  | ||||||
| """.format(tag, rev, cset, major, minor, release, fullstring)) |  | ||||||
| 	incFile.close() |  | ||||||
| 
 |  | ||||||
| 	cache.WriteCache() |  | ||||||
| 
 |  | ||||||
| PerformReversioning() |  | ||||||
| 
 | 
 | ||||||
|  |   # The script source is a dependency, of course... | ||||||
|  |   argv[1] | ||||||
|  | ] | ||||||
|  | cmd_node, output_nodes = builder.AddCommand( | ||||||
|  |   inputs=sources, | ||||||
|  |   argv=argv, | ||||||
|  |   outputs=outputs | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
|  | rvalue = output_nodes | ||||||
|  | |||||||
| @ -19,51 +19,27 @@ our ($root) = getcwd(); | |||||||
| 
 | 
 | ||||||
| my $reconf = 0; | my $reconf = 0; | ||||||
| 
 | 
 | ||||||
| #Create output folder if it doesn't exist. | if (!(-f 'OUTPUT/.ambuild2/graph') || !(-f 'OUTPUT/.ambuild2/vars')) { | ||||||
| if (!(-d 'OUTPUT')) { |  | ||||||
| 	$reconf = 1; |  | ||||||
| } else { |  | ||||||
| 	if (-f 'OUTPUT/sentinel') { |  | ||||||
| 		my @s = stat('OUTPUT/sentinel'); |  | ||||||
| 		my $mtime = $s[9]; |  | ||||||
| 		my @files = ('build/pushbuild.txt', 'build/AMBuildScript', 'build/product.version'); |  | ||||||
| 		my ($i); |  | ||||||
| 		for ($i = 0; $i <= $#files; $i++) { |  | ||||||
| 			if (IsNewer($files[$i], $mtime)) { |  | ||||||
| 				$reconf = 1; |  | ||||||
| 				last; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		$reconf = 1; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| if ($reconf) { |  | ||||||
| 	rmtree('OUTPUT'); | 	rmtree('OUTPUT'); | ||||||
| 	mkdir('OUTPUT') or die("Failed to create output folder: $!\n"); | 	mkdir('OUTPUT') or die("Failed to create output folder: $!\n"); | ||||||
| 	chdir('OUTPUT'); | 	chdir('OUTPUT'); | ||||||
| 	my ($result, $argn); | 	my ($result, $argn); | ||||||
| 	$argn = $#ARGV + 1; | 	$argn = $#ARGV + 1; | ||||||
| 	print "Attempting to reconfigure...\n"; | 	print "Attempting to reconfigure...\n"; | ||||||
|  | 	my $conf_args = '--enable-optimize --breakpad-dump'; | ||||||
| 	if ($argn > 0 && $^O !~ /MSWin/) { | 	if ($argn > 0 && $^O !~ /MSWin/) { | ||||||
| 		$result = `CC=$ARGV[0] CXX=$ARGV[0] python3 ../build/configure.py --enable-optimize`; | 		$result = `CC=$ARGV[0] CXX=$ARGV[0] python ../build/configure.py $conf_args`; | ||||||
| 	} else { | 	} else { | ||||||
| 		if ($^O eq "linux") { | 		if ($^O =~ /MSWin/) { | ||||||
| 			$result = `CC=gcc-4.4 CXX=gcc-4.4 python3 ../build/configure.py --enable-optimize`; | 			$result = `C:\\Python27\\Python.exe ..\\build\\configure.py $conf_args`; | ||||||
| 		} elsif ($^O eq "darwin") { |  | ||||||
| 			$result = `CC=clang CXX=clang python3 ../build/configure.py --enable-optimize`; |  | ||||||
| 		} else { | 		} else { | ||||||
| 			$result = `C:\\Python32\\Python.exe ..\\build\\configure.py --enable-optimize`; | 			$result = `CC=clang CXX=clang python ../build/configure.py $conf_args`; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	print "$result\n"; | 	print "$result\n"; | ||||||
| 	if ($? != 0) { | 	if ($? != 0) { | ||||||
| 		die("Could not configure: $!\n"); | 		die("Could not configure: $!\n"); | ||||||
| 	} | 	} | ||||||
| 	open(FILE, '>sentinel'); |  | ||||||
| 	print FILE "this is nothing.\n"; |  | ||||||
| 	close(FILE); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| sub IsNewer | sub IsNewer | ||||||
|  | |||||||
							
								
								
									
										87
									
								
								tools/buildbot/generate_headers.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								tools/buildbot/generate_headers.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,87 @@ | |||||||
|  | # vim: set ts=8 sts=2 sw=2 tw=99 et: | ||||||
|  | import re | ||||||
|  | import os, sys | ||||||
|  | import subprocess | ||||||
|  | 
 | ||||||
|  | argv = sys.argv[1:] | ||||||
|  | if len(argv) < 2: | ||||||
|  |   sys.stderr.write('Usage: generate_headers.py <source_path> <output_folder>\n') | ||||||
|  |   sys.exit(1) | ||||||
|  | 
 | ||||||
|  | SourceFolder = os.path.abspath(os.path.normpath(argv[0])) | ||||||
|  | OutputFolder = os.path.normpath(argv[1]) | ||||||
|  | 
 | ||||||
|  | def get_hg_version(): | ||||||
|  |   argv = ['hg', 'parent', '-R', SourceFolder] | ||||||
|  | 
 | ||||||
|  |   # Python 2.6 doesn't have check_output. | ||||||
|  |   if hasattr(subprocess, 'check_output'): | ||||||
|  |     text = subprocess.check_output(argv) | ||||||
|  |     if str != bytes: | ||||||
|  |       text = str(text, 'utf-8') | ||||||
|  |   else: | ||||||
|  |     p = subprocess.Popen(argv, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | ||||||
|  |     output, ignored = p.communicate() | ||||||
|  |     rval = p.poll() | ||||||
|  |     if rval: | ||||||
|  |       raise subprocess.CalledProcessError(rval, argv) | ||||||
|  |     text = output.decode('utf8') | ||||||
|  | 
 | ||||||
|  |   m = re.match('changeset:\s+(\d+):(.+)', text) | ||||||
|  |   if m == None: | ||||||
|  |     raise Exception('Could not determine repository version') | ||||||
|  |   return m.groups() | ||||||
|  | 
 | ||||||
|  | def output_version_headers(): | ||||||
|  |   rev, cset = get_hg_version() | ||||||
|  | 
 | ||||||
|  |   with open(os.path.join(SourceFolder, 'product.version')) as fp: | ||||||
|  |     contents = fp.read() | ||||||
|  |   m = re.match('(\d+)\.(\d+)\.(\d+)-?(.*)', contents) | ||||||
|  |   if m == None: | ||||||
|  |     raise Exception('Could not detremine product version') | ||||||
|  |   major, minor, release, tag = m.groups() | ||||||
|  |   fullstring = "{0}.{1}.{2}".format(major, minor, release) | ||||||
|  |   if tag != "": | ||||||
|  |     fullstring += "-{0}".format(tag) | ||||||
|  |     if tag == "dev": | ||||||
|  |       fullstring += "+{0}".format(rev) | ||||||
|  | 
 | ||||||
|  |   with open(os.path.join(OutputFolder, 'sourcemod_version_auto.h'), 'w') as fp: | ||||||
|  |     fp.write(""" | ||||||
|  | #ifndef _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ | ||||||
|  | #define _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ | ||||||
|  | 
 | ||||||
|  | #define SM_BUILD_TAG		\"{0}\" | ||||||
|  | #define SM_BUILD_REV		\"{1}\" | ||||||
|  | #define SM_BUILD_CSET		\"{2}\" | ||||||
|  | #define SM_BUILD_MAJOR		\"{3}\" | ||||||
|  | #define SM_BUILD_MINOR		\"{4}\" | ||||||
|  | #define SM_BUILD_RELEASE	\"{5}\" | ||||||
|  | 
 | ||||||
|  | #define SM_BUILD_UNIQUEID SM_BUILD_REV \":\" SM_BUILD_CSET | ||||||
|  | 
 | ||||||
|  | #define SM_VERSION_STRING	\"{6}\" | ||||||
|  | #define SM_VERSION_FILE		{7},{8},{9},0 | ||||||
|  | 
 | ||||||
|  | #endif /* _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ */ | ||||||
|  |     """.format(tag, rev, cset, major, minor, release, fullstring, major, minor, release)) | ||||||
|  | 
 | ||||||
|  |   with open(os.path.join(OutputFolder, 'version_auto.inc'), 'w') as fp: | ||||||
|  |     fp.write(""" | ||||||
|  | #if defined _auto_version_included | ||||||
|  |  #endinput | ||||||
|  | #endif | ||||||
|  | #define _auto_version_included | ||||||
|  | 
 | ||||||
|  | #define SOURCEMOD_V_TAG		\"{0}\" | ||||||
|  | #define SOURCEMOD_V_REV		{1} | ||||||
|  | #define SOURCEMOD_V_CSET	\"{2}\" | ||||||
|  | #define SOURCEMOD_V_MAJOR	{3} | ||||||
|  | #define SOURCEMOD_V_MINOR	{4} | ||||||
|  | #define SOURCEMOD_V_RELEASE	{5} | ||||||
|  | 
 | ||||||
|  | #define SOURCEMOD_VERSION	\"{6}\" | ||||||
|  |     """.format(tag, rev, cset, major, minor, release, fullstring)) | ||||||
|  | 
 | ||||||
|  | output_version_headers() | ||||||
| @ -10,12 +10,14 @@ require 'helpers.pm'; | |||||||
| 
 | 
 | ||||||
| chdir('../../../OUTPUT'); | chdir('../../../OUTPUT'); | ||||||
| 
 | 
 | ||||||
| if ($^O eq "linux" || $^O eq "darwin") { | my $argn = $#ARGV + 1; | ||||||
| 	system("python3 build.py 2>&1"); | if ($argn > 0) { | ||||||
| } else { | 	$ENV{CC} = $ARGV[0]; | ||||||
| 	system("C:\\Python31\\python.exe build.py 2>&1"); | 	$ENV{CXX} = $ARGV[0]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | system("ambuild --no-color 2>&1"); | ||||||
|  | 
 | ||||||
| if ($? != 0) | if ($? != 0) | ||||||
| { | { | ||||||
| 	die "Build failed: $!\n"; | 	die "Build failed: $!\n"; | ||||||
|  | |||||||
							
								
								
									
										38
									
								
								tools/buildbot/upload_symbols.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								tools/buildbot/upload_symbols.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | # vim: ts=8 sts=2 sw=2 tw=99 et ft=python:  | ||||||
|  | import sys | ||||||
|  | import subprocess | ||||||
|  | import os | ||||||
|  | try: | ||||||
|  |   import urllib.request as urllib | ||||||
|  | except ImportError: | ||||||
|  |   import urllib2 as urllib | ||||||
|  | 
 | ||||||
|  | if len(sys.argv) < 3: | ||||||
|  |   sys.stderr.write('Usage: <symbol-file> <dump-syms-cmd> <args...>\n') | ||||||
|  |   sys.exit(1) | ||||||
|  | 
 | ||||||
|  | SYMBOL_SERVER = os.environ['BREAKPAD_SYMBOL_SERVER'] | ||||||
|  | symbol_file = sys.argv[1] | ||||||
|  | cmd_argv = sys.argv[2:] | ||||||
|  | 
 | ||||||
|  | sys.stdout.write(' '.join(cmd_argv)) | ||||||
|  | sys.stdout.write('\n') | ||||||
|  | 
 | ||||||
|  | p = subprocess.Popen( | ||||||
|  |   args = cmd_argv, | ||||||
|  |   stdout = subprocess.PIPE, | ||||||
|  |   stderr = subprocess.PIPE, | ||||||
|  |   shell = False | ||||||
|  | ) | ||||||
|  | stdout, stderr = p.communicate() | ||||||
|  | out = stdout.decode('utf8') | ||||||
|  | err = stdout.decode('utf8') | ||||||
|  | 
 | ||||||
|  | with open(symbol_file, 'w') as fp: | ||||||
|  |   fp.write(stdout) | ||||||
|  |   fp.write(stderr) | ||||||
|  | 
 | ||||||
|  | request = urllib.Request(SYMBOL_SERVER, out) | ||||||
|  | request.add_header('Content-Type', 'text/plain') | ||||||
|  | server_response = urllib.urlopen(request).read().decode('utf8') | ||||||
|  | print(server_response) | ||||||
							
								
								
									
										15
									
								
								versionlib/AMBuilder
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								versionlib/AMBuilder
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | # vim: sts=2 ts=8 sw=2 tw=99 et ft=python: | ||||||
|  | import os | ||||||
|  | 
 | ||||||
|  | lib = builder.compiler.StaticLibrary('version') | ||||||
|  | lib.compiler.includes += [ | ||||||
|  |   os.path.join(builder.sourcePath, 'public') | ||||||
|  | ] | ||||||
|  | lib.compiler.defines.remove('SM_USE_VERSIONLIB') | ||||||
|  | lib.compiler.sourcedeps += SM.generated_headers | ||||||
|  | lib.sources += [ | ||||||
|  |   'versionlib.cpp' | ||||||
|  | ] | ||||||
|  | task = builder.Add(lib) | ||||||
|  | 
 | ||||||
|  | rvalue = task.binary | ||||||
							
								
								
									
										34
									
								
								versionlib/versionlib.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								versionlib/versionlib.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | |||||||
|  | /**
 | ||||||
|  |  * vim: set ts=4 sw=4 tw=99 noet : | ||||||
|  |  * ============================================================================= | ||||||
|  |  * SourceMod | ||||||
|  |  * Copyright (C) 2004-2013 AlliedModders LLC.  All rights reserved. | ||||||
|  |  * ============================================================================= | ||||||
|  |  * | ||||||
|  |  * This program is free software; you can redistribute it and/or modify it under | ||||||
|  |  * the terms of the GNU General Public License, version 3.0, as published by the | ||||||
|  |  * Free Software Foundation. | ||||||
|  |  *  | ||||||
|  |  * This program is distributed in the hope that it will be useful, but WITHOUT | ||||||
|  |  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||||||
|  |  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more | ||||||
|  |  * details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License along with | ||||||
|  |  * this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  * | ||||||
|  |  * As a special exception, AlliedModders LLC gives you permission to link the | ||||||
|  |  * code of this program (as well as its derivative works) to "Half-Life 2," the | ||||||
|  |  * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software | ||||||
|  |  * by the Valve Corporation.  You must obey the GNU General Public License in | ||||||
|  |  * all respects for all other code used.  Additionally, AlliedModders LLC grants | ||||||
|  |  * this exception to all derivative works.  AlliedModders LLC defines further | ||||||
|  |  * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), | ||||||
|  |  * or <http://www.sourcemod.net/license.php>.
 | ||||||
|  |  */ | ||||||
|  | #include <sourcemod_version.h> | ||||||
|  | #include <versionlib.h> | ||||||
|  | 
 | ||||||
|  | const char *SOURCEMOD_BUILD_ID = SM_BUILD_UNIQUEID; | ||||||
|  | const char *SOURCEMOD_VERSION = SM_VERSION_STRING; | ||||||
|  | const char *SOURCEMOD_BUILD_TIME = __DATE__ " " __TIME__; | ||||||
							
								
								
									
										49
									
								
								versionlib/versionlib.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								versionlib/versionlib.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | |||||||
|  | /**
 | ||||||
|  |  * vim: set ts=4 sw=4 tw=99 noet : | ||||||
|  |  * ============================================================================= | ||||||
|  |  * SourceMod | ||||||
|  |  * Copyright (C) 2004-2013 AlliedModders LLC.  All rights reserved. | ||||||
|  |  * ============================================================================= | ||||||
|  |  * | ||||||
|  |  * This program is free software; you can redistribute it and/or modify it under | ||||||
|  |  * the terms of the GNU General Public License, version 3.0, as published by the | ||||||
|  |  * Free Software Foundation. | ||||||
|  |  *  | ||||||
|  |  * This program is distributed in the hope that it will be useful, but WITHOUT | ||||||
|  |  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||||||
|  |  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more | ||||||
|  |  * details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License along with | ||||||
|  |  * this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  * | ||||||
|  |  * As a special exception, AlliedModders LLC gives you permission to link the | ||||||
|  |  * code of this program (as well as its derivative works) to "Half-Life 2," the | ||||||
|  |  * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software | ||||||
|  |  * by the Valve Corporation.  You must obey the GNU General Public License in | ||||||
|  |  * all respects for all other code used.  Additionally, AlliedModders LLC grants | ||||||
|  |  * this exception to all derivative works.  AlliedModders LLC defines further | ||||||
|  |  * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), | ||||||
|  |  * or <http://www.sourcemod.net/license.php>.
 | ||||||
|  |  */ | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_VERSIONLIB_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_VERSIONLIB_H_ | ||||||
|  | 
 | ||||||
|  | #if !defined(SM_USE_VERSIONLIB) | ||||||
|  | // These get defined in sourcemod_version.h since
 | ||||||
|  | // versionlib does not use versionlib.
 | ||||||
|  | # undef SOURCEMOD_BUILD_ID | ||||||
|  | # undef SOURCEMOD_VERSION | ||||||
|  | # undef SOURCEMOD_BUILD_TIME | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #ifdef __cplusplus | ||||||
|  | # define EXTERN_C extern "C" | ||||||
|  | #else | ||||||
|  | # define EXTERN_C extern | ||||||
|  | #endif | ||||||
|  | EXTERN_C const char *SOURCEMOD_BUILD_ID; | ||||||
|  | EXTERN_C const char *SOURCEMOD_VERSION; | ||||||
|  | EXTERN_C const char *SOURCEMOD_BUILD_TIME; | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_VERSIONLIB_H_
 | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user