]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Rollup patch of Bug 291: Solaris DSO support.
authorAidan Van Dyk <aidan@ifax.com>
Tue, 31 Jan 2006 19:03:34 +0000 (19:03 +0000)
committerAidan Van Dyk <aidan@ifax.com>
Tue, 31 Jan 2006 19:03:34 +0000 (19:03 +0000)
Enables solaris DSO support.

configure
defs.in
faxd/Makefile.SOLARISdso
util/Makefile.SOLARISdso

index 2fab0e88fa9c5736ace5e97d0090a71409654d51..7315755943030fb4e8989ee9597b0bc969a8267c 100755 (executable)
--- a/configure
+++ b/configure
@@ -3377,6 +3377,8 @@ if [ "$DSO" = auto ]; then
        FAXD='${DEPTH}/faxd'
        DSOOPTS='-shared -fpic -Wl,-soname,$@'
        LLDOPTS='-L${UTIL} -L${FAXD} -lfaxutil'$USE_RPATH
+       GCOPTS="${GCOPTS} -fpic"
+       GCXXOPTS="${GCXXOPTS} -fpic"
        DSO=LINUX
        CheckCCDSO()
        {
@@ -3397,39 +3399,48 @@ if [ "$DSO" = auto ]; then
            "t:t.o; \${C++F} ${DSOOPTS} -o t.${DSOSUF} t.o"
        }
        ;;
-#
-# Solaris DSO support seems rather fundamentally broken.
-# See http://bugs.hylafax.org/bugzilla/show_bug.cgi?id=291
-# We'd love to have this fixed if you've got a rainy day to spare ;-)
-#
-#    *-solaris*)
-#      DSOSUF=so
-#      LIBUTIL=''
-#      LIBFAXSERVER='-lfaxserver'
-#      FAXD='${DEPTH}/faxd'
-#      # options here are passed directly to ld, not through g++ first
-#      DSOOPTS='-G -h $@'
-#      LLDOPTS='-L${UTIL} -L${FAXD} -R${LIBDIR} -lfaxutil'
-#      DSO=SOLARIS
-#      CheckCCDSO()
-#      {
-#      $RM t.c t.o t.${DSOSUF}
-#      echo 'int f() { return 0; }'>t.c
-#      capture cat t.c
-#      runMake t \
-#          't.o:; ${CCF} -c t.c' \
-#          "t: t.o; \${CCF} ${DSOOPTS} -o t.${DSOSUF} t.o"
-#      }
-#      CheckCXXDSO()
-#      {
-#      $RM t.c++ t.o t.${DSOSUF}
-#      echo 'int f() { return 0; }'>t.c++
-#      capture cat t.c++
-#      runMake t \
-#          "t.o:; \${C++F} -c \${C++FILE} t.c++${MAKECXXOVERRIDE}" \
-#          "t:t.o; \${C++F} ${DSOOPTS} -o t.${DSOSUF} t.o"
-#      }
-#      ;;
+    *-solaris*)
+       if [ "X${DIR_LIB}" != "X/usr/lib" ]; then
+           USE_RPATH=' -R${LIBDIR}'
+       else
+           USE_RPATH=''
+       fi
+       DSOSUF=so
+       LIBUTIL=''
+       FAXD='${DEPTH}/faxd'
+       LIBFAXSERVER='-L${FAXD} -lfaxserver'
+       # options here are passed directly to ld, not through g++ first
+       DSOOPTS='-G -h $@'
+       if [ ${ISGCC} = "yes" ] ; then
+           LLDOPTS='-L${UTIL} -L${FAXD} -R${LIBDIR} -lfaxutil -lstdc++'
+           GCOPTS="${GCOPTS} -fpic"
+           GCXXOPTS="${GCXXOPTS} -fpic"
+       else
+           LLDOPTS='-L${UTIL} -L${FAXD} -R${LIBDIR} -lfaxutil -lCrun'
+           GCOPTS="${GCOPTS} -Kpic"
+           GCXXOPTS="${GCXXOPTS} -Kpic"
+       fi
+       #LLDOPTS='-L${UTIL} -L${FAXD} -R${LIBDIR} -lfaxutil'
+       DSO=SOLARIS
+       CheckCCDSO()
+       {
+       $RM t.c t.o t.${DSOSUF}
+       echo 'int f() { return 0; }'>t.c
+       capture cat t.c
+       runMake t \
+           't.o:; ${CCF} -c t.c' \
+           "t: t.o; \${CCF} ${DSOOPTS} -o t.${DSOSUF} t.o"
+       }
+       CheckCXXDSO()
+       {
+       $RM t.c++ t.o t.${DSOSUF}
+       echo 'int f() { return 0; }'>t.c++
+       capture cat t.c++
+       runMake t \
+           "t.o:; \${C++F} -c \${C++FILE} t.c++${MAKECXXOVERRIDE}" \
+           "t:t.o; \${C++F} ${DSOOPTS} -o t.${DSOSUF} t.o"
+       }
+       ;;
     *) Note "There is no support for building HylaFAX as DSOs on your system."
        DSO=no
        ;;
@@ -3466,12 +3477,12 @@ else
     MAKEDSOINCLUDE="$MAKEINCLUDE"
     case $CC-$TARGET in
     gcc-*-linux-gnu)
-       GCOPTS="$GCOPTS -fpic"
+       GCOPTS="${GCOPTS} -fpic"
        ;;
     esac
     case $CXX-$TARGET in
     g++-*-linux-gnu)
-       GCXXOPTS="$GCXXOPTS -fpic"
+       GCXXOPTS="${GCXXOPTS} -fpic"
        ;;
     esac
 fi
diff --git a/defs.in b/defs.in
index dba75f99c91272c5231fcc0b90a6596f5e9f20ad..c69bb1da94c391611be0439008b088a25993efe6 100644 (file)
--- a/defs.in
+++ b/defs.in
@@ -192,7 +192,7 @@ LIBREGEX    = @LIBREGEX@
 # random utility functions and classes
 UTIL           = ${DEPTH}/util
 FAXD           = @FAXD@
-LIBFAXSERVER= @LIBFAXSERVER@
+LIBFAXSERVER   = @LIBFAXSERVER@
 LIBUTIL                = @LIBUTIL@
 LIBPORT                = @LIBPORT@
 
index a19f1fb7b443465461da19d94e395524e8512c51..ce5dcfa266253385ee4d731767dbd9a167cdaeaf 100644 (file)
@@ -41,5 +41,5 @@ installDSO: libfaxserver.${DSO}
        (cd ${LIBDIR}; ln -s libfaxserver.${DSO}.${LIBVERSION} libfaxserver.${DSO})
 
 cleanDSO::
-       -${RM} -f libfaxserver.${DSO}.${LIBVERSION}
+       -${RM} -f libfaxserver.${DSO}.${LIBVERSION} libfaxserver.${DSO}
 
index a6a88404134dd321e4a58badc393e9f3aca36932..7c8c828d94251ee8e896949461ec3446b09ba0ae 100644 (file)
@@ -31,7 +31,7 @@
 #
 
 libfaxutil.${DSO}: ${OBJECTS}
-       ld ${DSOOPTS} -o libfaxutil.${DSO}.${LIBVERSION} ${OBJECTS} 
+       ld ${DSOOPTS} -o libfaxutil.${DSO}.${LIBVERSION} ${OBJECTS}
        ln -s libfaxutil.${DSO}.${LIBVERSION} libfaxutil.${DSO}
 
 ../util/libfaxutil.${DSO}: libfaxutil.${DSO}
@@ -41,5 +41,5 @@ installDSO: libfaxutil.${DSO}
        (cd ${LIBDIR}; ln -s libfaxutil.${DSO}.${LIBVERSION} libfaxutil.${DSO})
 
 cleanDSO::
-       -${RM} -f libfaxutil.${DSO}.${LIBVERSION}
+       -${RM} -f libfaxutil.${DSO}.${LIBVERSION} libfaxutil.${DSO}