# # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is Mozilla Communicator client code, released # March 31, 1998. # # The Initial Developer of the Original Code is # Netscape Communications Corporation. # Portions created by the Initial Developer are Copyright (C) 1998-1999 # the Initial Developer. All Rights Reserved. # # Contributor(s): # # Alternatively, the contents of this file may be used under the terms of # either the GNU General Public License Version 2 or later (the "GPL"), or # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** MOD_DEPTH = ../../.. srcdir = @srcdir@ topsrcdir = @top_srcdir@ include $(MOD_DEPTH)/config/autoconf.mk include $(topsrcdir)/build.mk SRCS = ldappr-dns.c \ ldappr-error.c \ ldappr-io.c \ ldappr-public.c \ ldappr-threads.c REALOBJS = $(SRCS:.c=.$(OBJ_SUFFIX)) OBJS = $(addprefix $(OBJDIR_NAME)/, $(REALOBJS)) DISTHDIR = $(DIST)/public/ldap HDIR = $(topsrcdir)/ldap/include ifneq (,$(filter OS2 WINNT,$(OS_ARCH))) LIBPRLDAP = $(addprefix $(OBJDIR_NAME)/, \ $(LIB_PREFIX)$(PRLDAP_LIBNAME).$(LIB_SUFFIX)) else LIBPRLDAP = endif DLLPRLDAP = $(addprefix $(OBJDIR_NAME)/, \ $(LIB_PREFIX)$(PRLDAP_LIBNAME).$(DLL_SUFFIX)) INSTALLDIR = $(DIST)/$(OBJDIR_NAME) RELEASE_LIBS = $(DLLPRLDAP) include $(topsrcdir)/config/rules.mk GARBAGE += $(LIBPRLDAP) $(DLLPRLDAP) LOCAL_INCLUDES = INCLUDES += -I$(DISTHDIR) -I$(HDIR) -I$(INSTALLDIR)/include \ $(NSPR_CFLAGS) DEFINES += $(DEFS) PLATFORMCFLAGS = -DUSE_WAITPID -DNEEDPROTOS PLATFORMLIBS = THREADS = THREADSLIB = # # shared library symbol export definitions # ifeq ($(USE_DLL_EXPORTS_FILE), 1) ifeq ($(OS_ARCH), WINNT) GENEXPORTS=cmd /c $(PERL) $(topsrcdir)/ldap/build/genexports.pl else GENEXPORTS=$(PERL) $(topsrcdir)/ldap/build/genexports.pl endif # variable definitions for exported symbols ifeq ($(OS_ARCH), WINNT) PRLDAP_EXPORT_DEFS= $(win_srcdir)/../msdos/winsock/nsldappr32.def else ifeq ($(OS_ARCH), OS2) PRLDAP_EXPORT_DEFS= $(OBJDIR_NAME)/libprldap.def else PRLDAP_EXPORT_DEFS= $(OBJDIR_NAME)/libprldap.exp endif GARBAGE += $(LDAP_EXPORT_DEFS) endif PRLDAP_EXPORT_FLAGS=$(addprefix $(DLLEXPORTS_PREFIX), $(PRLDAP_EXPORT_DEFS)) GENEXPARGS=$(BUILD_DEBUG) $(PRLDAPVERS_SUFFIX) $(PRLDAPVERS) endif # USE_DLL_EXPORTS_FILE ifeq ($(OS_ARCH), IRIX) EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) endif ifeq ($(OS_ARCH), SunOS) EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) endif ifeq ($(OS_ARCH), WINNT) ifdef NS_USE_GCC EXTRA_DLL_LIBS =-L$(dist_libdir) -l$(LDAP_LIBNAME) \ -l$(PLC_BASENAME) -l$(PLDS_BASENAME) -l$(NSPR_BASENAME) else EXTRA_LIBS =wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib \ comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \ rpcrt4.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib EXTRA_LIBS += $(dist_libdir)/$(LDAP_LIBNAME).lib EXTRA_LIBS += $(dist_libdir)/$(PLC_BASENAME).lib EXTRA_LIBS += $(dist_libdir)/$(PLDS_BASENAME).lib EXTRA_LIBS += $(dist_libdir)/$(NSPR_BASENAME).lib endif endif ifeq ($(OS_ARCH),OS2) EXTRA_LIBS = $(dist_libdir)/$(LDAP_LIBNAME).lib EXTRA_LIBS += $(dist_libdir)/$(LBER_LIBNAME).lib EXTRA_LIBS += $(dist_libdir)/$(PLCBASE).lib EXTRA_LIBS += $(dist_libdir)/$(PLDSBASE).lib EXTRA_LIBS += $(dist_libdir)/$(NSPRBASE).lib EXTRA_LIBS += $(OS_LIBS) endif ifeq ($(OS_ARCH), OSF1) EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) EXTRA_LIBS += -lcxx -lpthread -lrt -lmach -lexc endif ifeq ($(OS_ARCH), AIX) EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) EXTRA_LIBS += -ldl -brtl -lpthreads -lc_r -lm endif ifeq ($(OS_ARCH), Darwin) EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) endif ifeq ($(OS_ARCH), OpenVMS) EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) endif ifeq ($(OS_ARCH), BeOS) EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) endif OBJDEST = $(OBJDIR_NAME) ########################################################################### ifeq ($(USE_DLL_EXPORTS_FILE), 1) # recursive gmake rule to create exported symbols file $(PRLDAP_EXPORT_DEFS):: libprldap.ex ifeq ($(OS_ARCH), WINNT) $(GENEXPORTS) Win32 Standard $< $(GENEXPARGS) > $@ else ifeq ($(OS_ARCH), OS2) echo LIBRARY $(PRLDAP_LIBNAME) INITINSTANCE TERMINSTANCE > $@ echo PROTMODE >> $@ echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@ echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@ echo EXPORTS >> $@ $(GENEXPORTS) $(OS_ARCH) Standard $< $(GENEXPARGS) >> $@ else $(GENEXPORTS) $(OS_ARCH) Standard $< $(GENEXPARGS) > $@ endif endif endif # USE_DLL_EXPORTS_FILE versiont.c: Makefile.client Version.c @$(RM) $@ @(u="$${USER-root}" v="$(shell cat ../../build/version)" d="$(shell pwd)" \ h="$(shell hostname)" t="$(shell date)"; $(SED) -e "s|%WHEN%|$${t}|" \ -e "s|%WHOANDWHERE%|$${u}@$${h}:$${d}|" \ -e "s|%VERSION%|$${v}|" \ < Version.c > $@) export:: $(OBJDEST) $(LIBDIR) $(OBJS) $(DLLPRLDAP) $(LIBDIR): $(MKDIR) $(LIBDIR) $(LIBPRLDAP): $(OBJS) $(LIBDIR) $(PRLDAP_EXPORT_DEFS) @echo ======= making $(LIBPRLDAP) ifdef SO_FILES_TO_REMOVE -$(RM) $(SO_FILES_TO_REMOVE) endif ifeq ($(OS_ARCH),OS2) # create import library for OS/2 rm -f $@ $(IMPLIB) $@ $(PRLDAP_EXPORT_DEFS) else $(LINK_LIB) $(EXTRA_LIBS) endif $(DLLPRLDAP): $(OBJS) $(LIBDIR) $(PRLDAP_EXPORT_DEFS) @echo ======= making $(DLLPRLDAP) ifdef SO_FILES_TO_REMOVE -$(RM) $(SO_FILES_TO_REMOVE) endif $(LINK_DLL) $(PRLDAP_EXPORT_FLAGS) $(EXTRA_LIBS) veryclean:: clean $(OBJDEST): $(MKDIR) $(OBJDEST) # the $(dist_bindir) line is for the mozilla client, which for reasons # unknown wants shared libraries in /bin also # # Set the default sources for the export target EXPDEPS2 = $(LIBPRLDAP) $(DLLPRLDAP) # Remove the LIB source if on win32 and using MSVC # This avoids problems with -jX builds where 'link' will make both the # .dll and .lib files in one pass ifeq ($(OS_ARCH), WINNT) ifeq ($(LD),link) EXPDEPS2 = $(DLLPRLDAP) endif endif export:: $(EXPDEPS2) ifeq ($(OS_ARCH), WINNT) $(INSTALL) -m 555 $(LIBPRLDAP) $(dist_libdir) $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) endif ifeq ($(OS_ARCH),OS2) $(INSTALL) -m 444 $(LIBPRLDAP) $(dist_libdir) endif ifdef MKSHLIB $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir) endif