diff options
-rw-r--r-- | pttbbs/mbbsd/Makefile | 90 | ||||
-rw-r--r-- | pttbbs/mbbsd/io.c | 2 | ||||
-rw-r--r-- | pttbbs/mbbsd/nios.c | 4 | ||||
-rw-r--r-- | pttbbs/pttbbs.mk | 27 |
4 files changed, 69 insertions, 54 deletions
diff --git a/pttbbs/mbbsd/Makefile b/pttbbs/mbbsd/Makefile index 535c458c..8c196d26 100644 --- a/pttbbs/mbbsd/Makefile +++ b/pttbbs/mbbsd/Makefile @@ -11,7 +11,7 @@ PROG= mbbsd COREOBJS = bbs.o announce.o read.o board.o brc.o mail.o record.o fav.o ABUSEOBJS = captcha.o ACCOBJS = user.o acl.o register.o passwd.o emaildb.o -NETOBJS = mbbsd.o io.o term.o telnet.o +NETOBJS = mbbsd.o io.o term.o telnet.o nios.o TALKOBJS = friend.o talk.o ccw.o UTILOBJS = stuff.o kaede.o convert.o name.o syspost.o cache.o cal.o UIOBJS = menu.o vtuikit.o psb.o @@ -25,62 +25,58 @@ OBJS:= admin.o assess.o edit.o xyz.o var.o vote.o voteboard.o \ $(CHESSOBJS) $(GAMEOBJS) ####################################################################### -# conditional configurations and optional modules +# special library (DIET) configuration ####################################################################### -.if !defined(WITHOUT_LOG_CRAWLER) && defined(WITH_LOG_CRAWLER) -CFLAGS+= -DLOG_CRAWLER +.if defined(DIET) +LDFLAGS+= -L$(SRCROOT)/common/diet +LDLIBS+= -ldiet +DIETCC:= diet -Os .endif -.if !defined(WITHOUT_BBSLUA_USAGE) && defined(WITH_BBSLUA_USAGE) -CFLAGS+= -DBBSLUA_USAGE +# reduce .bss align overhead +.if !defined(DEBUG) && $(OSTYPE)!="Darwin" +LDFLAGS+=-Wl,--sort-common .endif -.if !defined(WITHOUT_BBSLUA) && defined(WITH_BBSLUA) -OBJS+= bbslua.o bbsluaext.o -CFLAGS+= -DUSE_BBSLUA -# MODIFY THESE ENVIRONMENT SETTINGS TO FIT YOUR CONFIGURATION -.if $(OSTYPE)=="FreeBSD" -CFLAGS:= ${CFLAGS} -I/usr/local/include/lua51 -#${:!pkg-config --cflags lua-5.1!} -LDLIBS:= ${LDLIBS} -L/usr/local/lib/lua51 -llua -lm -#${:!pkg-config --libs lua-5.1!} -.else -CFLAGS:= ${CFLAGS} ${:!pkg-config --cflags lua5.1!} -LDLIBS:= ${LDLIBS} ${:!pkg-config --libs lua5.1!} -.endif -.endif +####################################################################### +# common libraries +####################################################################### -.if !defined(WITHOUT_PFTERM) && defined(WITH_PFTERM) -OBJS+= pfterm.o -CFLAGS+= -DUSE_PFTERM -#CFLAGS+= -DDBG_OUTRPT -.else -OBJS+= screen.o -.endif +LDFLAGS+= -L$(SRCROOT)/common/bbs -L$(SRCROOT)/common/sys \ + -L$(SRCROOT)/common/osdep +LDLIBS+= -lcmbbs -lcmsys -losdep ####################################################################### -# special library (DIET) configuration +# conditional configurations and optional modules ####################################################################### -.if defined(DIET) -LDLIBS+= $(SRCROOT)/common/diet/libdiet.a -DIETCC:= diet -Os -.endif +BBSCONF:= $(SRCROOT)/pttbbs.conf +DEF_PATTERN:= ^[ \t]*\#[ \t]*define[ \t]* +USE_BBSLUA!= sh -c 'grep -Ew "${DEF_PATTERN}USE_BBSLUA" ${BBSCONF} || true' +USE_PFTERM!= sh -c 'grep -Ew "${DEF_PATTERN}USE_PFTERM" ${BBSCONF} || true' +USE_NIOS!= sh -c 'grep -Ew "${DEF_PATTERN}USE_NIOS" ${BBSCONF} || true' +USE_CONVERT!= sh -c 'grep -Ew "${DEF_PATTERN}CONVERT" ${BBSCONF} || true' -# reduce .bss align overhead -.if !defined(DEBUG) && $(OSTYPE)!="Darwin" -LDFLAGS+=-Wl,--sort-common +.if $(USE_BBSLUA) +.if $(OSTYPE)=="FreeBSD" +LUA_PKG_NAME?= lua-5.1 +LDLIBS+= -Wl,--no-as-needed +.else +LUA_PKG_NAME?= lua5.1 +.endif +LUA_CFLAGS!= pkg-config --cflags ${LUA_PKG_NAME} +LUA_LIBS!= pkg-config --libs ${LUA_PKG_NAME} +CFLAGS+= ${LUA_CFLAGS} +LDLIBS+= ${LUA_LIBS} +OBJS+= bbslua.o bbsluaext.o .endif -#.if defined(MERGEBBS) -#CFLAGS+= -DMERGEBBS -#OBJS+= ../upgrade/merge_sob.o -#.endif - -LDLIBS+=$(SRCROOT)/common/bbs/libcmbbs.a \ - $(SRCROOT)/common/sys/libcmsys.a \ - $(SRCROOT)/common/osdep/libosdep.a +.if $(USE_PFTERM) +OBJS+= pfterm.o +.else +OBJS+= screen.o +.endif ####################################################################### # Make Rules @@ -94,7 +90,13 @@ all: $(PROG) $(PROG): $(OBJS) sh $(SRCROOT)/util/newvers.sh - $(CC) $(LDFLAGS) -o $(PROG) $(OBJS) $(LDLIBS) vers.c + @printf "\033[0;1;32m" + @[ -z "$(USE_BBSLUA)" ] || echo -n "+BBSLUA " + @[ -z "$(USE_PFTERM)" ] || echo -n "+PFTERM " + @[ -z "$(USE_CONVERT)" ] || echo -n "+CONVERT " + @[ -z "$(USE_NIOS)" ] || echo -n "+NIOS " + @printf "\033[m" + $(CC) vers.c -o $(PROG) $(OBJS) $(LDFLAGS) $(LDLIBS) $(SRCROOT)/include/banip.h: $(SRCROOT)/util/banip.pl perl $(SRCROOT)/util/banip.pl > $@ diff --git a/pttbbs/mbbsd/io.c b/pttbbs/mbbsd/io.c index dd0b3ee7..dcd15aa1 100644 --- a/pttbbs/mbbsd/io.c +++ b/pttbbs/mbbsd/io.c @@ -320,7 +320,7 @@ process_pager_keys(int ch) return ch; } -#ifndef EXP_NIOS +#ifndef USE_NIOS /* ----------------------------------------------------- */ /* input routines */ diff --git a/pttbbs/mbbsd/nios.c b/pttbbs/mbbsd/nios.c index 53712676..f4086275 100644 --- a/pttbbs/mbbsd/nios.c +++ b/pttbbs/mbbsd/nios.c @@ -7,7 +7,7 @@ #include "vtkbd.h" #include "bbs.h" -#ifdef EXP_NIOS +#ifdef USE_NIOS // nios: piaip's Network I/O Stream // piaip's New implementation for Input and Output System @@ -689,6 +689,6 @@ vkey_purge() // TODO reset telnet/vtkbd/conver? } -#endif // EXP_NIOS +#endif // USE_NIOS // vim:ts=4:sw=4:et diff --git a/pttbbs/pttbbs.mk b/pttbbs/pttbbs.mk index 1ddc4c95..cb50eec1 100644 --- a/pttbbs/pttbbs.mk +++ b/pttbbs/pttbbs.mk @@ -1,29 +1,43 @@ # $Id$ -# 定義基本初值 + BBSHOME?= $(HOME) BBSHOME?= /home/bbs SRCROOT?= . - OSTYPE!= uname +# Detect best compiler +# CC:= gcc CXX:= g++ -CCACHE!= which ccache|sed -e 's/^.*\///' -WITH_CONVERT!= sh -c 'grep -w "^[\t ]*\#define[ \t]*CONVERT" $(SRCROOT)/pttbbs.conf || echo NO' + +CLANG!= sh -c 'type clang' +CCACHE!= sh -c 'type ccache' + +.if $(CLANG) +CC:= clang +.endif .if $(CCACHE) CC:= ccache $(CC) CXX:= ccache $(CXX) .endif -PTT_CFLAGS:= -W -Wall -Wunused -pipe -DBBSHOME='"$(BBSHOME)"' -I$(SRCROOT)/include -PTT_CXXFLAGS:= -W -Wall -Wunused -pipe -DBBSHOME='"$(BBSHOME)"' -I$(SRCROOT)/include +# Common build flags + +PTT_WARN:= -W -Wall -Wunused -Wno-missing-field-initializers +PTT_CFLAGS:= $(PTT_WARN) -pipe -DBBSHOME='"$(BBSHOME)"' -I$(SRCROOT)/include +PTT_CXXFLAGS:= $(PTT_WARN) -pipe -DBBSHOME='"$(BBSHOME)"' -I$(SRCROOT)/include PTT_LDFLAGS:= -Wl,--as-needed +.if $(CLANG) +PTT_CFLAGS+= -Qunused-arguments +.endif # enable assert() #PTT_CFLAGS+= -DNDEBUG +# Platform specific build flags + .if ${OSTYPE} == "Darwin" PTT_CFLAGS+= -I/opt/local/include -DNEED_SETPROCTITLE PTT_CXXFLAGS+= -I/opt/local/include @@ -51,7 +65,6 @@ NO_FORK= yes # 若有定義 DEBUG, 則在 CFLAGS內定義 DEBUG .if defined(DEBUG) GDB= 1 -#CFLAGS+= -DDEBUG PTT_CFLAGS+= -DDEBUG PTT_CXXFLAGS+= -DDEBUG .endif |