summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorSeonah Moon <seonah1.moon@samsung.com>2020-12-15 19:56:19 +0900
committerSeonah Moon <seonah1.moon@samsung.com>2020-12-15 19:58:58 +0900
commitbff27be9aa171a5afc25df79cd652337aa1ecbb0 (patch)
treebdfd96ad0138ccded52d4194d101dcc3eb7d959b /INSTALL
parent8e609b5f488d486a9e066ed494218d966f489938 (diff)
downloadc-ares-bff27be9aa171a5afc25df79cd652337aa1ecbb0.tar.gz
c-ares-bff27be9aa171a5afc25df79cd652337aa1ecbb0.tar.bz2
c-ares-bff27be9aa171a5afc25df79cd652337aa1ecbb0.zip
Imported Upstream version 1.17.1upstream/1.17.1
Change-Id: Ifb18ec521bbeaf8bac560e0588657f136ca93e5d
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL328
1 files changed, 0 insertions, 328 deletions
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index c78487d..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,328 +0,0 @@
-** This file is adapted from libcurl and not yet fully rewritten for c-ares! **
-
- ___ __ _ _ __ ___ ___
- / __| ___ / _` | '__/ _ \/ __|
- | (_ |___| (_| | | | __/\__ \
- \___| \__,_|_| \___||___/
-
- How To Compile
-
-Installing Binary Packages
-==========================
-
- Lots of people download binary distributions of c-ares. This document
- does not describe how to install c-ares using such a binary package.
- This document describes how to compile, build and install c-ares from
- source code.
-
-Building from git
-=================
-
- If you get your code off a git repository, see the GIT-INFO file in the
- root directory for specific instructions on how to proceed.
-
-UNIX
-====
- A normal unix installation is made in three or four steps (after you've
- unpacked the source archive):
-
- ./configure
- make
- make ahost adig acountry (optional)
- make install
-
- You probably need to be root when doing the last command.
-
- If you have checked out the sources from the git repository, read the
- GIT-INFO on how to proceed.
-
- Get a full listing of all available configure options by invoking it like:
-
- ./configure --help
-
- If you want to install c-ares in a different file hierarchy than /usr/local,
- you need to specify that already when running configure:
-
- ./configure --prefix=/path/to/c-ares/tree
-
- If you happen to have write permission in that directory, you can do 'make
- install' without being root. An example of this would be to make a local
- install in your own home directory:
-
- ./configure --prefix=$HOME
- make
- make install
-
- MORE OPTIONS
- ------------
-
- To force configure to use the standard cc compiler if both cc and gcc are
- present, run configure like
-
- CC=cc ./configure
- or
- env CC=cc ./configure
-
- To force a static library compile, disable the shared library creation
- by running configure like:
-
- ./configure --disable-shared
-
- If you're a c-ares developer and use gcc, you might want to enable more
- debug options with the --enable-debug option.
-
- SPECIAL CASES
- -------------
- Some versions of uClibc require configuring with CPPFLAGS=-D_GNU_SOURCE=1
- to get correct large file support.
-
- The Open Watcom C compiler on Linux requires configuring with the variables:
-
- ./configure CC=owcc AR="$WATCOM/binl/wlib" AR_FLAGS=-q \
- RANLIB=/bin/true STRIP="$WATCOM/binl/wstrip" CFLAGS=-Wextra
-
-
-Win32
-=====
-
- Building Windows DLLs and C run-time (CRT) linkage issues
- ---------------------------------------------------------
-
- As a general rule, building a DLL with static CRT linkage is highly
- discouraged, and intermixing CRTs in the same app is something to
- avoid at any cost.
-
- Reading and comprehension of Microsoft Knowledge Base articles
- KB94248 and KB140584 is a must for any Windows developer. Especially
- important is full understanding if you are not going to follow the
- advice given above.
-
- KB94248 - How To Use the C Run-Time
- http://support.microsoft.com/kb/94248/en-us
-
- KB140584 - How to link with the correct C Run-Time (CRT) library
- http://support.microsoft.com/kb/140584/en-us
-
- KB190799 - Potential Errors Passing CRT Objects Across DLL Boundaries
- http://msdn.microsoft.com/en-us/library/ms235460
-
- If your app is misbehaving in some strange way, or it is suffering
- from memory corruption, before asking for further help, please try
- first to rebuild every single library your app uses as well as your
- app using the debug multithreaded dynamic C runtime.
-
- MingW32
- -------
-
- Make sure that MinGW32's bin dir is in the search path, for example:
-
- set PATH=c:\mingw32\bin;%PATH%
-
- then run 'make -f Makefile.m32' in the root dir.
-
- Cygwin
- ------
-
- Almost identical to the unix installation. Run the configure script in the
- c-ares root with 'sh configure'. Make sure you have the sh executable in
- /bin/ or you'll see the configure fail toward the end.
-
- Run 'make'
-
- Dev-Cpp
- -------
-
- See the separate INSTALL.devcpp file for details.
-
- MSVC 6 caveats
- --------------
-
- If you use MSVC 6 it is required that you use the February 2003 edition PSDK:
- http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-
- MSVC from command line
- ----------------------
-
- Run the 'vcvars32.bat' file to get a proper environment. The
- vcvars32.bat file is part of the Microsoft development environment and
- you may find it in 'C:\Program Files\Microsoft Visual Studio\vc98\bin'
- provided that you installed Visual C/C++ 6 in the default directory.
-
- Further details in README.msvc
-
- MSVC IDES
- ---------
-
- Details in README.msvc
-
- Important static c-ares usage note
- ----------------------------------
-
- When building an application that uses the static c-ares library, you must
- add '-DCARES_STATICLIB' to your CFLAGS. Otherwise the linker will look for
- dynamic import symbols.
-
-
-IBM OS/2
-========
- Building under OS/2 is not much different from building under unix.
- You need:
-
- - emx 0.9d
- - GNU make
- - GNU patch
- - ksh
- - GNU bison
- - GNU file utilities
- - GNU sed
- - autoconf 2.13
-
- If during the linking you get an error about _errno being an undefined
- symbol referenced from the text segment, you need to add -D__ST_MT_ERRNO__
- in your definitions.
-
- If you're getting huge binaries, probably your makefiles have the -g in
- CFLAGS.
-
-
-QNX
-===
- (This section was graciously brought to us by David Bentham)
-
- As QNX is targeted for resource constrained environments, the QNX headers
- set conservative limits. This includes the FD_SETSIZE macro, set by default
- to 32. Socket descriptors returned within the c-ares library may exceed this,
- resulting in memory faults/SIGSEGV crashes when passed into select(..)
- calls using fd_set macros.
-
- A good all-round solution to this is to override the default when building
- c-ares, by overriding CFLAGS during configure, example
- # configure CFLAGS='-DFD_SETSIZE=64 -g -O2'
-
-
-RISC OS
-=======
- The library can be cross-compiled using gccsdk as follows:
-
- CC=riscos-gcc AR=riscos-ar RANLIB='riscos-ar -s' ./configure \
- --host=arm-riscos-aof --without-random --disable-shared
- make
-
- where riscos-gcc and riscos-ar are links to the gccsdk tools.
- You can then link your program with c-ares/lib/.libs/libcares.a
-
-
-NetWare
-=======
- To compile libcares.a / libcares.lib you need:
- - either any gcc / nlmconv, or CodeWarrior 7 PDK 4 or later.
- - gnu make and awk running on the platform you compile on;
- native Win32 versions can be downloaded from:
- http://www.gknw.net/development/prgtools/
- - recent Novell LibC SDK available from:
- http://developer.novell.com/ndk/libc.htm
- - or recent Novell CLib SDK available from:
- http://developer.novell.com/ndk/clib.htm
-
- Set a search path to your compiler, linker and tools; on Linux make
- sure that the var OSTYPE contains the string 'linux'; set the var
- NDKBASE to point to the base of your Novell NDK; and then type
- 'make -f Makefile.netware' from the top source directory;
-
-
-Android
-=======
- Method using a configure cross-compile (tested with Android NDK r7b):
- - prepare the toolchain of the Android NDK for standalone use; this can
- be done by invoking the script:
- ./tools/make-standalone-toolchain.sh
- which creates a usual cross-compile toolchain. Lets assume that you put
- this toolchain below /opt then invoke configure with something like:
- export PATH=/opt/arm-linux-androideabi-4.4.3/bin:$PATH
- ./configure --host=arm-linux-androideabi [more configure options]
- make
- - if you want to compile directly from our GIT repo you might run into
- this issue with older automake stuff:
- checking host system type...
- Invalid configuration `arm-linux-androideabi':
- system `androideabi' not recognized
- configure: error: /bin/sh ./config.sub arm-linux-androideabi failed
- this issue can be fixed with using more recent versions of config.sub
- and config.guess which can be obtained here:
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree
- you need to replace your system-own versions which usually can be
- found in your automake folder:
- find /usr -name config.sub
-
-
-CROSS COMPILE
-=============
- (This section was graciously brought to us by Jim Duey, with additions by
- Dan Fandrich)
-
- Download and unpack the c-ares package.
-
- 'cd' to the new directory. (e.g. cd c-ares-1.7.6)
-
- Set environment variables to point to the cross-compile toolchain and call
- configure with any options you need. Be sure and specify the '--host' and
- '--build' parameters at configuration time. The following script is an
- example of cross-compiling for the IBM 405GP PowerPC processor using the
- toolchain from MonteVista for Hardhat Linux.
-
- (begin script)
-
- #! /bin/sh
-
- export PATH=$PATH:/opt/hardhat/devkit/ppc/405/bin
- export CPPFLAGS="-I/opt/hardhat/devkit/ppc/405/target/usr/include"
- export AR=ppc_405-ar
- export AS=ppc_405-as
- export LD=ppc_405-ld
- export RANLIB=ppc_405-ranlib
- export CC=ppc_405-gcc
- export NM=ppc_405-nm
-
- ./configure --target=powerpc-hardhat-linux \
- --host=powerpc-hardhat-linux \
- --build=i586-pc-linux-gnu \
- --prefix=/opt/hardhat/devkit/ppc/405/target/usr/local \
- --exec-prefix=/usr/local
-
- (end script)
-
- You may also need to provide a parameter like '--with-random=/dev/urandom'
- to configure as it cannot detect the presence of a random number
- generating device for a target system. The '--prefix' parameter
- specifies where c-ares will be installed. If 'configure' completes
- successfully, do 'make' and 'make install' as usual.
-
- In some cases, you may be able to simplify the above commands to as
- little as:
-
- ./configure --host=ARCH-OS
-
-
-PORTS
-=====
- This is a probably incomplete list of known hardware and operating systems
- that c-ares has been compiled for. If you know a system c-ares compiles and
- runs on, that isn't listed, please let us know!
-
- - Alpha Tru64 v5.0 5.1
- - ARM Android 1.5, 2.1, 2.3
- - MIPS IRIX 6.2, 6.5
- - Power AIX 3.2.5, 4.2, 4.3.1, 4.3.2, 5.1, 5.2
- - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4, 2.6
- - i386 Novell NetWare
- - i386 Windows 95, 98, ME, NT, 2000, XP, 2003
- - x86_64 Linux
-
-Useful URLs
-===========
-
-c-ares https://c-ares.haxx.se/
-
-MingW http://www.mingw.org/
-MinGW-w64 http://mingw-w64.sourceforge.net/
-OpenWatcom http://www.openwatcom.org/