commit efd245145048d0470351067e54fc4509f1494809
parent dc2983ebfc32a308dcadcdd4deb598766264c42d
Author: Jaromil <jaromil@dyne.org>
Date:   Tue, 11 Sep 2012 03:34:58 +0200
fixes to osx build
Diffstat:
2 files changed, 91 insertions(+), 55 deletions(-)
diff --git a/build/build-osx.sh b/build/build-osx.sh
@@ -16,14 +16,24 @@
 
 builddir=`pwd`
 
-cc="${builddir}/clang-static-osx.sh"
+cc="${builddir}/cc-static.zsh"
+
 #cflags="-arch x86_64 -arch i386 -O2"
 
+cflags="-I/opt/local/include -I/usr/include"
+ldflags="-L/opt/local/lib -L/usr/lib"
+
+
+target=all
+{ test -z $1 } || { target="$1" }
+# no other distro supported atm
 
 pushd ..
 
 mkdir -p build/osx/dylib
 
+root=`pwd`
+
 copydeps() {
 	# copy a binary and all dependencies until 3rd level
 	print "`basename $1`"
@@ -81,66 +91,92 @@ if ! [ -r /opt/local/bin/port ]; then
 	return 1
 fi
 
-
+{ test "$target" = "abquery" } || { 
+    test "$target" = "all" } && {
 # build apple addressbook query
-print "Address book query"
-pushd src/ABQuery
-xcodebuild > /dev/null
-popd
-cp src/ABQuery/build/Release/lbdb-ABQuery build/osx/ABQuery
-
+    print "Address book query"
+    pushd src/ABQuery
+    xcodebuild > /dev/null
+    popd
+    cp src/ABQuery/build/Release/lbdb-ABQuery build/osx/ABQuery
+}
 
+  
+{ test "$target" = "fetchaddr" } || { 
+    test "$target" = "all" } && {
 # build our own address parser
-pushd src
-print "Address parser"
-$cc -c fetchaddr.c helpers.c rfc2047.c rfc822.c; \
-$cc -o fetchaddr fetchaddr.o helpers.o rfc2047.o rfc822.o;
-popd
-
+    pushd src
+    print "Address parser"
+    $cc -c fetchaddr.c helpers.c rfc2047.c rfc822.c; \
+	$cc -o fetchaddr fetchaddr.o helpers.o rfc2047.o rfc822.o;
+    popd
+}
 
+{ test "$target" = "mairix" } || { 
+    test "$target" = "all" } && {
 # build mairix
-pushd src/mairix
-print "Search engine and date parser"
-CC="$cc" LD=/usr/bin/ld CPP=/usr/bin/cpp \
-    ./configure --disable-gzip-mbox --disable-bzip-mbox \
-    > /dev/null ; make 2>&1 > /dev/null
-popd
+    pushd src/mairix
+    print "Search engine and date parser"
+    CC="$cc" LD=/usr/bin/ld CPP=/usr/bin/cpp \
+	./configure --disable-gzip-mbox --disable-bzip-mbox \
+	> /dev/null ; make 2>&1 > /dev/null
+    popd
+}
 
+{ test "$target" = "fetchdate" } || { 
+    test "$target" = "all" } && {
 # build our own fetchdate
-pushd src
-$cc -I mairix -c fetchdate.c
-$cc -DHAS_STDINT_H -DHAS_INTTYPES_H \
-    -o fetchdate fetchdate.o \
-    mairix/datescan.o mairix/db.o mairix/dotlock.o \
-    mairix/expandstr.o mairix/glob.o mairix/md5.o \
-    mairix/nvpscan.o mairix/rfc822.o mairix/stats.o \
-    mairix/writer.o mairix/dates.o mairix/dirscan.o \
-    mairix/dumper.o mairix/fromcheck.o mairix/hash.o mairix/mbox.o \
-    mairix/nvp.o mairix/reader.o mairix/search.o mairix/tok.o
-popd
+    pushd src
+    $cc -I mairix -c fetchdate.c
+    $cc -DHAS_STDINT_H -DHAS_INTTYPES_H \
+	-o fetchdate fetchdate.o \
+	mairix/datescan.o mairix/db.o mairix/dotlock.o \
+	mairix/expandstr.o mairix/glob.o mairix/md5.o \
+	mairix/nvpscan.o mairix/rfc822.o mairix/stats.o \
+	mairix/writer.o mairix/dates.o mairix/dirscan.o \
+	mairix/dumper.o mairix/fromcheck.o mairix/hash.o mairix/mbox.o \
+	mairix/nvp.o mairix/reader.o mairix/search.o mairix/tok.o
+    popd
+}
+
 
+{ test "$target" = "dotlock" } || { 
+    test "$target" = "all" } && {
 # build our own dotlock
-pushd src
-$cc -c dotlock.c
-$cc -o dotlock dotlock.o
-popd
+    pushd src
+    $cc -c dotlock.c
+    $cc -o dotlock dotlock.o
+    popd
+}
 
-# build our own msmtp
-# port deps: libidn gnutls
-pushd src/msmtp
-print "SMTP Simple mail transport protocol agent"
-CC="$cc" LD=/usr/bin/ld CPP=/usr/bin/cpp \
-    ./configure --without-macosx-keyring --without-gnome-keyring \
-    > /dev/null ; make 2>&1 > /dev/null
-popd
+# { test "$target" = "msmtp" } || { 
+#     test "$target" = "all" } && {
+# # build our own msmtp
+# # port deps: libidn gnutls
+#     pushd src/msmtp
+#     print "SMTP Simple mail transport protocol agent"
+#     CC="$cc" LD=/usr/bin/ld CPP=/usr/bin/cpp \
+# 	./configure --without-macosx-keyring --without-gnome-keyring \
+# 	> /dev/null ; make 2>&1 > /dev/null
+#     popd
+# }
 
 # build our own mutt
-# port deps: db48 tokyocabinet
-pushd src/mutt-src
-print "MUA Mail user agent"
-CC="$cc" LD=/usr/bin/ld CPP=/usr/bin/cpp CFLAGS="$CFLAGS -I/opt/local/include -L/opt/local/lib" \
-    ./configure --with-ssl --enable-imap --enable-hcache --with-regex --with-tokyocabinet
-popd
+{ test "$target" = "mutt" } || { 
+    test "$target" = "all" } && {
+    echo "Compiling Mutt (MUA)"
+    pushd src/mutt-1.5.21
+
+    CC=clang CFLAGS="$cflags" LDFLAGS="$ldflags" ./configure \
+	--with-ssl --with-gnutls --enable-imap --disable-debug \
+	--with-slang --disable-gpgme \
+	--enable-hcache --with-regex --with-tokyocabinet \
+	--with-mixmaster=${root}/src/mixmaster --enable-pgp
+    make
+    { test $? = 0 } && { mv mutt mutt-jaro }
+    popd
+}
+
 
  #  CFLAGS="${=cflags}" \
 
@@ -149,10 +185,10 @@ popd
 cp src/fetchdate build/osx/
 cp src/fetchaddr build/osx/
 cp src/mairix/mairix build/osx/
-cp src/msmtp/src/msmtp build/osx/
+# cp src/msmtp/src/msmtp build/osx/
 cp src/dotlock build/osx/
-copydeps /opt/local/bin/mutt
-copydeps build/osx/msmtp
+copydeps ${root}/src/mutt-1.5.21/mutt-jaro
+copydeps /opt/local/bin/msmtp
 copydeps /opt/local/bin/pinentry
 copydeps /opt/local/bin/lynx
 
diff --git a/build/cc-static.zsh b/build/cc-static.zsh
@@ -60,7 +60,7 @@ arguments=($@)
 linkdep() {
     # # descend lib dependencies
     dep="`basename ${1}`"
-    { test "$dep" = "" } && { echo "Error: linkdep called with void argument"; return 1 }
+    { test "$dep" = "" } && { print "Error: linkdep called with void argument"; return 1 }
 
     dep=${dep/lib/} # strip lib- prefix
 
@@ -109,7 +109,7 @@ linkdep() {
 
 	    return 1
 
-	else echo "$dep not found in ${l}";  return 10
+	else print "$dep not found in ${l}";  return 10
 
 	fi
     done
@@ -160,7 +160,7 @@ echo $arguments | grep -i ' -l' > /dev/null
 typeset -U arguments
 
 # execute
-echo "$cc ${=cflags} ${=arguments}"
+print "$cc ${=cflags} ${=arguments}"
 $cc ${=cflags} ${=arguments}