[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    PATCH UPDATE: macosx build changes
From:       Benjamin Reed <ranger () befunk ! com>
Date:       2003-03-13 1:31:51
[Download RAW message or body]

This is an updated version of the MacOSX patches to the admin/ 
directory, which combines (most) of my admin bits and Sam Magnuson's 
Qt/Mac build changes.  The things that are missing are 
libtool.m4/ltmain.sh changes, and a couple of minor changes to 
acinclude.m4.in related to my current hack to all of the makefiles for 
the kdeinit split.

An updated summary of the changes:

- moved the _NSGetEnviron bits to an AH_VERBATIM
- changed the linker flags to -Xlinker for frameworks
   to be compatible with libtool 1.5
- many changes to treat Qt/Mac like Qt/Embedded for
   the most part
- change the getdomainname check to use size_t
   (is this right?  it used to be "unsigned int" in 3.1,
   now I see it's been changed in HEAD admin to just
   "int")
- added <unistd.h> to the mkstemp check or else it fails
   complaining about missing types on osx
- changes to pam checks to look in pam/pam_appl.h as well
   as security/pam_appl.h (fixes to pam-using code will
   come in a later patch)
- find the Apple java framework
- add the fink qt3 doc directory to the default QTDOCDIR
   search

Thanks!

["admin-macosx-combined.patch" (text/plain)]

? .acinclude.m4.in.swp
Index: acinclude.m4.in
===================================================================
RCS file: /home/kde/kde-common/admin/acinclude.m4.in,v
retrieving revision 2.348
diff -u -r2.348 acinclude.m4.in
--- acinclude.m4.in	10 Mar 2003 22:14:57 -0000	2.348
+++ acinclude.m4.in	13 Mar 2003 01:22:11 -0000
@@ -716,10 +716,6 @@
    AC_CHECK_FUNC(shmat, ,
      AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"))
    
-   # darwin needs this to initialize the environment
-   AC_CHECK_HEADERS(crt_externs.h)
-   AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your \
                system needs _NSGetEnviron to set up the environment])])
- 
    # more headers that need to be explicitly included on darwin
    AC_CHECK_HEADERS(sys/types.h stdint.h)
 
@@ -729,7 +725,7 @@
    # CoreAudio framework
    AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [
      AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API])
-     FRAMEWORK_COREAUDIO="-framework CoreAudio"
+     FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio"
    ])
 
    AC_CHECK_RES_INIT
@@ -753,7 +749,20 @@
    KDE_CHECK_TYPES
    KDE_CHECK_LIBDL
    KDE_CHECK_STRLCPY
-   
+
+# darwin needs this to initialize the environment
+AC_CHECK_HEADERS(crt_externs.h)
+AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system \
needs _NSGetEnviron to set up the environment])]) + 
+AH_VERBATIM(_DARWIN_ENVIRON,
+[
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
+# include <sys/time.h>
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron())
+#endif
+])
+
 AH_VERBATIM(_AIX_STRINGS_H_BZERO,
 [
 /*
@@ -817,7 +826,14 @@
   kde_use_qt_emb_palm=no
 )
 
-if test "$kde_use_qt_emb" = "no"; then
+AC_ARG_ENABLE(
+  mac,
+  [  --enable-mac       link to Qt/Mac (don't use X)],
+  kde_use_qt_mac=$enableval,
+  kde_use_qt_mac=no
+)
+
+if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
 
 AC_MSG_CHECKING(for X)
 AC_LANG_SAVE
@@ -976,7 +992,7 @@
 LIB_XEXT="-lXext"
 QTE_NORTTI=""
 
-else
+elif test "$kde_use_qt_emb" = "yes"; then
   dnl We're using QT Embedded
   CPPFLAGS=-DQWS
   CXXFLAGS="$CXXFLAGS -fno-rtti"
@@ -996,6 +1012,26 @@
   AC_SUBST(X_LDFLAGS)
   AC_SUBST(x_includes)
   AC_SUBST(x_libraries)
+elif test "$kde_use_qt_mac" = "yes"; then
+  dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to
+  dnl be included to get the information) --Sam
+  CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
+  CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+  AC_SUBST(X_PRE_LIBS)
+  AC_SUBST(LIB_X11)
+  AC_SUBST(LIBSM)
+  AC_SUBST(X_INCLUDES)
+  AC_SUBST(X_LDFLAGS)
+  AC_SUBST(x_includes)
+  AC_SUBST(x_libraries)
 fi
 AC_SUBST(QTE_NORTTI)
 AC_SUBST(LIB_XEXT)
@@ -1157,7 +1193,7 @@
 
 CXXFLAGS="$CXXFLAGS -I$qt_includes"
 LDFLAGS="$LDFLAGS $X_LDFLAGS"
-if test "x$kde_use_qt_emb" != "xyes"; then
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
 LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
 else
 LIBS="$LIBQT $LIBSOCKET"
@@ -1324,7 +1360,7 @@
 
 AC_MSG_CHECKING([for Qt])
 
-if test "x$kde_use_qt_emb" != "xyes"; then
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
 LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
 fi
 ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
@@ -1388,6 +1424,12 @@
     if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried \
$dir" >&AC_FD_CC ; fi  done
 fi
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+    LIBQT="$LIBQT ${kde_int_qt}_incremental"
+    break
+  fi
+done
 
 ac_qt_libraries="$qt_libdir"
 
@@ -1485,12 +1527,18 @@
 
 KDE_CHECK_QT_JPEG
 
-if test "x$kde_use_qt_emb" != "xyes"; then
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
 LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
 else
 LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBPNG)'
 fi
 test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+     LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
+     break
+  fi
+done
 
 AC_SUBST(LIB_QT)
 AC_SUBST(LIB_QPE)
@@ -2128,7 +2176,7 @@
 char buffer[200];
 getdomainname(buffer, 200);
 ], 	
-	        [int getdomainname (char *, int)],
+	        [int getdomainname (char *, size_t)],
 		[GETDOMAINNAME])
 ])
 
@@ -2296,7 +2344,7 @@
    [AC_MSG_CHECKING([for giflib])
 AC_CACHE_VAL(ac_cv_lib_gif,
 [ac_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes"; then
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
 LIBS="$all_libraries -lgif -lX11 $LIBSOCKET"
 else
 LIBS="$all_libraries -lgif"
@@ -2500,7 +2548,7 @@
 AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 kde_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes"; then
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
 LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm"
 else
 LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm"
@@ -2559,7 +2607,7 @@
 AC_CACHE_VAL(ac_cv_lib_png,
 [
 kde_save_LIBS="$LIBS"
-if test "x$kde_use_qt_emb" != "xyes"; then
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
 LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
 else
 LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
@@ -3332,7 +3380,7 @@
     AC_LANG_C
     ac_save_ldflags="$LDFLAGS"
     ac_save_cflags="$CFLAGS"
-    if test "x$kde_use_qt_emb" != "xyes"; then
+    if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
       LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS \
$all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"  else
       LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS \
$all_libraries -lXpm $LIBZ $LIBSOCKET" @@ -3388,7 +3436,7 @@
    dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
    AC_CACHE_VAL(ac_cv_have_dpms,
    [
-    if test "x$kde_use_qt_emb" = "xyes"; then
+    if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
       AC_MSG_RESULT(no)
       ac_cv_have_dpms="no"
     else
@@ -3481,7 +3529,7 @@
     ac_save_ldflags="$LDFLAGS"
     ac_save_cxxflags="$CXXFLAGS"
     LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries -lMesaGL -lMesaGLU"
-    test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11"
+    test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && \
LDFLAGS="$LDFLAGS -lX11"  LDFLAGS="$LDFLAGS $LIB_XEXT -lm $LIBSOCKET"
     CXXFLAGS="$CFLAGS $X_INCLUDES"
     test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
@@ -3491,7 +3539,7 @@
 	ac_cv_have_gl="mesa", ac_cv_have_gl="no")
     if test "x$ac_cv_have_gl" = "xno"; then
       LDFLAGS="$ac_save_ldflags $X_LDFLAGS $GL_LDFLAGS $all_libraries -lGLU -lGL"
-      test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11"
+      test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && \
LDFLAGS="$LDFLAGS -lX11"  LDFLAGS="$LDFLAGS $LIB_XEXT -lm $LIBSOCKET"
       CXXFLAGS="$ac_save_cflags $X_INCLUDES"
       test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
@@ -3562,13 +3610,23 @@
           AC_CHECK_LIB(pam, pam_start,
             [ AC_CHECK_HEADER(security/pam_appl.h,
                 [ use_pam=yes
-                  pam_service=kde ]) 
+		  pam_header=security/pam_appl.h
+                  pam_service=kde ],
+		[ AC_CHECK_HEADER(pam/pam_appl.h,
+			[ use_pam=yes
+			  pam_header=pam/pam_appl.h
+			  pam_service=kde ])
+		]) 
             ], , $LIBDL)
           ac_cv_path_pam="use_pam=$use_pam pam_service=$pam_service"
         ])
     ])
   eval "$ac_cv_path_pam"
 
+  if test "$pam_header" = "pam/pam_appl.h"; then
+    AC_DEFINE(PAM_HEADER_IN_PAM, 1, [Define if your pam headers are in pam/ instead \
of security/]) +  fi
+
   AC_MSG_CHECKING(for PAM)
   if test "x$use_pam" = xno; then
     AC_MSG_RESULT(no)
@@ -3578,10 +3636,12 @@
     AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication \
Modules)])  PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
 
+    AC_CHECK_HEADERS([pam/pam_appl.h])
+
     dnl test whether struct pam_message is const (Linux) or not (Sun)
     AC_MSG_CHECKING(for const pam_message)
-    AC_EGREP_HEADER([struct pam_message], security/pam_appl.h,
-      [ AC_EGREP_HEADER([const struct pam_message], security/pam_appl.h,
+    AC_EGREP_HEADER([struct pam_message], $pam_header,
+      [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
                         [AC_MSG_RESULT([const: Linux-type PAM])],
                         [AC_MSG_RESULT([nonconst: Sun-type PAM])
                         AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM \
support takes non-const arguments (Solaris)])] @@ -4910,7 +4970,18 @@
       AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java \
executable is])  AC_MSG_RESULT([java JRE in $kde_java_bindir])
   fi
-else # no
+elif test -d "/Library/Java/Home"; then
+  kde_java_bindir="/Library/Java/Home/bin"
+  jni_includes="-I/Library/Java/Home/include"
+
+  JAVAC=$kde_java_bindir/javac
+  JAVAH=$kde_java_bindir/javah
+  JAR=$kde_java_bindir/jar
+  JVMLIBS="-Xlinker -framework -Xlinker JavaVM"
+
+  AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java \
executable is]) +  AC_MSG_RESULT([Apple Java Framework])
+else
   AC_MSG_RESULT([none found])
 fi
 
@@ -5065,7 +5136,7 @@
   kde_qtdir="$with_qt_dir"
 fi
 
-AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html \
/usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc \
/usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc \
/usr/share/qt3/doc/html ], QTDOCDIR) +AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html \
$QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc \
/usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc \
/usr/share/qt3/doc/html $prefix/share/doc/qt3/html ], QTDOCDIR)  \
AC_MSG_RESULT($QTDOCDIR)  
 AC_SUBST(QTDOCDIR)
Index: am_edit
===================================================================
RCS file: /home/kde/kde-common/admin/am_edit,v
retrieving revision 1.360
diff -u -r1.360 am_edit
--- am_edit	6 Mar 2003 17:51:02 -0000	1.360
+++ am_edit	13 Mar 2003 01:22:12 -0000
@@ -1044,7 +1044,7 @@
             if ($allidls !~ /$source\_kidl/) {
                 
                 $dep_lines .= "$source.kidl: $sourcedir$source.h \
                \$(DCOP_DEPENDENCIES)\n";
-                $dep_lines .= "\t\$(DCOPIDL) $sourcedir$source.h > $source.kidl || ( \
rm -f $source.kidl ; /bin/false )\n"; +                $dep_lines .= "\t\$(DCOPIDL) \
$sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n";  
                 $allidls .= $source . "_kidl ";
             }



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic