summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/DSAdmin.mk
blob: a48ca84e28fc656f334075b8ab983128931e7576 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#
# BEGIN COPYRIGHT BLOCK
# Copyright 2001 Sun Microsystems, Inc.
# Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
# All rights reserved.
# END COPYRIGHT BLOCK
#
# Makefile for the DSAdmin dynamic loaded perl module

LDAP_SRC = ../..
BUILD_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)

include $(BUILD_ROOT)/nsconfig.mk
include $(LDAP_SRC)/nsldap.mk
ifndef LDAP_USE_OLD_DB
include $(BUILD_ROOT)/ns_usedb.mk
endif

BINDIR=$(LDAP_ADMIN_BIN_RELDIR)
OBJDEST=$(LDAP_ADMOBJDIR)

INCLUDES += -I$(LDAP_SRC)/admin/include

DS_SERVER_DEFS = -DNS_DS

INFO = $(OBJDIR)/$(DIR)

ifneq ($(ARCH), WINNT)
EXTRALDFLAGS += $(SSLLIBFLAG)
endif

EXTRA_LIBS += $(LIBPERL_A) $(SETUPSDK_S_LINK) $(LDAP_ADMLIB) \
        $(LDAPLINK) $(DEPLINK) $(ADMINUTIL_LINK) \
        $(NSPRLINK) $(NLSLINK) \
        $(NLSLINK_CONV_STATIC)
 
# the security libs are statically linked into libds_admin.so; osf doesn't like
# to link against them again, it thinks they are multiply defined
ifneq ($(ARCH), OSF1)
EXTRA_LIBS += $(SECURITYLINK) $(DBMLINK)
else
#DLL_LDFLAGS=-shared -all -error_unresolved -taso
#EXTRA_LIBS += -lcxx -lcxxstd -lcurses -lc
endif

ifeq ($(ARCH), WINNT)
PLATFORM_INCLUDE = -I$(BUILD_ROOT)/include/nt
SUBSYSTEM=console
EXTRA_LIBS+=comctl32.lib $(LDAP_SDK_LIBLDAP_DLL) $(LDAP_LIBUTIL) 
EXTRA_LIBS_DEP+=$(LDAP_LIBUTIL_DEP)
DEF_FILE:=DSAdmin.def
LINK_DLL += /NODEFAULTLIB:msvcrtd.lib
endif

ifeq ($(ARCH), AIX)
EXTRA_LIBS += $(DLL_EXTRA_LIBS) -lbsd
LD=ld
endif

# absolutely do not try to build perl-stuff with warnings-as-errors.
# (duh.)
ifeq ($(ARCH), Linux)
CFLAGS := $(subst -Werror,,$(CFLAGS))
endif

DSADMIN_OBJS = DSAdmin.o
DSADMIN_BASENAME = DSAdmin$(DLL_PRESUFFIX).$(DLL_SUFFIX)

OBJS= $(addprefix $(OBJDEST)/, $(DSADMIN_OBJS)) 
DSADMIN_SO = $(addprefix $(BINDIR)/, $(DSADMIN_BASENAME))

EXTRA_LIBS_DEP = $(SETUPSDK_DEP)

# for Solaris, our most common unix build platform, we check for undefined
# symbols at link time so we don't catch them at run time.  To do this, we
# set the -z defs flag.  We also have to add explicitly link with the C and
# C++ runtime libraries (e.g., -lc) because, even though ld and CC link
# with them implicitly, -z defs will throw errors if we do not link with
# them explicitly.
ifeq ($(ARCH), SOLARIS)
LINK_DLL += -z defs
# removed -lcx from the following line
EXTRA_LIBS += -lCstd -lCrun -lm -lw -lc
# with the Forte 6 and later compilers, we must use CC to link
LD=CC
endif

all: $(OBJDEST) $(BINDIR) $(DSADMIN_SO)

dummy:
	-@echo PERL_EXE = $(PERL_EXE)
	-@echo PERL_EXENT = $(PERL_EXENT)
	-@echo PERL_BASEDIR = $(PERL_BASEDIR)
	-@echo PERL_ROOT = $(PERL_ROOT)
	-@echo IS_ACTIVESTATE = $(IS_ACTIVESTATE)
	-@echo PERL_CONFIG = $(PERL_CONFIG)
	-@echo PERL_ROOT = $(PERL_ROOT)
	-@echo PERL = $(PERL)
	-@echo PERL_LIB = $(PERL_LIB)
	-@echo PERL_ARCHLIB = $(PERL_ARCHLIB)
	-@echo EXTRA_LIBS_DEP = $(EXTRA_LIBS_DEP)
	abort

ifeq ($(ARCH), WINNT)
$(DSADMIN_SO): $(OBJS) $(EXTRA_LIBS_DEP) $(DEF_FILE)
	$(LINK_DLL) /DEF:$(DEF_FILE)
# 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 .dll,.exp,$@) $(subst .dll,.lib,$@)
else
$(DSADMIN_SO): $(OBJS)
	$(LINK_DLL) $(EXTRA_LIBS)
endif

$(OBJDEST)/DSAdmin.o: $(OBJDEST)/DSAdmin.c
ifeq ($(ARCH), WINNT)
	$(CC) -c $(CFLAGS) $(PERL_CFLAGS) $(MCC_INCLUDE) $(SETUPSDK_INCLUDE) $(PERL_INC) $< $(OFFLAG)$@
else
	$(CXX) $(EXCEPTIONS) -c $(CFLAGS) $(PERL_CFLAGS) $(MCC_INCLUDE) $(SETUPSDK_INCLUDE) $(PERL_INC) $< $(OFFLAG)$@
endif

$(OBJDEST)/DSAdmin.c: DSAdmin.xs
	$(PERL) -w -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) $< > $@

#MYCMD := "Mksymlists('NAME' => 'DSAdmin', 'DLBASE' => 'DSAdmin');"
#$(DEF_FILE): DSAdmin.xs
#	$(PERL) -w "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -MExtUtils::Mksymlists -e "$(MYCMD)"

clean:
	-$(RM) $(OBJDEST)/DSAdmin.c $(OBJS) $(DSADMIN_SO)