diff options
Diffstat (limited to 'ldap/admin/src/Makefile')
| -rw-r--r-- | ldap/admin/src/Makefile | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/ldap/admin/src/Makefile b/ldap/admin/src/Makefile new file mode 100644 index 00000000..e3343791 --- /dev/null +++ b/ldap/admin/src/Makefile @@ -0,0 +1,304 @@ +# +# 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) $< $@ |
