ipsec-tools.mk 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #############################################################
  2. #
  3. # ipsec-tools
  4. #
  5. #############################################################
  6. IPSEC_TOOLS_VERSION:=0.6.7
  7. IPSEC_TOOLS_SOURCE:=ipsec-tools-$(IPSEC_TOOLS_VERSION).tar.bz2
  8. IPSEC_TOOLS_CAT:=$(BZCAT)
  9. IPSEC_TOOLS_DIR:=$(BUILD_DIR)/ipsec-tools-$(IPSEC_TOOLS_VERSION)
  10. IPSEC_TOOLS_BINARY_SETKEY:=src/setkey/setkey
  11. IPSEC_TOOLS_BINARY_RACOON:=src/racoon/racoon
  12. IPSEC_TOOLS_BINARY_RACOONCTL:=src/racoon/racoonctl
  13. IPSEC_TOOLS_TARGET_BINARY_SETKEY:=usr/sbin/setkey
  14. IPSEC_TOOLS_TARGET_BINARY_RACOON:=usr/sbin/racoon
  15. IPSEC_TOOLS_TARGET_BINARY_RACOONCTL:=usr/sbin/racoonctl
  16. IPSEC_TOOLS_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/ipsec-tools/
  17. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_ADMINPORT)), y)
  18. IPSEC_TOOLS_CONFIG_FLAGS+= --enable-adminport
  19. else
  20. IPSEC_TOOLS_CONFIG_FLAGS+= --disable-adminport
  21. endif
  22. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_NATT)), y)
  23. IPSEC_TOOLS_CONFIG_FLAGS+= --enable-natt
  24. else
  25. IPSEC_TOOLS_CONFIG_FLAGS+= --disable-natt
  26. endif
  27. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_FRAG)), y)
  28. IPSEC_TOOLS_CONFIG_FLAGS+= --enable-frag
  29. else
  30. IPSEC_TOOLS_CONFIG_FLAGS+= --disable-frag
  31. endif
  32. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_STATS)), y)
  33. IPSEC_TOOLS_CONFIG_FLAGS+= --enable-stats
  34. else
  35. IPSEC_TOOLS_CONFIG_FLAGS+= --disable-stats
  36. endif
  37. ifeq ($(BR2_INET_IPV6),y)
  38. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_IPV6)), y)
  39. IPSEC_TOOLS_CONFIG_FLAGS+= --enable-ipv6
  40. else
  41. IPSEC_TOOLS_CONFIG_FLAGS+= $(DISABLE_IPV6)
  42. endif
  43. else # ignore user's choice if it doesn't
  44. IPSEC_TOOLS_CONFIG_FLAGS+= $(DISABLE_IPV6)
  45. endif
  46. ifneq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_READLINE)), y)
  47. IPSEC_TOOLS_CONFIG_FLAGS+= --without-readline
  48. endif
  49. $(DL_DIR)/$(IPSEC_TOOLS_SOURCE):
  50. $(WGET) -P $(DL_DIR) $(IPSEC_TOOLS_SITE)/$(IPSEC_TOOLS_SOURCE)
  51. $(IPSEC_TOOLS_DIR)/.patched: $(DL_DIR)/$(IPSEC_TOOLS_SOURCE)
  52. $(IPSEC_TOOLS_CAT) $(DL_DIR)/$(IPSEC_TOOLS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  53. toolchain/patch-kernel.sh $(IPSEC_TOOLS_DIR) package/ipsec-tools ipsec-tools-$(IPSEC_TOOLS_VERSION)\*.patch
  54. $(CONFIG_UPDATE) $(IPSEC_TOOLS_DIR)
  55. touch $@
  56. $(IPSEC_TOOLS_DIR)/.configured: $(IPSEC_TOOLS_DIR)/.patched
  57. ( cd $(IPSEC_TOOLS_DIR); rm -rf config.cache; \
  58. $(TARGET_CONFIGURE_OPTS) \
  59. $(TARGET_CONFIGURE_ARGS) \
  60. ./configure \
  61. --target=$(GNU_TARGET_NAME) \
  62. --host=$(GNU_TARGET_NAME) \
  63. --build=$(GNU_HOST_NAME) \
  64. --prefix=/usr \
  65. --sysconfdir=/etc \
  66. --disable-hybrid \
  67. --without-libpam \
  68. --disable-gssapi \
  69. --with-kernel-headers=$(STAGING_DIR)/usr/include \
  70. $(IPSEC_TOOLS_CONFIG_FLAGS) \
  71. )
  72. # simpler than patching that cruft..
  73. (echo '#undef bzero'; \
  74. echo '#define bzero(a, b) memset((a), 0, (b))'; \
  75. echo '#undef bcopy'; \
  76. echo '#define bcopy(src, dest, len) memmove(dest, src, len)'; \
  77. echo '#undef index'; \
  78. echo '#define index(a, b) strchr(a, b)'; \
  79. ) >> $(IPSEC_TOOLS_DIR)/config.h
  80. touch $@
  81. $(IPSEC_TOOLS_DIR)/$(IPSEC_TOOLS_BINARY_SETKEY) \
  82. $(IPSEC_TOOLS_DIR)/$(IPSEC_TOOLS_BINARY_RACOON) \
  83. $(IPSEC_TOOLS_DIR)/$(IPSEC_TOOLS_BINARY_RACOONCTL): \
  84. $(IPSEC_TOOLS_DIR)/.configured
  85. $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(IPSEC_TOOLS_DIR)
  86. $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_SETKEY) \
  87. $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOON) \
  88. $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOONCTL): \
  89. $(IPSEC_TOOLS_DIR)/$(IPSEC_TOOLS_BINARY_SETKEY) \
  90. $(IPSEC_TOOLS_DIR)/$(IPSEC_TOOLS_BINARY_RACOON) \
  91. $(IPSEC_TOOLS_DIR)/$(IPSEC_TOOLS_BINARY_RACOONCTL)
  92. $(MAKE) -C $(IPSEC_TOOLS_DIR) DESTDIR=$(TARGET_DIR) install
  93. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(REMOVE_SECTION_COMMENT) \
  94. $(REMOVE_SECTION_NOTE) \
  95. $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_SETKEY) \
  96. $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOON) \
  97. $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOONCTL)
  98. ifneq ($(BR2_HAVE_MANPAGES),y)
  99. rm -f $(addprefix $(TARGET_DIR)/usr/man/, \
  100. man3/ipsec_strerror.3 man3/ipsec_set_policy.3 \
  101. man5/racoon.conf.5 \
  102. man8/racoonctl.8 man8/racoon.8 \
  103. man8/plainrsa-gen.8 man8/setkey.8)
  104. endif
  105. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_LIBS)), y)
  106. install -D $(addprefix $(IPSEC_TOOLS_DIR)/src/, \
  107. libipsec/.libs/libipsec.a libipsec/.libs/libipsec.la \
  108. racoon/.libs/libracoon.a racoon/.libs/libracoon.la) \
  109. $(STAGING_DIR)/lib
  110. endif
  111. ifneq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_ADMINPORT)), y)
  112. rm -f $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOONCTL)
  113. endif
  114. IPSEC_TOOLS_PROGS= $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_SETKEY) \
  115. $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOON)
  116. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_ADMINPORT)), y)
  117. IPSEC_TOOLS_PROGS+= $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOONCTL)
  118. endif
  119. ipsec-tools: uclibc openssl flex $(IPSEC_TOOLS_PROGS)
  120. ipsec-tools-source: $(DL_DIR)/$(IPSEC_TOOLS_SOURCE)
  121. ipsec-tools-uninstall:
  122. ipsec-tools-clean:
  123. $(MAKE) -C $(IPSEC_TOOLS_DIR) DESTDIR=$(TARGET_DIR) uninstall
  124. $(MAKE) -C $(IPSEC_TOOLS_DIR) clean
  125. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_LIBS)),y)
  126. rm -f $(addprefix $(STAGING_DIR)/lib/, \
  127. libipsec.a libipsec.la libracoon.a libracoon.la)
  128. endif
  129. rm -f $(IPSEC_TOOLS_DIR)/.configured
  130. ipsec-tools-dirclean:
  131. @echo $(LINUX_DIR)
  132. rm -rf $(IPSEC_TOOLS_DIR)
  133. ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS)), y)
  134. TARGETS+=ipsec-tools
  135. endif