1## 2# Makefile for OpenLDAP 3## 4 5# Project info 6Project = OpenLDAP 7ProjectName = OpenLDAP 8UserType = Administrator 9ToolType = Commands 10 11MACOSX_DEPLOYMENT_TARGET ?= $(shell "$(SRCROOT)/os.sh") 12RC_ProjectSourceVersion ?= 999 13PROJVERSION = $(RC_ProjectSourceVersion) 14 15ifeq ($(strip $(PROJVERSION)),) 16PROJVERSION = 999 17endif 18 19Extra_CC_Flags = -DLDAP_RESPONSE_RB_TREE=1 -DLDAP_DEPRECATED=1 -DLDAP_CONNECTIONLESS=1 -DSLAP_DYNACL=1 -DUSES_KRBNAME=1 -DTGT_OS_VERSION="\\\"$(MACOSX_DEPLOYMENT_TARGET)\\\"" -DPROJVERSION="\\\"$(PROJVERSION)\\\"" -I/usr/local/BerkeleyDB/include -I/usr/include/krb5 -I${SRCROOT}/OpenLDAP/include -I${OBJROOT}/include -I${SRCROOT}/OpenLDAP/libraries/libldap -I${SRCROOT}/OpenLDAP/servers/slapd -I/usr/include/sasl -fno-common 20Extra_LD_Flags = -L${OBJROOT}/libraries -L/usr/local/BerkeleyDB/lib/ 21Extra_Environment = CPPFLAGS="-I/usr/include/sasl -I/usr/local/BerkeleyDB/include" 22Extra_Environment += AR=${SRCROOT}/ar.sh 23 24ifeq "$(DSS_BUILD_PARALLEL)" "yes" 25ncpus = $(shell sysctl hw.ncpu | awk '{print $$2}') 26Extra_Make_Flags += -j$(ncpus) 27endif 28 29ifeq "$(RC_ProjectName)" "LDAPFramework" 30GnuAfterInstall = apple_framework 31else 32GnuAfterInstall = apple_port 33endif 34 35include $(MAKEFILEPATH)/CoreOS/ReleaseControl/GNUSource.make 36 37Extra_Configure_Flags = --disable-shared --disable-cleartext --enable-bdb --x-libraries=/usr/local/BerkeleyDB/lib 38Extra_Configure_Flags += --prefix=${DSTROOT}/private --sysconfdir=${DSTROOT}/private/etc --localstatedir=${DSTROOT}/private/var/db/openldap --enable-aci=yes 39#Extra_Configure_Flags += DESTDIR="${DSTROOT}" --bindir="$(BINDIR)" --sbindir="$(SBINDIR)" --libexecdir="/usr/libexec" --datadir="$(SHAREDIR)/openldap" --sysconfdir="$(ETCDIR)" --localstatedir="${VARDIR}/db/openldap" 40Extra_Configure_Flags += --enable-overlays=yes --enable-dynid=yes --enable-auditlog=yes --enable-unique=yes --enable-odlocales=yes --enable-odusers=yes 41Install_Target = install 42 43Extra_CC_Flags += -F/System/Library/PrivateFrameworks -F/System/Library/Frameworks/OpenDirectory.framework/Frameworks 44Extra_LD_Libraries += -framework CoreFoundation -framework Security -framework SystemConfiguration -framework IOKit 45ifeq "$(RC_ProjectName)" "LDAPFramework" 46Extra_LD_Libraries += 47else 48Extra_LD_Libraries += -framework Heimdal -framework OpenDirectory -framework HeimODAdmin -framework CommonAuth -lpac -framework PasswordServer -framework AccountPolicy 49endif 50Extra_Configure_Flags += --enable-local --enable-crypt --with-tls --program-transform-name="s/^sl/ni-sl/" 51 52Extra_CC_Flags += -isysroot ${SDKROOT} 53 54ifeq "$(RC_ProjectName)" "LDAPFramework" 55Extra_Configure_Flags += --enable-slapd="no" 56else 57Extra_Configure_Flags += --enable-slapd="yes" 58endif 59 60ORDERFILE=${SRCROOT}/AppleExtras/LDAP.order 61ifeq "$(shell test -f $(ORDERFILE) && echo YES )" "YES" 62 LDAP_SECTORDER_FLAGS=-sectorder __TEXT __text $(ORDERFILE) 63else 64 LDAP_SECTORDER_FLAGS= 65endif 66 67apple_port: 68 cp ${OBJROOT}/servers/slapd/slapd ${SYMROOT}/slapd 69 dsymutil ${SYMROOT}/slapd 70 for client in `ls ${OBJROOT}/clients/tools/`; do \ 71 if [ ! -f ${OBJROOT}/clients/tools/$$client ]; then \ 72 continue; \ 73 fi; \ 74 isobj=`echo $$client | grep -c "\.[o,c]"`; \ 75 if [ "$$isobj" == "0" ]; then \ 76 cp ${OBJROOT}/clients/tools/$$client ${SYMROOT}/; \ 77 dsymutil ${SYMROOT}/$$client; \ 78 fi; \ 79 done 80 mkdir -p $(DSTROOT)/usr/local/OpenSourceLicenses/ 81 cp $(SRCROOT)/OpenLDAP/LICENSE $(DSTROOT)/usr/local/OpenSourceLicenses/OpenLDAP.txt 82 mkdir -p $(DSTROOT)/usr/local/OpenSourceVersions/ 83 cp $(SRCROOT)/AppleExtras/Resources/OpenLDAP.plist $(DSTROOT)/usr/local/OpenSourceVersions/ 84 mkdir -p $(DSTROOT)/System/Library/LaunchDaemons 85 cp $(SRCROOT)/AppleExtras/Resources/org.openldap.slapd.plist $(DSTROOT)/System/Library/LaunchDaemons 86 rm -rf ${DSTROOT}/usr/include # remove includes from server target 87 rm -rf ${DSTROOT}/usr/local/include # remove local includes from server target 88 rm -f ${DSTROOT}/private/etc/openldap/slapd.ldif* # remove unused files from server target 89 90apple_framework: 91 rm -rf ${OBJROOT}/libraries/liblber/*test.o 92 rm -rf ${OBJROOT}/libraries/libldap/*test.o 93 rm -rf ${OBJROOT}/libraries/libldap_r/*test.o 94 xcrun cc ${RC_CFLAGS} -install_name /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP -compatibility_version 1.0.0 -current_version 2.4.0 \ 95 -o ${SYMROOT}/LDAP ${LDAP_SECTORDER_FLAGS} ${OBJROOT}/libraries/liblber/*.o ${OBJROOT}/libraries/libldap_r/*.o \ 96 -lsasl2 -framework Security -F/System/Library/PrivateFrameworks -framework CoreDaemon -lresolv ${Extra_LD_Libraries} "-Wl,-exported_symbols_list" \ 97 ${SRCROOT}/AppleExtras/ldap.exp -twolevel_namespace -dead_strip "-Wl,-single_module" -dynamiclib 98 mkdir -p ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/Headers 99 mkdir -p ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/PrivateHeaders 100 mkdir -p ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/Resources 101 ln -sf A ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/Current 102 ln -sf Versions/Current/Headers ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Headers 103 ln -sf Versions/Current/PrivateHeaders ${DSTROOT}/System/Library/Frameworks/LDAP.framework/PrivateHeaders 104 ln -sf Versions/Current/LDAP ${DSTROOT}/System/Library/Frameworks/LDAP.framework/LDAP 105 ln -sf Versions/Current/Resources ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Resources 106 strip -x ${SYMROOT}/LDAP -o ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP 107 echo "#include <ldap.h>" > "${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/Headers/ldap.h" 108 echo "#include <lber.h>" > "${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/Headers/lber.h" 109 cp ${DSTROOT}/usr/local/include/ldap_private.h ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/PrivateHeaders 110 111 cp ${SRCROOT}/AppleExtras/Resources/Info.plist ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/Resources 112 cp ${SRCROOT}/AppleExtras/Resources/version.plist ${DSTROOT}/System/Library/Frameworks/LDAP.framework/Versions/A/Resources 113 rm -rf ${DSTROOT}/usr/lib 114 mkdir -p ${DSTROOT}/usr/lib 115 ln -sf /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP ${DSTROOT}/usr/lib/liblber.dylib 116 ln -sf /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP ${DSTROOT}/usr/lib/libldap.dylib 117 ln -sf /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP ${DSTROOT}/usr/lib/libldap_r.dylib 118 rm -rf ${DSTROOT}/usr/share # remove man pages from framework target 119 rm -rf ${DSTROOT}/private # remove default ldap.conf from framework target 120 rm -rf ${DSTROOT}/usr/bin # remove utilities from framework target 121