summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pttbbs/mbbsd/Makefile90
-rw-r--r--pttbbs/mbbsd/io.c2
-rw-r--r--pttbbs/mbbsd/nios.c4
-rw-r--r--pttbbs/pttbbs.mk27
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