Skip to content

Commit

Permalink
Add c-ares dependency
Browse files Browse the repository at this point in the history
This is the c-ares code that used to live in the libuv source tree.
It is based on c-ares 1.9.0.
  • Loading branch information
piscisaureus committed Aug 6, 2012
1 parent 4c150ca commit 81791ff
Show file tree
Hide file tree
Showing 92 changed files with 29,243 additions and 0 deletions.
15 changes: 15 additions & 0 deletions deps/cares/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/Debug/
/out/
/Release/

/cares.Makefile
/cares.target.mk
/Makefile

/*.opensdf
/*.sdf
/*.sln
/*.suo
/*.vcxproj
/*.vcxproj.filters
/*.vcxproj.user
20 changes: 20 additions & 0 deletions deps/cares/build/gcc_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env python

import os
import re
import subprocess
import sys


def DoMain(*args):
cc = os.environ.get('CC', 'gcc')
stdin, stderr = os.pipe()
subprocess.call([cc, '-v'], stderr=stderr)
output = os.read(stdin, 4096)
match = re.search("\ngcc version (\d+\.\d+\.\d+)", output)
if match:
print(match.group(1))


if __name__ == '__main__':
DoMain(*sys.argv)
160 changes: 160 additions & 0 deletions deps/cares/cares.gyp
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
{
'target_defaults': {
'conditions': [
['OS!="win"', {
'defines': [
'_DARWIN_USE_64_BIT_INODE=1',
'_LARGEFILE_SOURCE',
'_FILE_OFFSET_BITS=64',
'_GNU_SOURCE'
]
}],
['OS=="solaris"', {
'defines': [
'__EXTENSIONS__',
'_XOPEN_SOURCE=500'
]
}]
]
},

'targets': [
{
'target_name': 'cares',
'type': '<(library)',
'include_dirs': [ 'include', 'src' ],
'direct_dependent_settings': {
'include_dirs': [ 'include' ]
},
'defines': [ 'HAVE_CONFIG_H' ],
'sources': [
'common.gypi',
'include/ares.h',
'include/ares_version.h',
'include/nameser.h',
'src/ares_cancel.c',
'src/ares__close_sockets.c',
'src/ares_data.c',
'src/ares_data.h',
'src/ares_destroy.c',
'src/ares_dns.h',
'src/ares_expand_name.c',
'src/ares_expand_string.c',
'src/ares_fds.c',
'src/ares_free_hostent.c',
'src/ares_free_string.c',
'src/ares_getenv.h',
'src/ares_gethostbyaddr.c',
'src/ares_gethostbyname.c',
'src/ares__get_hostent.c',
'src/ares_getnameinfo.c',
'src/ares_getopt.c',
'src/ares_getopt.h',
'src/ares_getsock.c',
'src/ares_init.c',
'src/ares_ipv6.h',
'src/ares_library_init.c',
'src/ares_library_init.h',
'src/ares_llist.c',
'src/ares_llist.h',
'src/ares_mkquery.c',
'src/ares_nowarn.c',
'src/ares_nowarn.h',
'src/ares_options.c',
'src/ares_parse_aaaa_reply.c',
'src/ares_parse_a_reply.c',
'src/ares_parse_mx_reply.c',
'src/ares_parse_naptr_reply.c',
'src/ares_parse_ns_reply.c',
'src/ares_parse_ptr_reply.c',
'src/ares_parse_soa_reply.c',
'src/ares_parse_srv_reply.c',
'src/ares_parse_txt_reply.c',
'src/ares_platform.h',
'src/ares_private.h',
'src/ares_process.c',
'src/ares_query.c',
'src/ares__read_line.c',
'src/ares_rules.h',
'src/ares_search.c',
'src/ares_send.c',
'src/ares_setup.h',
'src/ares_strcasecmp.c',
'src/ares_strcasecmp.h',
'src/ares_strdup.c',
'src/ares_strdup.h',
'src/ares_strerror.c',
'src/ares_timeout.c',
'src/ares__timeval.c',
'src/ares_version.c',
'src/ares_writev.c',
'src/ares_writev.h',
'src/bitncmp.c',
'src/bitncmp.h',
'src/inet_net_pton.c',
'src/inet_net_pton.h',
'src/inet_ntop.c',
'src/inet_ntop.h',
'src/setup_once.h',
'src/windows_port.c'
],
'conditions': [
[ 'library=="static_library"', {
'defines': [ 'CARES_STATICLIB' ]
}, {
'defines': [ 'CARES_BUILDING_LIBRARY' ]
}],
[ 'OS=="win"', {
'include_dirs': [ 'config/win32' ],
'sources': [
'config/win32/ares_config.h',
'src/windows_port.c',
'src/ares_getenv.c',
'src/ares_iphlpapi.h',
'src/ares_platform.c'
],
'libraries': [
'-lws2_32.lib',
'-liphlpapi.lib'
],
}, {
# Not Windows i.e. POSIX
'cflags': [
'-g',
'--std=gnu89',
'-pedantic',
'-Wall',
'-Wextra',
'-Wno-unused-parameter'
],
}],
[ 'OS=="linux"', {
'include_dirs': [ 'config/linux' ],
'sources': [ 'config/linux/ares_config.h' ]
}],
[ 'OS=="mac"', {
'include_dirs': [ 'config/darwin' ],
'sources': [ 'config/darwin/ares_config.h' ]
}],
[ 'OS=="freebsd"', {
'include_dirs': [ 'config/freebsd' ],
'sources': [ 'config/freebsd/ares_config.h' ]
}],
[ 'OS=="openbsd"', {
'include_dirs': [ 'config/openbsd' ],
'sources': [ 'config/openbsd/ares_config.h' ]
}],
[ 'OS=="solaris"', {
'include_dirs': [ 'config/sunos' ],
'sources': [ 'config/sunos/ares_config.h' ],
'direct_dependent_settings': {
'libraries': [
'-lsocket',
'-lnsl'
]
}
}]
]
}
]
}
172 changes: 172 additions & 0 deletions deps/cares/common.gypi
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
{
'variables': {
'visibility%': 'hidden',
'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
'component%': 'static_library',
'host_arch%': '',
'target_arch%': ''
},

'target_defaults': {
'default_configuration': 'Debug',
'configurations': {

'Debug': {
'defines': [ 'DEBUG', '_DEBUG' ],
'cflags': [ '-g', '-O0' ],
'msvs_settings': {
'VCCLCompilerTool': {
'target_conditions': [
['library=="static_library"', {
'RuntimeLibrary': 1 # static debug
}, {
'RuntimeLibrary': 3 # DLL debug
}]
],
'Optimization': 0, # /Od, no optimization
'MinimalRebuild': 'false',
'OmitFramePointers': 'false',
'BasicRuntimeChecks': 3 # /RTC1
},
'VCLinkerTool': {
'LinkIncremental': 2 # enable incremental linking
}
},
'xcode_settings': {
'GCC_OPTIMIZATION_LEVEL': '0'
}
},

'Release': {
'defines': [ 'NDEBUG' ],
'cflags': [
'-O3',
'-fomit-frame-pointer',
'-fdata-sections',
'-ffunction-sections'
],
'msvs_settings': {
'VCCLCompilerTool': {
'target_conditions': [
['library=="static_library"', {
'RuntimeLibrary': 0, # static release
}, {
'RuntimeLibrary': 2, # debug release
}],
],
'Optimization': 3, # /Ox, full optimization
'FavorSizeOrSpeed': 1, # /Ot, favour speed over size
'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible
'WholeProgramOptimization': 'true', # /GL, whole program optimization, needed for LTCG
'OmitFramePointers': 'true',
'EnableFunctionLevelLinking': 'true',
'EnableIntrinsicFunctions': 'true'
},
'VCLibrarianTool': {
'AdditionalOptions': [
'/LTCG' # link time code generation
]
},
'VCLinkerTool': {
'LinkTimeCodeGeneration': 1, # link-time code generation
'OptimizeReferences': 2, # /OPT:REF
'EnableCOMDATFolding': 2, # /OPT:ICF
'LinkIncremental': 1 # disable incremental linking
},
},
}
},

'msvs_settings': {
'VCCLCompilerTool': {
'StringPooling': 'true', # pool string literals
'DebugInformationFormat': 3, # Generate a PDB
'WarningLevel': 3,
'BufferSecurityCheck': 'true',
'ExceptionHandling': 1, # /EHsc
'SuppressStartupBanner': 'true',
'WarnAsError': 'false',
'AdditionalOptions': [
'/MP', # compile across multiple CPUs
],
},
'VCLinkerTool': {
'GenerateDebugInformation': 'true',
'RandomizedBaseAddress': 2, # enable ASLR
'DataExecutionPrevention': 2, # enable DEP
'AllowIsolation': 'true',
'SuppressStartupBanner': 'true',
'target_conditions': [
['_type=="executable"', {
'SubSystem': 1, # console executable
}],
],
},
},

'xcode_settings': {
'ALWAYS_SEARCH_USER_PATHS': 'NO',
'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks
'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions
'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti
'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings
# GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics
'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof
'PREBINDING': 'NO', # No -Wl,-prebind
'USE_HEADERMAP': 'NO',
'WARNING_CFLAGS': [
'-Wall',
'-Wendif-labels',
'-W',
'-Wno-unused-parameter'
]
},

'conditions': [
['OS == "win"', {
'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin
'defines': [
'WIN32',
# we don't want VC++ warning us about how dangerous C functions are.
'_CRT_SECURE_NO_DEPRECATE',
# ... or that C implementations shouldn't use POSIX names
'_CRT_NONSTDC_NO_DEPRECATE'
],
}],

[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
'variables': {
'gcc_version%': '<!(python build/gcc_version.py)>)'
},
'cflags': [ '-Wall' ],
'cflags_cc': [ '-fno-rtti', '-fno-exceptions' ],
'conditions': [
[ 'host_arch != target_arch and target_arch=="ia32"', {
'cflags': [ '-m32' ],
'ldflags': [ '-m32' ]
}],
[ 'OS=="linux"', {
'cflags': [ '-ansi' ]
}],
[ 'visibility=="hidden" and gcc_version >= "4.0.0"', {
'cflags': [ '-fvisibility=hidden' ]
}],
]
}]
],

'target_conditions': [
['_type!="static_library"', {
'cflags': [ '-fPIC' ],
'xcode_settings': {
'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic
# (Equivalent to -fPIC)
'OTHER_LDFLAGS': [ '-Wl,-search_paths_first' ]
}
}]
]
}
}
Loading

0 comments on commit 81791ff

Please sign in to comment.