diff --git a/src/sbbs3/Common.gmake b/src/sbbs3/Common.gmake new file mode 100644 index 0000000000000000000000000000000000000000..36cdb61bcee9c08ed99df66398e61267155e1e56 --- /dev/null +++ b/src/sbbs3/Common.gmake @@ -0,0 +1,43 @@ +########## +# +# You really should set SBBS_SRC before calling this. +# +# Available options: +# NEED_JAVASCRIPT = Set flags for use with JS + +SBBS_SRC ?= $(XPDEV)../sbbs3/ +CFLAGS += -I$(SBBS_SRC) + +JS_CFLAGS += -DJAVASCRIPT +ifdef JSINCLUDE + JS_CFLAGS += -I$(JSINCLUDE) +else + JS_CFLAGS += -I$(XPDEV)../../include/mozilla/js +endif +ifndef JSLIBDIR + JSLIBDIR := $(XPDEV)../../lib/mozilla/js/$(os).$(BUILD) +endif +ifndef JSLIB + JSLIB := js +endif +ifndef NSPRDIR + NSPRDIR := $(XPDEV)../../lib/mozilla/nspr/$(os).$(BUILD) +endif +JS_LDFLAGS += -L$(JSLIBDIR) -l$(JSLIB) +#The following is needed for nspr support on Linux +ifeq ($(os),linux) + JS_LDFLAGS += -ldl +endif +JS_LDFLAGS += -lnspr4 -L$(NSPRDIR) + +ifdef NEED_JAVASCRIPT + CFLAGS += $(JS_CFLAGS) + LDFLAGS += $(JS_LDFLAGS) +endif + +vpath %.c $(SBBS_SRC) +vpath %.cpp $(SBBS_SRC) + +SBBSDEFS := +-include $(SBBS_SRC)sbbsdefs.mk # defines $(SBBSDEFS) +CFLAGS += $(SBBSDEFS) diff --git a/src/sbbs3/GNUmakefile b/src/sbbs3/GNUmakefile index 6391ec3bd140d4692f8a8f5f79991b5f67568148..0dd5f82f06539cc1fa4e2318e1e8e94559cfbf82 100644 --- a/src/sbbs3/GNUmakefile +++ b/src/sbbs3/GNUmakefile @@ -20,13 +20,16 @@ ifndef NO_CURSES USE_UIFC32 = 1 # Curses version of UIFC endif -UIFC = ../uifc/ -XPDEV = ../xpdev/ +UIFC_SRC = ../uifc/ +XPDEV = ../xpdev/ +SBBS_SRC = ./ NEED_JAVASCRIPT := 1 NEED_THREADS := 1 include $(XPDEV)/Common.gmake +include $(SBBS_SRC)/Common.gmake +include $(UIFC_SRC)/Common.gmake ifeq ($(os),freebsd) BSD = 1 @@ -37,6 +40,7 @@ else endif CFLAGS += -I$(XPDEV) +CFLAGS += $(UIFC_CFLAGS) ifndef bcc LDFLAGS += -lm -lutil @@ -295,6 +299,7 @@ ECHOCFG_OBJS = \ $(LIBODIR)/echocfg.o \ $(LIBODIR)/rechocfg.o \ $(UIFC_OBJS) \ + $(LIBODIR)/uifcx.o \ $(LIBODIR)/nopen.o \ $(LIBODIR)/crc16.o \ $(LIBODIR)/str_util.o \ diff --git a/src/sbbs3/install/GNUmakefile b/src/sbbs3/install/GNUmakefile index 9a038d7a6a8bac4f90fb0825c9ab17bf199777e3..de2666540bf77035cc7bfc93bb0cfa4765b6171f 100644 --- a/src/sbbs3/install/GNUmakefile +++ b/src/sbbs3/install/GNUmakefile @@ -22,6 +22,7 @@ XPDEV = ../../xpdev/ NEED_UIFC := 1 include $(XPDEV)/Common.gmake +include $(UIFC)/Common.gmake ifdef STATIC LDFLAGS += -static diff --git a/src/sbbs3/scfg/GNUmakefile b/src/sbbs3/scfg/GNUmakefile index df0f21b4ad35bc3be69d2ff5b2c8cba615914f9b..2cf58a26c41ac3d33c46059ffbfd799b99aafa38 100644 --- a/src/sbbs3/scfg/GNUmakefile +++ b/src/sbbs3/scfg/GNUmakefile @@ -22,8 +22,12 @@ endif UIFC = ../../uifc/ XPDEV = ../../xpdev/ +SBBS_SRC = ../ NEED_UIFC := 1 include $(XPDEV)Common.gmake +include $(UIFC)Common.gmake +include $(SBBS_SRC)Common.gmake + SCFG := $(EXEODIR)$(SLASH)scfg$(EXEFILE) $(MAKEHELP): makehelp.c diff --git a/src/sbbs3/uedit/GNUmakefile b/src/sbbs3/uedit/GNUmakefile index 44505ac0cd6b4c2827bc6cf82a74d95ddba21138..48c3bf76ee8a4d4c1938402b3c60366700a5d7a9 100644 --- a/src/sbbs3/uedit/GNUmakefile +++ b/src/sbbs3/uedit/GNUmakefile @@ -17,9 +17,11 @@ USE_UIFC32 := 1 # Use new uifc32 implementation XPDEV = ../../xpdev/ -SBBS3 = ../ +SBBS_SRC = ../ NEED_UIFC := 1 include $(XPDEV)Common.gmake +include $(SBBS_SRC)Common.gmake +include $(UIFC)Common.gmake FORCE$(EXEODIR)/uedit: $(EXEODIR) $(OBJS) $(BUILD_DEPENDS) diff --git a/src/sbbs3/umonitor/GNUmakefile b/src/sbbs3/umonitor/GNUmakefile index c18f26ce885b39a0cb6f8e221f5050811c49f0d1..03f4bde5ca6575827f8b2037ca13b35dc07fe17f 100644 --- a/src/sbbs3/umonitor/GNUmakefile +++ b/src/sbbs3/umonitor/GNUmakefile @@ -18,10 +18,12 @@ USE_UIFC32 := 1 # Use new uifc32 implementation UIFC = ../../uifc/ XPDEV = ../../xpdev/ -SBBS3 = ../ +SBBS_SRC = ../ NEED_UIFC := 1 include $(XPDEV)Common.gmake +include $(SBBS_SRC)Common.gmake +include $(UIFC)Common.gmake FORCE$(EXEODIR)/umonitor: $(EXEODIR) $(OBJS) $(BUILD_DEPENDS) diff --git a/src/uifc/Common.gmake b/src/uifc/Common.gmake new file mode 100644 index 0000000000000000000000000000000000000000..027ff389409f9a56b8afcabf753737598335cd02 --- /dev/null +++ b/src/uifc/Common.gmake @@ -0,0 +1,62 @@ +# Available Options: +# NEED_CURSES = Set flags suitable for building with the curses lib +# NEED_UIFC = Set flags for use with UIFC + +# You really should set this first. +UIFC_SRC ?= $(XPDEV)../uifc/ + +# UIFC Related stuff +UIFC_CFLAGS += -I$(UIFC_SRC) +# Don't set this magically until Borland makefiles are fixed +#UIFC_OBJS = $(LIBODIR)/uifcx.o +ifdef USE_FLTK + UIFC_CFLAGS += -DUSE_FLTK -I$(XPDEV)/../../include/fltk + UIFC_LDFLAGS += -L$(XPDEV)../../lib/fltk/$(os) -L/usr/X11R6/lib -lm -lfltk -lX11 + UIFC_OBJS+= $(LIBODIR)/uifcfltk.o +endif +ifdef USE_DIALOG + LDFLAGS += -L$(XPDEV)../libdialog -ldialog $(CURSESLIB) + CFLAGS += -I$(XPDEV)../libdialog -DUSE_DIALOG + UIFC_NEED_CURSES := 1 +endif +ifdef USE_CURSES + UIFC_CFLAGS += -DUSE_CURSES + UIFC_LDFLAGS += $(CURSES_LDFLAGS) + UIFC_OBJS += $(LIBODIR)/uifcc.o + UIFC_NEED_CURSES := 1 +endif +ifdef USE_UIFC32 + UIFC_CFLAGS += -DUSE_UIFC32 + UIFC_LDFLAGS += $(CURSES_LDFLAGS) + UIFC_OBJS += $(LIBODIR)/uifc32.o + UIFC_OBJS += $(LIBODIR)/ciowrap.o + UIFC_NEED_CURSES := 1 +endif +ifdef NEED_UIFC + CFLAGS += $(UIFC_CFLAGS) + LDFLAGS += $(UIFC_LDFLAGS) +endif + +# Curses Stuff +ifeq ($(os),qnx) + CURSES_LDFLAGS += -lncurses +else + ifeq ($(os),netbsd) + CURSES_CFLAGS += -I/usr/pkg/include + CURSES_LDFLAGS += -lncurses + else + CURSES_LDFLAGS += -lcurses + endif +endif + +ifdef NEED_CURSES + CFLAGS += $(CURSES_CFLAGS) + LDFLAGS += $(CURSES_LDFLAGS) +endif +ifdef UIFC_NEED_CURSES + UIFC_CFLAGS += $(CURSES_CFLAGS) + UIFC_LDFLAGS += $(CURSES_LDFLAGS) +endif + +vpath %.c $(UIFC_SRC) +vpath %.cpp $(UIFC_SRC) diff --git a/src/xpdev/Common.gmake b/src/xpdev/Common.gmake index cb76b1dfe119950a97fc172b01b1bf752aef2aaf..b4c93926dfebd72bf1020bb8b29935d0103893c7 100644 --- a/src/xpdev/Common.gmake +++ b/src/xpdev/Common.gmake @@ -1,11 +1,5 @@ # Available Options: # NEED_THREADS = Set flags suitable for threaded programs -# NEED_CURSES = Set flags suitable for building with the curses lib -# NEED_JAVASCRIPT = Set flags for use with JS -# NEED_UIFC = Set flags for use with UIFC - -UIFC_DIR ?= $(XPDEV)../uifc/ -SBBS_SRC ?= $(XPDEV)../sbbs3/ # Set DEBUG ifndef DEBUG @@ -19,28 +13,19 @@ ifndef VERBOSE QUIET = @ endif -CFLAGS += -I$(SBBS_SRC) - # Compiler-specific options -ifdef bcc - CC := bc++ - CCPRE := bcc - CFLAGS += -mm -md -D__unix__ -w-csu -w-pch -w-ccc -w-rch -w-par -w-aus -# CFLAGS += -q -w -D__unix__ +CFLAGS += -MMD -Wall +CCPRE ?= gcc +ifdef BUILD_DEPENDS + CC = $(XPDEV)../build/mkdep -a + CXX = $(XPDEV)../build/mkdep -a + LD = echo + COMPILE_MSG := Depending else - CFLAGS += -MMD -Wall - CCPRE ?= gcc - ifdef BUILD_DEPENDS - CC = $(XPDEV)../build/mkdep -a - CXX = $(XPDEV)../build/mkdep -a - LD = echo - COMPILE_MSG := Depending - else - CC ?= gcc - CXX ?= g++ - LD ?= ld - COMPILE_MSG := Compiling - endif + CC ?= gcc + CXX ?= g++ + LD ?= ld + COMPILE_MSG := Compiling endif SLASH = / @@ -51,7 +36,7 @@ ifdef DEBUG else BUILD = release endif -BUILDPATH := $(BUILD) +BUILDPATH ?= $(BUILD) # Get OS ifndef os @@ -63,7 +48,16 @@ LIBODIR := $(CCPRE).$(os).lib.$(BUILDPATH) EXEODIR := $(CCPRE).$(os).exe.$(BUILDPATH) LDFLAGS += -L$(LIBODIR) -DELETE = rm -fv +ifeq ($(os),netbsd) + DELETE := rm -f +else + ifeq ($(os),openbsd) + DELETE := rm -f + else + DELETE = rm -fv + endif +endif + EXEFILE := ifeq ($(os),openbsd) @@ -123,11 +117,7 @@ else else # Linux / Other UNIX XP_SEM := 1 PTHREAD_CFLAGS += -DUSE_XP_SEMAPHORES - ifdef bcc - PTHREAD_LDFLAGS += libpthread.a - else - PTHREAD_LDFLAGS += -lpthread - endif + PTHREAD_LDFLAGS += -lpthread endif endif endif @@ -141,107 +131,20 @@ ifdef NEED_THREADS endif ifdef DEBUG - ifdef bcc - CFLAGS += -v -y -0d - else - CFLAGS += -ggdb - endif + CFLAGS += -ggdb CFLAGS += -D_DEBUG ODIR := $(ODIR).debug else # RELEASE - CFLAGS += -O3 + CFLAGS := -O3 $(CFLAGS) ODIR := $(ODIR).release endif -# UIFC Related stuff -UIFC_CFLAGS += -I$(UIFC) -UIFC_OBJS = $(LIBODIR)/uifcx.o -ifdef USE_FLTK - UIFC_CFLAGS += -DUSE_FLTK -I$(XPDEV)/../../include/fltk - UIFC_LDFLAGS += -L$(XPDEV)../../lib/fltk/$(os) -L/usr/X11R6/lib -lm -lfltk -lX11 - UIFC_OBJS+= $(LIBODIR)/uifcfltk.o -endif -ifdef USE_DIALOG - LDFLAGS += -L$(XPDEV)../libdialog -ldialog $(CURSESLIB) - CFLAGS += -I$(XPDEV)../libdialog -DUSE_DIALOG - UIFC_NEED_CURSES := 1 -endif -ifdef USE_CURSES - UIFC_CFLAGS += -DUSE_CURSES - UIFC_LDFLAGS += $(CURSES_LDFLAGS) - UIFC_OBJS += $(LIBODIR)/uifcc.o - UIFC_NEED_CURSES := 1 -endif -ifdef USE_UIFC32 - UIFC_CFLAGS += -DUSE_UIFC32 - UIFC_LDFLAGS += $(CURSES_LDFLAGS) - UIFC_OBJS += $(LIBODIR)/uifc32.o - UIFC_OBJS += $(LIBODIR)/ciowrap.o - UIFC_NEED_CURSES := 1 -endif -ifdef NEED_UIFC - CFLAGS += $(UIFC_CFLAGS) - LDFLAGS += $(UIFC_LDFLAGS) -endif - -# Curses Stuff -ifeq ($(os),qnx) - CURSES_LDFLAGS += -lncurses -else - ifeq ($(os),netbsd) - CURSES_CFLAGS += -I/usr/pkg/include - CURSES_LDFLAGS += -lncurses - else - CURSES_LDFLAGS += -lcurses - endif -endif - -ifdef NEED_CURSES - CFLAGS += $(CURSES_CFLAGS) - LDFLAGS += $(CURSES_LDFLAGS) -endif -ifdef UIFC_NEED_CURSES - UIFC_CFLAGS += $(CURSES_CFLAGS) - UIFC_LDFLAGS += $(CURSES_LDFLAGS) -endif - -JS_CFLAGS += -DJAVASCRIPT -ifdef JSINCLUDE - JS_CFLAGS += -I$(JSINCLUDE) -else - JS_CFLAGS += -I$(XPDEV)../../include/mozilla/js -endif -ifndef JSLIBDIR - JSLIBDIR := $(XPDEV)../../lib/mozilla/js/$(os).$(BUILD) -endif -ifndef JSLIB - JSLIB := js -endif -ifndef NSPRDIR - NSPRDIR := $(XPDEV)../../lib/mozilla/nspr/$(os).$(BUILD) -endif -JS_LDFLAGS += -L$(JSLIBDIR) -l$(JSLIB) -#The following is needed for nspr support on Linux -ifeq ($(os),linux) - JS_LDFLAGS += -ldl -endif -JS_LDFLAGS += -lnspr4 -L$(NSPRDIR) - -ifdef NEED_JAVASCRIPT - CFLAGS += $(JS_CFLAGS) - LDFLAGS += $(JS_LDFLAGS) -endif - vpath %.c $(XPDEV) -vpath %.c $(UIFC_DIR) -vpath %.c $(SBBS_SRC) -vpath %.cpp $(UIFC_DIR) -vpath %.cpp $(SBBS_SRC) -CFLAGS += -I$(XPDEV) -I$(UIFC_DIR) -I$(SBBS_SRC) +CFLAGS += -I$(XPDEV) -SBBSDEFS := -include targets.mk +-include $(XPDEV)rules.mk -include objects.mk # defines $(OBJS) ifdef NEED_UIFC OBJS += $(UIFC_OBJS) @@ -249,31 +152,6 @@ endif ifdef XP_SEM OBJS += $(LIBODIR)$(SLASH)xpsem.$(OFILE) endif --include sbbsdefs.mk # defines $(SBBSDEFS) - -# Implicit C Compile Rule for SBBS -$(LIBODIR)/%.o : %.c $(BUILD_DEPENDS) - ifndef bcc - @echo $(COMPILE_MSG) $< - endif - $(QUIET)$(CC) $(CFLAGS) $(SBBSDEFS) -o $@ -c $< - -# Implicit C++ Compile Rule for SBBS -$(LIBODIR)/%.o : %.cpp $(BUILD_DEPENDS) - ifndef bcc - @echo $(COMPILE_MSG) $< - endif - $(QUIET)$(CXX) $(CFLAGS) $(SBBSDEFS) -o $@ -c $< - -$(LIBODIR): - $(QUIET)mkdir $(LIBODIR) - -$(EXEODIR): - $(QUIET)mkdir $(EXEODIR) - -clean: - $(QUIET)$(DELETE) $(LIBODIR)$(SLASH)* - $(QUIET)$(DELETE) $(EXEODIR)$(SLASH)* depend: $(QUIET)$(DELETE) $(LIBODIR)/.depend