summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorclkao <clkao@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-07 18:37:18 +0800
committerclkao <clkao@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-07 18:37:18 +0800
commit30cf6d7fa18687f8bbb6823522e297df011f33da (patch)
treeb897d7c7eaf7dda57b91f19a59036f04dd9734eb
parent0a203d1b99591b7f478e1c45b16862a45886b17d (diff)
downloadpttbbs-30cf6d7fa18687f8bbb6823522e297df011f33da.tar
pttbbs-30cf6d7fa18687f8bbb6823522e297df011f33da.tar.gz
pttbbs-30cf6d7fa18687f8bbb6823522e297df011f33da.tar.bz2
pttbbs-30cf6d7fa18687f8bbb6823522e297df011f33da.tar.lz
pttbbs-30cf6d7fa18687f8bbb6823522e297df011f33da.tar.xz
pttbbs-30cf6d7fa18687f8bbb6823522e297df011f33da.tar.zst
pttbbs-30cf6d7fa18687f8bbb6823522e297df011f33da.zip
build on darwin.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5227 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/common/bbs/passwd.c2
-rw-r--r--pttbbs/common/osdep/cpuload.c2
-rw-r--r--pttbbs/docs/INSTALL1
-rw-r--r--pttbbs/include/osdep.h4
-rw-r--r--pttbbs/mbbsd/Makefile2
-rw-r--r--pttbbs/mbbsd/ccw.c7
-rw-r--r--pttbbs/pttbbs.mk13
7 files changed, 25 insertions, 6 deletions
diff --git a/pttbbs/common/bbs/passwd.c b/pttbbs/common/bbs/passwd.c
index e2370386..0318bc83 100644
--- a/pttbbs/common/bbs/passwd.c
+++ b/pttbbs/common/bbs/passwd.c
@@ -40,7 +40,7 @@ static int semid = -1;
#define SEM_A 0200
#endif
-#ifndef __FreeBSD__
+#if !defined( __FreeBSD__ ) && !__DARWIN_UNIX03
#include <sys/sem.h>
union semun {
int val; /* value for SETVAL */
diff --git a/pttbbs/common/osdep/cpuload.c b/pttbbs/common/osdep/cpuload.c
index be71fa72..54c79228 100644
--- a/pttbbs/common/osdep/cpuload.c
+++ b/pttbbs/common/osdep/cpuload.c
@@ -3,7 +3,7 @@
#include <string.h>
#include "osdep.h"
-#if defined( __FreeBSD__) || defined(_BSD_SOURCE)
+#if defined( __FreeBSD__) || defined(_BSD_SOURCE) || __DARWIN_UNIX03
#include <stdlib.h>
int
cpuload(char *str)
diff --git a/pttbbs/docs/INSTALL b/pttbbs/docs/INSTALL
index c3b6d64d..a47cae3a 100644
--- a/pttbbs/docs/INSTALL
+++ b/pttbbs/docs/INSTALL
@@ -47,6 +47,7 @@ $Id$
通常您須要進行修改以符合您的須求.
* 如果您是用 Linux系統, 請先安裝 pmake, 然後將 make alias 成 pmake *
+ * 如果您是用 MacOSX 系統, 請先由 ports 安裝 bmake, 然後將 make alias 成 pmake *
11.在編譯 pttbbs 之前, 您需要先裝好 libiconv, libhz, pgp
如果您使用的是 FreeBSD, 可以直接透過 ports安裝:
cd /usr/ports/converters/libiconv; make install
diff --git a/pttbbs/include/osdep.h b/pttbbs/include/osdep.h
index f1658a34..3a2e3b64 100644
--- a/pttbbs/include/osdep.h
+++ b/pttbbs/include/osdep.h
@@ -23,8 +23,8 @@
#define NEED_STRLCAT
#define NEED_SETPROCTITLE
-#elif ! defined(__FreeBSD__)
-#error "Unknown OSTYPE"
+#elif ! defined(__FreeBSD__) || ! defined( DARWIN )
+//#error "Unknown OSTYPE"
#endif
#define Signal (signal)
diff --git a/pttbbs/mbbsd/Makefile b/pttbbs/mbbsd/Makefile
index a4a7f4ac..b5da7665 100644
--- a/pttbbs/mbbsd/Makefile
+++ b/pttbbs/mbbsd/Makefile
@@ -69,7 +69,7 @@ DIETCC:= diet -Os
.endif
# reduce .bss align overhead
-.if !defined(DEBUG)
+.if !defined(DEBUG) && $(OSTYPE)!="Darwin"
LDFLAGS+=-Wl,--sort-common
.endif
diff --git a/pttbbs/mbbsd/ccw.c b/pttbbs/mbbsd/ccw.c
index d0b335c4..a72d9c0e 100644
--- a/pttbbs/mbbsd/ccw.c
+++ b/pttbbs/mbbsd/ccw.c
@@ -531,6 +531,10 @@ ccw_talkchat_close_log(CCW_CTX *ctx, int force_decide, int is_chat)
#define CCW_TALK_CMD_CLS "cls"
#define CCW_TALK_CMD_HELP "help"
+#ifndef MSG_NOSIGNAL // the use of NOSIGPIPE setsockopt should be enough
+#define MSG_NOSIGNAL 0x00
+#endif
+
CCW_PROTO ssize_t
ccw_talk_send(CCW_CTX *ctx, const char *msg)
{
@@ -656,6 +660,9 @@ ccw_talk(int fd, int destuid)
char fpath[PATHLEN];
char remote_id[IDLEN+1], local_id[IDLEN+1];
+ int on = 1;
+ setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&on, sizeof(on));
+
CCW_CTX ctx = {
.fd = fd,
.log_fpath = fpath,
diff --git a/pttbbs/pttbbs.mk b/pttbbs/pttbbs.mk
index 5473c999..84c6e3b7 100644
--- a/pttbbs/pttbbs.mk
+++ b/pttbbs/pttbbs.mk
@@ -10,6 +10,8 @@ OSTYPE!= uname
CC:= gcc
CXX:= g++
CCACHE!= which ccache|sed -e 's/^.*\///'
+WANTS_CONVERT!= sh -c 'grep "^\#define CONVERT" $(SRCROOT)/pttbbs.conf || echo NO'
+
.if $(CCACHE)
CC:= ccache $(CC)
CXX:= ccache $(CXX)
@@ -18,11 +20,20 @@ CXX:= ccache $(CXX)
PTT_CFLAGS:= -Wall -pipe -DBBSHOME='"$(BBSHOME)"' -I$(SRCROOT)/include
PTT_CXXFLAGS:= -Wall -pipe -DBBSHOME='"$(BBSHOME)"' -I$(SRCROOT)/include
PTT_LDFLAGS:=
-PTT_LDLIBS:= -lhz
+.if $(WANTS_CONVERT) != "NO"
+PTT_LDLIBS+= -lhz
+.endif
# enable assert()
#PTT_CFLAGS+= -DNDEBUG
+.if ${OSTYPE} == "Darwin"
+PTT_CFLAGS+= -I/opt/local/include -DNEED_SETPROCTITLE
+PTT_CXXFLAGS+= -I/opt/local/include
+PTT_LDFLAGS+= -L/opt/local/lib
+PTT_LDLIBS+= -liconv
+.endif
+
.if ${OSTYPE} == "FreeBSD"
# FreeBSD特有的環境
PTT_CFLAGS+= -I/usr/local/include