samba.mk 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #############################################################
  2. #
  3. # samba
  4. #
  5. #############################################################
  6. SAMBA_VERSION:=3.3.4
  7. SAMBA_SOURCE:=samba-$(SAMBA_VERSION).tar.gz
  8. SAMBA_SITE:=http://samba.org/samba/ftp/stable/
  9. SAMBA_DIR:=$(BUILD_DIR)/samba-$(SAMBA_VERSION)/source
  10. SAMBA_CAT:=$(ZCAT)
  11. SAMBA_BINARY:=bin/smbd
  12. SAMBA_TARGET_BINARY:=usr/sbin/smbd
  13. $(DL_DIR)/$(SAMBA_SOURCE):
  14. $(call DOWNLOAD,$(SAMBA_SITE),$(SAMBA_SOURCE))
  15. $(SAMBA_DIR)/.unpacked: $(DL_DIR)/$(SAMBA_SOURCE)
  16. $(SAMBA_CAT) $(DL_DIR)/$(SAMBA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  17. toolchain/patch-kernel.sh `dirname $(SAMBA_DIR)` package/samba/ samba\*.patch
  18. $(CONFIG_UPDATE) $(SAMBA_DIR)
  19. touch $@
  20. $(SAMBA_DIR)/.configured: $(SAMBA_DIR)/.unpacked
  21. (cd $(SAMBA_DIR); rm -rf config.cache; \
  22. ./autogen.sh; \
  23. $(TARGET_CONFIGURE_OPTS) \
  24. $(TARGET_CONFIGURE_ARGS) \
  25. samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \
  26. samba_cv_USE_SETREUID=yes \
  27. samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes \
  28. samba_cv_HAVE_IFACE_IFCONF=yes \
  29. samba_cv_HAVE_MMAP=yes \
  30. samba_cv_HAVE_FCNTL_LOCK=yes \
  31. samba_cv_HAVE_SECURE_MKSTEMP=yes \
  32. samba_cv_HAVE_NATIVE_ICONV=no \
  33. samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \
  34. samba_cv_fpie=no \
  35. libreplace_cv_HAVE_IPV6=$(if $(BR2_INET_IPV6),yes,no) \
  36. ./configure \
  37. --target=$(GNU_TARGET_NAME) \
  38. --host=$(GNU_TARGET_NAME) \
  39. --build=$(GNU_HOST_NAME) \
  40. --prefix=/usr \
  41. --localstatedir=/var \
  42. --with-lockdir=/var/cache/samba \
  43. --with-piddir=/var/run \
  44. --with-privatedir=/etc/samba \
  45. --with-logfilebase=/var/log/samba \
  46. --with-configdir=/etc/samba \
  47. --with-libiconv=$(STAGING_DIR) \
  48. --without-ldap \
  49. --without-ads \
  50. --without-acl \
  51. --with-included-popt \
  52. --with-included-iniparser \
  53. --disable-shared-libs \
  54. --disable-static \
  55. --disable-cups \
  56. $(DISABLE_LARGEFILE) \
  57. )
  58. touch $@
  59. $(SAMBA_DIR)/$(SAMBA_BINARY): $(SAMBA_DIR)/.configured
  60. # make proto must be done before make to be parallel safe
  61. $(MAKE) -C $(SAMBA_DIR) proto
  62. $(MAKE) -C $(SAMBA_DIR)
  63. SAMBA_TARGETS_ :=
  64. SAMBA_TARGETS_y :=
  65. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_CIFS) += usr/sbin/mount.cifs \
  66. usr/sbin/umount.cifs
  67. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_EVENTLOGADM) += usr/bin/eventlogadm
  68. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_FINDSMB) += usr/bin/findsmb
  69. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_NET) += usr/bin/net
  70. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_NMBD) += usr/sbin/nmbd
  71. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_NMBLOOKUP) += usr/bin/nmblookup
  72. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_NTLM_AUTH) += usr/bin/ntlm_auth
  73. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_PDBEDIT) += usr/bin/pdbedit
  74. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_PROFILES) += usr/bin/profiles
  75. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_RPCCLIENT) += usr/bin/rpcclient
  76. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBCACLS) += usr/bin/smbcacls
  77. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBCLIENT) += usr/bin/smbclient
  78. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBCONTROL) += usr/bin/smbcontrol
  79. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBCQUOTAS) += usr/bin/smbcquotas
  80. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBGET) += usr/bin/smbget
  81. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBPASSWD) += usr/bin/smbpasswd
  82. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBSPOOL) += usr/bin/smbspool
  83. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBSTATUS) += usr/bin/smbstatus
  84. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBTAR) += usr/bin/smbtar
  85. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SMBTREE) += usr/bin/smbtree
  86. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_SWAT) += usr/sbin/swat
  87. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_TDB) += usr/bin/tdbbackup \
  88. usr/bin/tdbdump \
  89. usr/bin/tdbtool
  90. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_TESTPARM) += usr/bin/testparm
  91. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_WINBINDD) += usr/sbin/winbindd
  92. SAMBA_TARGETS_$(BR2_PACKAGE_SAMBA_WBINFO) += usr/bin/wbinfo
  93. $(TARGET_DIR)/$(SAMBA_TARGET_BINARY): $(SAMBA_DIR)/$(SAMBA_BINARY)
  94. $(MAKE) $(TARGET_CONFIGURE_OPTS) \
  95. prefix="${TARGET_DIR}/usr" \
  96. BASEDIR="${TARGET_DIR}/usr" \
  97. SBINDIR="${TARGET_DIR}/usr/sbin" \
  98. LOCKDIR="${TARGET_DIR}/var/cache/samba" \
  99. PRIVATEDIR="${TARGET_DIR}/etc/samba" \
  100. CONFIGDIR="${TARGET_DIR}/etc/samba" \
  101. VARDIR="${TARGET_DIR}/var/log/samba" \
  102. -C $(SAMBA_DIR) installlibs installservers installbin installcifsmount installscripts
  103. # Do not install the LDAP-like embedded database tools
  104. rm -f $(addprefix $(TARGET_DIR)/usr/bin/ldb, add del edit modify search)
  105. # Remove not used library by Samba binaries
  106. rm -f $(TARGET_DIR)/usr/lib/libnetapi*
  107. rm -f $(TARGET_DIR)/usr/lib/libsmbclient*
  108. rm -f $(TARGET_DIR)/usr/lib/libtalloc*
  109. rm -f $(TARGET_DIR)/usr/lib/libtdb*
  110. # Remove not wanted Samba binaries
  111. for file in $(SAMBA_TARGETS_); do \
  112. rm -f $(TARGET_DIR)/$$file; \
  113. done
  114. # Strip the wanted Samba binaries
  115. $(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/$(SAMBA_TARGET_BINARY)
  116. for file in $(SAMBA_TARGETS_y); do \
  117. $(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/$$file; \
  118. done
  119. ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y)
  120. cp -dpfr $(SAMBA_DIR)/../swat $(TARGET_DIR)/usr/
  121. endif
  122. $(INSTALL) -m 0755 package/samba/S91smb $(TARGET_DIR)/etc/init.d
  123. @if [ ! -f $(TARGET_DIR)/etc/samba/smb.conf ]; then \
  124. $(INSTALL) -m 0755 -D package/samba/simple.conf $(TARGET_DIR)/etc/samba/smb.conf; \
  125. fi
  126. rm -rf $(TARGET_DIR)/var/cache/samba
  127. rm -rf $(TARGET_DIR)/var/lib/samba
  128. samba: libiconv $(TARGET_DIR)/$(SAMBA_TARGET_BINARY)
  129. samba-source: $(DL_DIR)/$(SAMBA_SOURCE)
  130. samba-unpacked: $(SAMBA_DIR)/.unpacked
  131. samba-clean:
  132. rm -f $(TARGET_DIR)/$(SAMBA_TARGET_BINARY)
  133. for file in $(SAMBA_TARGETS_y); do \
  134. rm -f $(TARGET_DIR)/$$file; \
  135. done
  136. rm -f $(TARGET_DIR)/etc/init.d/S91smb
  137. rm -rf $(TARGET_DIR)/etc/samba
  138. -$(MAKE) -C $(SAMBA_DIR) clean
  139. samba-dirclean:
  140. rm -rf $(SAMBA_DIR)
  141. #############################################################
  142. #
  143. # Toplevel Makefile options
  144. #
  145. #############################################################
  146. ifeq ($(BR2_PACKAGE_SAMBA),y)
  147. TARGETS+=samba
  148. endif