diff --git a/Makefile.in b/Makefile.in index b6b009fb..d6de1af6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -136,7 +136,7 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) +DIST_SUBDIRS = libsodium libcork libipset libudns libev src DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -298,7 +298,8 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = libsodium libcork libipset libudns libev src +@USE_SYSTEM_SHARED_LIB_FALSE@SUBDIRS = libsodium libcork libipset libudns libev src +@USE_SYSTEM_SHARED_LIB_TRUE@SUBDIRS = libcork libipset src ACLOCAL_AMFLAGS = -I m4 man_MANS = man/shadowsocks-libev.8 man/ss-server.1 man/ss-local.1 man/ss-redir.1\ man/ss-manager.1 man/ss-tunnel.1 diff --git a/aclocal.m4 b/aclocal.m4 index ceaf07fe..40c7b557 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -175,6 +175,46 @@ AC_PREREQ([2.50])dnl am_aux_dir=`cd $ac_aux_dir && pwd` ]) +# AM_COND_IF -*- Autoconf -*- + +# Copyright (C) 2008, 2010 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_COND_IF +# _AM_COND_ELSE +# _AM_COND_ENDIF +# -------------- +# These macros are only used for tracing. +m4_define([_AM_COND_IF]) +m4_define([_AM_COND_ELSE]) +m4_define([_AM_COND_ENDIF]) + + +# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) +# --------------------------------------- +# If the shell condition COND is true, execute IF-TRUE, otherwise execute +# IF-FALSE. Allow automake to learn about conditional instantiating macros +# (the AC_CONFIG_FOOS). +AC_DEFUN([AM_COND_IF], +[m4_ifndef([_AM_COND_VALUE_$1], + [m4_fatal([$0: no such condition "$1"])])dnl +_AM_COND_IF([$1])dnl +if test -z "$$1_TRUE"; then : + m4_n([$2])[]dnl +m4_ifval([$3], +[_AM_COND_ELSE([$1])dnl +else + $3 +])dnl +_AM_COND_ENDIF([$1])dnl +fi[]dnl +]) + # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 diff --git a/configure b/configure index f43dd57c..1026c4ea 100755 --- a/configure +++ b/configure @@ -648,6 +648,8 @@ BUILD_WINCOMPAT_TRUE BUILD_REDIRECTOR_FALSE BUILD_REDIRECTOR_TRUE INET_NTOP_LIB +USE_SYSTEM_SHARED_LIB_FALSE +USE_SYSTEM_SHARED_LIB_TRUE CPP OTOOL64 OTOOL @@ -776,6 +778,7 @@ enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock +enable_system_shared_lib with_crypto_library enable_zlib with_zlib @@ -1433,6 +1436,8 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --enable-system-shared-lib + build against shared libraries when possible --disable-zlib disable zlib compression support --enable-applecc enable Apple CommonCrypto API support --disable-assert turn off assertions @@ -11735,6 +11740,27 @@ CC="$lt_save_CC" +# Check whether --enable-system-shared-lib was given. +if test "${enable_system_shared_lib+set}" = set; then : + enableval=$enable_system_shared_lib; + case "${enableval}" in + yes) enable_system_shared_lib=true ;; + no) enable_system_shared_lib=false ;; + *) as_fn_error $? "bad value ${enableval} for --enable-system-shared-lib" "$LINENO" 5 ;; + esac +else + enable_system_shared_lib=false +fi + + if test x$enable_system_shared_lib = xtrue; then + USE_SYSTEM_SHARED_LIB_TRUE= + USE_SYSTEM_SHARED_LIB_FALSE='#' +else + USE_SYSTEM_SHARED_LIB_TRUE='#' + USE_SYSTEM_SHARED_LIB_FALSE= +fi + + # Check whether --with-crypto-library was given. if test "${with_crypto_library+set}" = set; then : @@ -15517,8 +15543,11 @@ fi -subdirs="$subdirs libsodium" +if test -z "$USE_SYSTEM_SHARED_LIB_TRUE"; then : + else + subdirs="$subdirs libsodium" +fi ac_config_files="$ac_config_files shadowsocks-libev.pc Makefile libcork/Makefile libipset/Makefile libudns/Makefile libev/Makefile src/Makefile" @@ -15655,6 +15684,10 @@ if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${USE_SYSTEM_SHARED_LIB_TRUE}" && test -z "${USE_SYSTEM_SHARED_LIB_FALSE}"; then + as_fn_error $? "conditional \"USE_SYSTEM_SHARED_LIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/src/Makefile.in b/src/Makefile.in index a39892da..dfe6f217 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -53,12 +53,27 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +@USE_SYSTEM_SHARED_LIB_FALSE@am__append_1 = -I$(top_srcdir)/libev \ +@USE_SYSTEM_SHARED_LIB_FALSE@ -I$(top_srcdir)/libudns \ +@USE_SYSTEM_SHARED_LIB_FALSE@ -I$(top_srcdir)/libsodium/src/libsodium/include +@USE_SYSTEM_SHARED_LIB_TRUE@am__append_2 = -lev -lsodium -lm +@USE_SYSTEM_SHARED_LIB_FALSE@am__append_3 = $(top_builddir)/libev/libev.la \ +@USE_SYSTEM_SHARED_LIB_FALSE@ $(top_builddir)/libsodium/src/libsodium/libsodium.la + bin_PROGRAMS = ss-local$(EXEEXT) ss-tunnel$(EXEEXT) $(am__EXEEXT_1) \ $(am__EXEEXT_2) -@BUILD_WINCOMPAT_FALSE@am__append_1 = ss-server ss-manager -@BUILD_WINCOMPAT_TRUE@am__append_2 = win32.c -@BUILD_WINCOMPAT_TRUE@am__append_3 = win32.c -@BUILD_REDIRECTOR_TRUE@am__append_4 = ss-redir +@BUILD_WINCOMPAT_FALSE@am__append_4 = ss-server ss-manager +@USE_SYSTEM_SHARED_LIB_TRUE@am__append_5 = -ludns +@USE_SYSTEM_SHARED_LIB_TRUE@am__append_6 = -ludns +@USE_SYSTEM_SHARED_LIB_TRUE@am__append_7 = -ludns +@USE_SYSTEM_SHARED_LIB_FALSE@am__append_8 = $(top_builddir)/libudns/libudns.la +@USE_SYSTEM_SHARED_LIB_FALSE@am__append_9 = $(top_builddir)/libudns/libudns.la +@USE_SYSTEM_SHARED_LIB_FALSE@am__append_10 = $(top_builddir)/libudns/libudns.la +@BUILD_WINCOMPAT_TRUE@am__append_11 = win32.c +@BUILD_WINCOMPAT_TRUE@am__append_12 = win32.c +@BUILD_REDIRECTOR_TRUE@am__append_13 = ss-redir +@BUILD_REDIRECTOR_TRUE@@USE_SYSTEM_SHARED_LIB_TRUE@am__append_14 = -ludns +@BUILD_REDIRECTOR_TRUE@@USE_SYSTEM_SHARED_LIB_FALSE@am__append_15 = $(top_builddir)/libudns/libudns.la subdir = src DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in @@ -108,13 +123,11 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = -am__DEPENDENCIES_2 = $(top_builddir)/libev/libev.la \ - $(top_builddir)/libipset/libipset.la \ - $(top_builddir)/libcork/libcork.la \ - $(top_builddir)/libsodium/src/libsodium/libsodium.la \ - $(am__DEPENDENCIES_1) -am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) \ - $(top_builddir)/libudns/libudns.la +am__DEPENDENCIES_2 = $(top_builddir)/libipset/libipset.la \ + $(top_builddir)/libcork/libcork.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__append_3) +am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ + $(am__append_8) libshadowsocks_la_DEPENDENCIES = $(am__DEPENDENCIES_3) am__libshadowsocks_la_SOURCES_DIST = utils.c jconf.c json.c encrypt.c \ udprelay.c cache.c acl.c netutils.c hmac-sha1.c local.c \ @@ -150,8 +163,8 @@ am_ss_local_OBJECTS = ss_local-utils.$(OBJEXT) \ ss_local-netutils.$(OBJEXT) ss_local-hmac-sha1.$(OBJEXT) \ ss_local-local.$(OBJEXT) $(am__objects_3) ss_local_OBJECTS = $(am_ss_local_OBJECTS) -ss_local_DEPENDENCIES = $(am__DEPENDENCIES_2) \ - $(top_builddir)/libudns/libudns.la +ss_local_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ + $(am__append_8) ss_local_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ss_local_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -172,7 +185,7 @@ am__ss_redir_SOURCES_DIST = utils.c jconf.c json.c encrypt.c \ @BUILD_REDIRECTOR_TRUE@ ss_redir-redir.$(OBJEXT) ss_redir_OBJECTS = $(am_ss_redir_OBJECTS) @BUILD_REDIRECTOR_TRUE@ss_redir_DEPENDENCIES = $(am__DEPENDENCIES_2) \ -@BUILD_REDIRECTOR_TRUE@ $(top_builddir)/libudns/libudns.la +@BUILD_REDIRECTOR_TRUE@ $(am__DEPENDENCIES_1) $(am__append_15) ss_redir_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ss_redir_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -183,8 +196,8 @@ am_ss_server_OBJECTS = ss_server-utils.$(OBJEXT) \ ss_server-acl.$(OBJEXT) ss_server-resolv.$(OBJEXT) \ ss_server-hmac-sha1.$(OBJEXT) ss_server-server.$(OBJEXT) ss_server_OBJECTS = $(am_ss_server_OBJECTS) -ss_server_DEPENDENCIES = $(am__DEPENDENCIES_2) \ - $(top_builddir)/libudns/libudns.la +ss_server_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ + $(am__append_10) ss_server_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ss_server_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -198,8 +211,8 @@ am_ss_tunnel_OBJECTS = ss_tunnel-utils.$(OBJEXT) \ ss_tunnel-hmac-sha1.$(OBJEXT) ss_tunnel-tunnel.$(OBJEXT) \ $(am__objects_4) ss_tunnel_OBJECTS = $(am_ss_tunnel_OBJECTS) -ss_tunnel_DEPENDENCIES = $(am__DEPENDENCIES_2) \ - $(top_builddir)/libudns/libudns.la +ss_tunnel_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ + $(am__append_9) ss_tunnel_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ss_tunnel_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -369,20 +382,16 @@ top_srcdir = @top_srcdir@ VERSION_INFO = 1:0:0 AM_CFLAGS = -g -O2 -Wall -Werror -Wno-deprecated-declarations \ -fno-strict-aliasing -std=gnu99 -D_GNU_SOURCE \ - $(PTHREAD_CFLAGS) -I$(top_srcdir)/libev \ - -I$(top_srcdir)/libudns -I$(top_srcdir)/libipset/include \ - -I$(top_srcdir)/libcork/include \ - -I$(top_srcdir)/libsodium/src/libsodium/include -SS_COMMON_LIBS = $(top_builddir)/libev/libev.la \ - $(top_builddir)/libipset/libipset.la \ - $(top_builddir)/libcork/libcork.la \ - $(top_builddir)/libsodium/src/libsodium/libsodium.la \ - $(INET_NTOP_LIB) - + $(PTHREAD_CFLAGS) $(am__append_1) \ + -I$(top_srcdir)/libipset/include \ + -I$(top_srcdir)/libcork/include +SS_COMMON_LIBS = $(top_builddir)/libipset/libipset.la \ + $(top_builddir)/libcork/libcork.la $(INET_NTOP_LIB) \ + $(am__append_2) $(am__append_3) ss_local_SOURCES = utils.c jconf.c json.c encrypt.c udprelay.c cache.c \ - acl.c netutils.c hmac-sha1.c local.c $(am__append_2) + acl.c netutils.c hmac-sha1.c local.c $(am__append_11) ss_tunnel_SOURCES = utils.c jconf.c json.c encrypt.c udprelay.c \ - cache.c netutils.c hmac-sha1.c tunnel.c $(am__append_3) + cache.c netutils.c hmac-sha1.c tunnel.c $(am__append_12) ss_server_SOURCES = utils.c \ netutils.c \ jconf.c \ @@ -400,9 +409,9 @@ ss_manager_SOURCES = utils.c \ json.c \ manager.c -ss_local_LDADD = $(SS_COMMON_LIBS) $(top_builddir)/libudns/libudns.la -ss_tunnel_LDADD = $(SS_COMMON_LIBS) $(top_builddir)/libudns/libudns.la -ss_server_LDADD = $(SS_COMMON_LIBS) $(top_builddir)/libudns/libudns.la +ss_local_LDADD = $(SS_COMMON_LIBS) $(am__append_5) $(am__append_8) +ss_tunnel_LDADD = $(SS_COMMON_LIBS) $(am__append_6) $(am__append_9) +ss_server_LDADD = $(SS_COMMON_LIBS) $(am__append_7) $(am__append_10) ss_manager_LDADD = $(SS_COMMON_LIBS) ss_local_CFLAGS = $(AM_CFLAGS) -DUDPRELAY_LOCAL ss_tunnel_CFLAGS = $(AM_CFLAGS) -DUDPRELAY_LOCAL -DUDPRELAY_TUNNEL @@ -419,7 +428,7 @@ ss_server_CFLAGS = $(AM_CFLAGS) -DUDPRELAY_REMOTE @BUILD_REDIRECTOR_TRUE@ss_redir_CFLAGS = $(AM_CFLAGS) -DUDPRELAY_REDIR -DUDPRELAY_LOCAL @BUILD_REDIRECTOR_TRUE@ss_redir_LDADD = $(SS_COMMON_LIBS) \ -@BUILD_REDIRECTOR_TRUE@ $(top_builddir)/libudns/libudns.la +@BUILD_REDIRECTOR_TRUE@ $(am__append_14) $(am__append_15) lib_LTLIBRARIES = libshadowsocks.la libshadowsocks_la_SOURCES = $(ss_local_SOURCES) libshadowsocks_la_CFLAGS = $(ss_local_CFLAGS) -DLIB_ONLY