diff options
author | clkao <clkao@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-11-07 18:37:18 +0800 |
---|---|---|
committer | clkao <clkao@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-11-07 18:37:18 +0800 |
commit | 30cf6d7fa18687f8bbb6823522e297df011f33da (patch) | |
tree | b897d7c7eaf7dda57b91f19a59036f04dd9734eb | |
parent | 0a203d1b99591b7f478e1c45b16862a45886b17d (diff) | |
download | pttbbs-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.c | 2 | ||||
-rw-r--r-- | pttbbs/common/osdep/cpuload.c | 2 | ||||
-rw-r--r-- | pttbbs/docs/INSTALL | 1 | ||||
-rw-r--r-- | pttbbs/include/osdep.h | 4 | ||||
-rw-r--r-- | pttbbs/mbbsd/Makefile | 2 | ||||
-rw-r--r-- | pttbbs/mbbsd/ccw.c | 7 | ||||
-rw-r--r-- | pttbbs/pttbbs.mk | 13 |
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 |