# # BEGIN COPYRIGHT BLOCK # Copyright 2001 Sun Microsystems, Inc. # Portions copyright 1999, 2001-2003 Netscape Communications Corporation. # All rights reserved. # END COPYRIGHT BLOCK # # Source for the admin forms and CGI programs LDAP_SRC = ../.. MCOM_ROOT = ../../../.. NOSTDCLEAN=true # don't let nsconfig.mk define target clean NOSTDSTRIP=true # don't let nsconfig.mk define target strip NSPR20=true # probably should be defined somewhere else (not sure where) BINDIR=$(LDAP_ADMIN_BIN_RELDIR) OBJDEST=$(LDAP_ADMOBJDIR) SCRIPTSDIR=$(LDAP_BASE_RELDIR)/admin/scripts include $(MCOM_ROOT)/ldapserver/nsconfig.mk include $(LDAP_SRC)/nsldap.mk ifndef LDAP_USE_OLD_DB include $(MCOM_ROOT)/ldapserver/ns_usedb.mk endif MCC_INCLUDE += $(ADMINUTIL_INCLUDE) INCLUDES += -I$(LDAP_SRC)/admin/include DS_SERVER_DEFS = -DNS_DS ifneq ($(ARCH), WINNT) EXTRALDFLAGS += $(SSLLIBFLAG) endif ifeq ($(BUILD_DLL), yes) DYNAMIC_DEPLIBS=$(LDAP_ADMLIB) $(LDAP_COMMON_LIBS_DEP) $(ADMINUTIL) DYNAMIC_DEPLINK=$(DYNAMIC_DEPLIBS) else DYNAMIC_DEPLIBS=$(LDAP_COMMON_LIBS_DEP) DYNAMIC_DEPLINK=$(LDAP_ADMLIB) $(LDAP_COMMON_LIBS) endif EXTRA_LIBS_DEP += $(NSPR_DEP) $(LDAPSDK_DEP) $(ADMINUTIL_DEP) $(ICU_DEP) # we don't want to build with warnings-as-errors for the admin/ stuff, because # it's got crappy C++ code which is LITTERED with warnings, most of which we # can't fix because it comes from files in dist/, etc. ifeq ($(ARCH), Linux) CFLAGS := $(subst -Werror,,$(CFLAGS)) endif OLD_EXTRA_LIBS := $(EXTRA_LIBS) EXTRA_LIBS = $(DYNAMIC_DEPLINK) $(ADMINUTIL_LINK) $(LDAP_NOSSL_LINK) \ $(SECURITYLINK) $(NSPRLINK) $(SETUPSDK_S_LINK) $(ICULINK) $(OLD_EXTRA_LIBS) ifeq ($(ARCH), WINNT) PLATFORM_INCLUDE = -I$(MCOM_ROOT)/ldapserver/include/nt SUBSYSTEM=console EXTRA_LIBS+=comctl32.lib $(LDAP_LIBUTIL) EXTRA_LIBS_DEP+=$(LDAP_LIBUTIL_DEP) ifeq ($(DEBUG), optimize) #NT_NOLIBS = /NODEFAULTLIB:LIBCMT /NODEFAULTLIB:MSVCRT else NT_NOLIBS = /NODEFAULTLIB:LIBCMTD /NODEFAULTLIB:MSVCRTD endif else ifeq ($(ARCH), IRIX) EXCEPTIONS=-exceptions else ifeq ($(ARCH),SOLARIS) ifeq ($(USE_64), 1) EXTRALDFLAGS += -xarch=v9 endif EXTRA_LIBS += -lsocket -lnsl -lgen -lm -lposix4 -lthread else ifeq ($(ARCH),SOLARISx86) EXTRA_LIBS += -lsocket -lnsl -lgen -lm -lposix4 -lthread else ifeq ($(ARCH),HPUX) ifdef FORTEZZA # link with libci.a for FORTEZZA builds. On other platforms, libci.a is # linked into libds_admin.so, but not on HPUX EXTRA_LIBS_DEP += $(FORTEZZA_DRIVER) EXTRA_LIBS += $(FORTEZZA_DRIVER) endif ifeq ($(USE_64), 1) EXTRALDFLAGS += +DA2.0W +DS2.0 +Z endif else ifeq ($(ARCH),OSF1) #CC += -E #CXX += -Wl,-ymain else ifeq ($(ARCH),ReliantUNIX) else ifeq ($(ARCH), AIX) EXTRA_LIBS += -lcurses else ifeq ($(ARCH), UnixWare) # rgc: EXTRA_LIBS += -lsocket -lnsl -lgen -lm else ifeq ($(ARCH), Linux) EXTRA_LIBS += -lcrypt else #this will help with porting other platforms EXTRA_LIBS+="you need to define EXTRA_LIBS for $(ARCH) in ldapserver/ldap/admin/src/Makefile" endif # Linux endif # UnixWare endif # AIX endif # ReliantUNIX endif # OSF1 endif # HPUX endif # SOLARISx86 endif # SOLARIS endif # IRIX endif # WINNT TEMP_EXTRALDFLAGS:=$(EXTRALDFLAGS) EXTRALDFLAGS = -lpthread $(TEMP_EXTRALDFLAGS) ifeq ($(SECURITY),domestic) SECUS_BINS= MODULE_CFLAGS += -DUS_VERSION -DEXPORT_VERSION endif ifeq ($(SECURITY),export) MODULE_CFLAGS += -DEXPORT_VERSION endif ifneq ($(SECURITY),none) SECURE_BINS= SECLIB=$(LIBSECURITY) endif ADMIN_DLLGLUEOBJ=$(MCOM_ROOT)/ldapserver/built/$(ARCH)-$(SECURITY)-$(DEBUG)-admin/admin-lib/dllglue.o ifeq ($(ARCH),AIX) DLLGLUEOBJ= GLUEOBJS= endif $(OBJDEST)/key.res: key.rc $(RC) $(OFFLAG)$(OBJDEST)/key.res ey.rc OLD_PROGS = ds_pcontrol ds_impldif \ ds_backldif ds_backdb ds_restdb \ ds_monitor ds_conf ds_rmldif \ commit index ds_acccon ds_perf ds_dbconf ds_conf_check \ ds_net ds_ldap ds_pwconf ds_inconf ds_grplst ds_grpcrt \ ds_version ds_client ds_secpref ds_secact instindex \ ds_reploc ds_repinit ldif2replica ds_addldif ds_ldif2ldap clpstat \ ds_sscfg ds_attr_manage ds_oc_view ds_oc_create ds_schema_update \ ds_replov ds_pw ds_snmpconf PROGS = start restart shutdown ds_ldif2db \ ds_db2ldif ds_db2bak ds_listdb \ ds_bak2db ds_rmdb ds_create \ ds_remove ds_snmpctrl vlvindex addindex ifeq ($(ARCH), WINNT) SERVER_PROGS = namegen latest_file endif OBJECTS= init_ds_env.o ifeq ($(ARCH), WINNT) OBJECTS += namegen.o latest_file.o ds_remove_uninst.o endif ifeq ($(ARCH), WINNT) BINS = $(addprefix $(BINDIR)/, $(addsuffix .exe, $(PROGS))) $(addprefix $(LDAP_SERVER_RELDIR)/, $(addsuffix .exe, $(SERVER_PROGS))) else BINS = $(addprefix $(BINDIR)/, $(PROGS)) endif ALLOBJS = $(addprefix $(OBJDEST)/, $(OBJECTS)) PERL_SCRIPTS = migrateTo4 uname.lib Cgi.pm migrateInstance getConfigInfo migrateLocalDB migratePwdFile ds_viewlog.pl upgradeServer updatedsgw PERL_SCRIPTS_DEST = $(addprefix $(BINDIR)/, $(PERL_SCRIPTS)) INST_INCLUDES = $(OBJDIR)/install_keywords.h TEMPLATE_SCRIPTS_SRC = $(wildcard scripts/template-*) TEMPLATE_SCRIPTS_DEST = $(subst scripts/,$(SCRIPTSDIR)/,$(TEMPLATE_SCRIPTS_SRC)) # gmake 3.74 will remove "intermediate" files if generated via a pattern match rule # this is annoying for debugging since it tries to find the .o file # if you're debugging and you want to make sure your file does not get removed # by gmake, just uncomment the precious target and put your object files there # or FIX IT! if you can figure out how . . . #.PRECIOUS: $(OBJDEST)/ds_db2bak.o all: $(BINDIR) $(OBJDEST) $(INST_INCLUDES) $(ALLOBJS) $(BINS) \ installPerlFiles $(SCRIPTSDIR) $(TEMPLATE_SCRIPTS_DEST) $(SCRIPTSDIR): $(MKDIR) $@ .PHONY: installPerlFiles #NSSetupSDK: # $(MAKE) -f NSSetupSDK_Base.mk $(MFLAGS) all clean: -@echo $(BINS) -$(RM) $(BINS) -$(RM) $(OBJDEST)/*.o strip: $(STRIP) $(BINS) # if $(DLLGLUEOBJ) isn't available, use $(ADMIN_DLLGLUEOBJ) as a substitute: $(DLLGLUEOBJ): $(ADMIN_DLLGLUEOBJ) cp $(ADMIN_DLLGLUEOBJ) $(DLLGLUEOBJ) # if $(SECGLUEOBJ) isn't available, use $(ADMIN_SECGLUEOBJ) as a substitute: $(SECGLUEOBJ): $(ADMIN_SECGLUEOBJ) cp $(ADMIN_SECGLUEOBJ) $(SECGLUEOBJ) # Special objects $(BINDIR)/ds_create: $(OBJDEST)/instindex.o $(OBJDEST)/cfg_sspt.o \ $(OBJDEST)/create_instance.o $(OBJDEST)/configure_instance.o \ $(OBJDEST)/script-gen.o $(DEPLIBS) $(LINK_EXE_NOLIBSOBJS) $(SHARED) $(EXTRALDFLAGS) \ $(OBJDEST)/instindex.o $(OBJDEST)/script-gen.o \ $(OBJDEST)/create_instance.o $(OBJDEST)/cfg_sspt.o \ $(OBJDEST)/configure_instance.o \ $(GLUEOBJ) $(EXTRA_LIBS) $(BINDIR)/ds_create.exe: $(OBJDEST)/instindex.o $(OBJDEST)/cfg_sspt.o \ $(OBJDEST)/create_instance.o $(OBJDEST)/configure_instance.o \ $(OBJDEST)/script-gen.o $(LIBNT_DEP) $(DEPLIBS) $(LINK_EXE) $(NT_NOLIBS) $(OBJDEST)/instindex.o \ $(OBJDEST)/create_instance.o $(OBJDEST)/cfg_sspt.o \ $(OBJDEST)/configure_instance.o $(OBJDEST)/script-gen.o \ $(SETUPSDK_S_LINK) $(LDAP_SDK_LIBS) $(LIBNT) \ $(NSPRLINK) $(EXTRA_LIBS) $(DB_LIB) # linking this file causes a .exp and a .lib file to be generated which don't seem # to be required while running, so I get rid of them $(RM) $(subst .exe,.exp,$@) $(subst .exe,.lib,$@) $(BINDIR)/ds_remove: $(OBJDEST)/ds_remove.o $(OBJDEST)/ds_remove_uninst.o $(DEPLIBS) $(EXTRA_LIBS_DEP) $(LINK_EXE_NOLIBSOBJS) $(SHARED) $(EXTRALDFLAGS) \ $(OBJDEST)/ds_remove.o $(OBJDEST)/ds_remove_uninst.o $(OBJDEST)/init_ds_env.o \ $(SETUPSDK_S_LINK) $(GLUEOBJ) $(EXTRA_LIBS) $(BINDIR)/ds_remove.exe: $(OBJDEST)/ds_remove.o $(OBJDEST)/ds_remove_uninst.o $(DEPLIBS) $(EXTRA_LIBS_DEP) $(LINK_EXE) $(OBJDEST)/ds_remove_uninst.o $(OBJDEST)/ds_remove.o $(OBJDEST)/init_ds_env.o $(LDAP_SDK_LIBS) $(NSPRLINK) $(SETUPSDK_S_LINK) $(NT_NOLIBS) # linking this file causes a .exp and a .lib file to be generated which don't seem # to be required while running, so I get rid of them $(RM) $(subst .exe,.exp,$@) $(subst .exe,.lib,$@) $(OBJDEST)/%.o: %.c $(CC) -c $(CFLAGS) $(MCC_INCLUDE) $< $(OFFLAG)$@ $(OBJDEST)/%.o: %.cpp ifeq ($(ARCH), WINNT) $(CC) -c $(CFLAGS) $(MCC_INCLUDE) $(SETUPSDK_INCLUDE) $< $(OFFLAG)$@ else $(CXX) $(EXCEPTIONS) -c $(CFLAGS) $(MCC_INCLUDE) $(SETUPSDK_INCLUDE) $< $(OFFLAG)$@ endif ifneq ($(ARCH), WINNT) $(BINDIR)/%: $(OBJDEST)/%.o $(DEPLIBS) $(EXTRA_LIBS_DEP) $(GLUEOBJ) $(LINK_EXE_NOLIBSOBJS) $< $(OBJDEST)/init_ds_env.o $(GLUEOBJ) $(EXTRA_LIBS) else $(BINDIR)/%.exe: $(OBJDEST)/%.o $(DEPLIBS) $(EXTRA_LIBS_DEP) $(LINK_EXE) $(OBJDEST)/$*.o $(OBJDEST)/init_ds_env.o $(NSPRLINK) endif $(LDAP_SERVER_RELDIR)/namegen.exe: $(OBJDEST)/namegen.o $(LINK_EXE_NOLIBSOBJS) $^ $(LDAP_SERVER_RELDIR)/latest_file.exe: $(OBJDEST)/latest_file.o $(LINK_EXE_NOLIBSOBJS) $^ installPerlFiles: $(BINDIR) $(BINDIR)/Install.pl $(BINDIR)/Install.pl: CreateInstall.pl $(PERL_SCRIPTS_DEST) -@$(RM) $@ $(CP) $< $@ $(BINDIR)/%: % -@$(RM) $@ $(CP) $< $@ $(LDAP_SERVER_RELDIR)/%: % $(LDAP_SERVER_RELDIR) -@$(RM) $@ $(CP) $< $@ $(INST_INCLUDES): install_keywords.h -@$(RM) $@ $(CP) $< $@ $(SCRIPTSDIR)/template-%: scripts/template-% $(SCRIPTSDIR) -@$(RM) $@ $(CP) $< $@