Handle IKEv1 NAT-T vendor ID payload (only RFC 3947 for now).
[strongswan.git] / Android.mk.in
index 40c0f29..2ffbe07 100644 (file)
@@ -1,11 +1,33 @@
 LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 
+# whether starter is built.  allows to control the daemons from the command line
+strongswan_BUILD_STARTER := false
+
+# whether pluto (IKEv1 daemon) is built.  charon (IKEv2) is always enabled
+strongswan_BUILD_PLUTO := false
+
 # this is the list of plugins that are built into libstrongswan and charon
 # also these plugins are loaded by default (if not changed in strongswan.conf)
-strongswan_PLUGINS := openssl fips-prf random pubkey pkcs1 \
+strongswan_CHARON_PLUGINS := openssl fips-prf random pubkey pkcs1 \
        pem xcbc hmac kernel-netlink socket-default android \
-       eap-identity eap-mschapv2 eap-md5
+       stroke eap-identity eap-mschapv2 eap-md5
+
+ifneq ($(strongswan_BUILD_PLUTO),)
+# if both daemons are enabled we use raw sockets in charon
+strongswan_CHARON_PLUGINS := $(subst socket-default,socket-raw, \
+                               $(strongswan_CHARON_PLUGINS))
+# plugins loaded by pluto
+strongswan_PLUTO_PLUGINS := openssl fips-prf random pubkey pkcs1 \
+       pem xcbc hmac kernel-netlink xauth
+endif
+
+strongswan_STARTER_PLUGINS := kernel-netlink
+
+# list of all plugins - used to enable them with the function below
+strongswan_PLUGINS := $(sort $(strongswan_CHARON_PLUGINS) \
+                            $(strongswan_PLUTO_PLUGINS) \
+                            $(strongswan_STARTER_PLUGINS))
 
 # helper macros to only add source files for plugins included in the list above
 # source files are relative to the android.mk that called the macro
@@ -25,6 +47,15 @@ strongswan_PATH := $(LOCAL_PATH)
 libvstr_PATH := external/strongswan-support/vstr/include
 libgmp_PATH := external/strongswan-support/gmp
 
+# some definitions
+strongswan_VERSION := "@PACKAGE_VERSION@"
+strongswan_DIR := "/system/bin"
+strongswan_SBINDIR := "/system/bin"
+strongswan_PIDDIR := "/data/misc/vpn"
+strongswan_PLUGINDIR := "$(strongswan_IPSEC_DIR)/ipsec"
+strongswan_CONFDIR := "/system/etc"
+strongswan_STRONGSWAN_CONF := "$(strongswan_CONFDIR)/strongswan.conf"
+
 # CFLAGS (partially from a configure run using droid-gcc)
 strongswan_CFLAGS := \
        -Wno-format \
@@ -51,14 +82,15 @@ strongswan_CFLAGS := \
        -DCAPABILITIES_NATIVE \
        -DMONOLITHIC \
        -DUSE_VSTR \
+       -DDEBUG \
        -DROUTING_TABLE=0 \
        -DROUTING_TABLE_PRIO=220 \
-       -DVERSION=\"@PACKAGE_VERSION@\" \
-       -DPLUGINS='"$(strongswan_PLUGINS)"' \
-       -DPLUGINDIR=\"/system/bin/ipsec\" \
-       -DIPSEC_DIR=\"/system/bin\" \
-       -DIPSEC_PIDDIR=\"/data/misc/vpn\" \
-       -DSTRONGSWAN_CONF=\"/system/etc/strongswan.conf\" \
+       -DVERSION=\"$(strongswan_VERSION)\" \
+       -DPLUGINDIR=\"$(strongswan_PLUGINDIR)\" \
+       -DIPSEC_DIR=\"$(strongswan_DIR)\" \
+       -DIPSEC_PIDDIR=\"$(strongswan_PIDDIR)\" \
+       -DIPSEC_CONFDIR=\"$(strongswan_CONFDIR)\" \
+       -DSTRONGSWAN_CONF=\"$(strongswan_STRONGSWAN_CONF)\" \
        -DDEV_RANDOM=\"/dev/random\" \
        -DDEV_URANDOM=\"/dev/urandom\"
 
@@ -66,10 +98,28 @@ strongswan_CFLAGS := \
 strongswan_CFLAGS += \
        -DHAVE_IN6ADDR_ANY
 
+strongswan_BUILD := \
+       charon \
+       libcharon \
+       libhydra \
+       libstrongswan \
+       libtncif \
+       libtnccs
+
+ifneq ($(strongswan_BUILD_STARTER),)
+strongswan_BUILD += \
+       libfreeswan \
+       starter \
+       stroke \
+       ipsec
+endif
+
+ifneq ($(strongswan_BUILD_PLUTO),)
+strongswan_BUILD += \
+       libfreeswan \
+       pluto \
+       whack
+endif
+
 include $(addprefix $(LOCAL_PATH)/src/,$(addsuffix /Android.mk, \
-               charon \
-               libcharon \
-               libhydra \
-               libstrongswan \
-               libtncif \
-       ))
+               $(sort $(strongswan_BUILD))))