summaryrefslogtreecommitdiff
path: root/source4/lib
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib')
-rw-r--r--source4/lib/ldb/Makefile.in12
-rw-r--r--source4/lib/ldb/configure.ac1
-rw-r--r--source4/lib/replace/libreplace_ld.m455
3 files changed, 65 insertions, 3 deletions
diff --git a/source4/lib/ldb/Makefile.in b/source4/lib/ldb/Makefile.in
index a87d39f123..eb10311ccc 100644
--- a/source4/lib/ldb/Makefile.in
+++ b/source4/lib/ldb/Makefile.in
@@ -36,6 +36,7 @@ SHLIBEXT = @SHLIBEXT@
LD_EXPORT_DYNAMIC = @LD_EXPORT_DYNAMIC@
+PICFLAG = @PICFLAG@
CFLAGS=-g -I$(srcdir)/include -Iinclude -I$(srcdir) -I$(srcdir)/.. \
$(POPT_CFLAGS) $(TALLOC_CFLAGS) $(TDB_CFLAGS) \
-DLIBDIR=\"$(libdir)\" -DSHLIBEXT=\"$(SHLIBEXT)\" -DUSE_MMAP=1 @CFLAGS@
@@ -98,6 +99,11 @@ showflags:
@mkdir -p `dirname $@`
@$(CC) $(CFLAGS) -c $< -o $@
+.c.po:
+ @echo Compiling $*.c
+ @mkdir -p `dirname $@`
+ @$(CC) $(CFLAGS) $(PICFLAG) -c $< -o $@
+
dirs:
@mkdir -p $(DIRS)
@@ -108,8 +114,8 @@ lib/libldb.a: $(OBJS)
lib/libnss_ldb.so.2: $(NSS_OBJ) $(LIBS) bin/libldb.a
$(CC) -shared -Wl,-soname,libnss_ldb.so.2 -o lib/libnss_ldb.so.2 $(NSS_OBJ) $(OBJS) $(LIB_FLAGS)
-sample_module.$(SHLIBEXT): tests/sample_module.o
- $(CC) -shared -o $@ tests/sample_module.o
+sample_module.$(SHLIBEXT): tests/sample_module.po
+ $(CC) -shared -o $@ tests/sample_module.po
bin/ldbadd: tools/ldbadd.o tools/cmdline.o $(LIBS)
$(CC) -o bin/ldbadd tools/ldbadd.o tools/cmdline.o $(LIB_FLAGS) $(LD_EXPORT_DYNAMIC)
@@ -141,7 +147,7 @@ examples/ldbreader: examples/ldbreader.o $(LIBS)
examples/ldifreader: examples/ldifreader.o $(LIBS)
$(CC) -o examples/ldifreader examples/ldifreader.o $(LIB_FLAGS)
-.SUFFIXES: .1 .1.xml .3 .3.xml .xml .html
+.SUFFIXES: .1 .1.xml .3 .3.xml .xml .html .po
manpages:
@$(srcdir)/docs/builddocs.sh "$(XSLTPROC)" "$(srcdir)"
diff --git a/source4/lib/ldb/configure.ac b/source4/lib/ldb/configure.ac
index fac5d1542e..b4b8788253 100644
--- a/source4/lib/ldb/configure.ac
+++ b/source4/lib/ldb/configure.ac
@@ -72,6 +72,7 @@ AC_SUBST(TESTS)
AC_SUBST(EXTRA_OBJ)
AC_LD_EXPORT_DYNAMIC
+AC_LD_PICFLAG
m4_include(libldb.m4)
AC_OUTPUT(Makefile ldb.pc)
diff --git a/source4/lib/replace/libreplace_ld.m4 b/source4/lib/replace/libreplace_ld.m4
index 8d7d3d7ebb..d3d3f9464f 100644
--- a/source4/lib/replace/libreplace_ld.m4
+++ b/source4/lib/replace/libreplace_ld.m4
@@ -8,3 +8,58 @@ AC_LINK_IFELSE([ int main() { return 0; } ],
AC_SUBST(LD_EXPORT_DYNAMIC)
LDFLAGS="$saved_LDFLAGS"
])
+
+AC_DEFUN([AC_LD_PICFLAG],
+[
+case "$host_os" in
+ *linux*)
+ PICFLAG="-fPIC"
+ ;;
+ *solaris*)
+ if test "${GCC}" = "yes"; then
+ PICFLAG="-fPIC"
+ else
+ PICFLAG="-KPIC"
+ fi
+ ;;
+ *sunos*)
+ PICFLAG="-KPIC" # Is this correct for SunOS
+ ;;
+ *netbsd* | *freebsd* | *dragonfly* )
+ PICFLAG="-fPIC -DPIC"
+ ;;
+ *openbsd*)
+ PICFLAG="-fPIC"
+ ;;
+ *irix*)
+ if test "${GCC}" = "yes"; then
+ PICFLAG="-fPIC"
+ else
+ PICFLAG="-KPIC"
+ fi
+ ;;
+ *aix*)
+ # as AIX code is always position independent...
+ PICFLAG="-O2"
+ ;;
+ *hpux*)
+ if test $ac_cv_prog_cc_Ae = yes; then
+ PICFLAG="+z +ESnolit"
+ elif test "${GCC}" = "yes"; then
+ PICFLAG="-fPIC"
+ fi
+ if test "$host_cpu" = "ia64"; then
+ PICFLAG="+z"
+ fi
+ ;;
+ *osf*)
+ PICFLAG="-fPIC"
+ ;;
+ *unixware*)
+ PICFLAG="-KPIC"
+ ;;
+ *darwin*)
+ ;;
+esac
+AC_SUBST(PICFLAG)
+])