Annotation of sbbs/src/sbbs3/gnumakefile, revision 1.1.1.2

1.1       root        1: # GNUmakefile
                      2: 
                      3: #########################################################################
                      4: # Makefile for Synchronet BBS for Unix                                                                 #
                      5: # For use with GNU make and GNU C Compiler or Borland Kylix C++                        #
                      6: # @format.tab-size 4, @format.use-tabs true                                                            #
                      7: #                                                                                                                                              #
                      8: # gcc: gmake                                                                                                                   #
                      9: # Borland (still in testing/debuging stage): gmake bcc=1                               #
                     10: #                                                                                                                                              #
                     11: # Optional build targets: dlls, utils, mono, all (default)                             #
                     12: #########################################################################
                     13: 
1.1.1.2 ! root       14: # $Id: GNUmakefile,v 1.213 2011/09/05 20:18:32 deuce Exp $
1.1       root       15: 
1.1.1.2 ! root       16: PWD    :=      $(shell pwd)
        !            17: SRC_ROOT       ?=      ${PWD}/..
1.1       root       18: include $(SRC_ROOT)/build/Common.gmake
                     19: 
                     20: UTIL_LDFLAGS   :=      $(LDFLAGS)
                     21: UTIL_LDFLAGS   +=      $(SMBLIB_LDFLAGS) $(UIFC-MT_LDFLAGS) $(CIOLIB-MT_LDFLAGS) $(XPDEV_LDFLAGS)
                     22: UTIL_LIBS      +=      $(SMBLIB_LIBS)
                     23: 
                     24: ifndef bcc
                     25:  ifneq ($(os),sunos)
                     26:   LDFLAGS      +=      -lutil
                     27:  endif
                     28: endif
                     29: 
                     30: ifeq ($(os),sunos)    # Solaris
                     31:  LDFLAGS += -lnsl -lrt
1.1.1.2 ! root       32:  SBBS_LIBS     +=      -lkstat
1.1       root       33: endif
                     34: 
                     35: # So far, only QNX has sem_timedwait()
                     36: ifeq ($(os),qnx)
                     37:  LDFLAGS += -lsocket
                     38: endif
                     39: 
                     40: SBBS_LIBS      +=      -lcl
                     41: 
                     42: ifdef PREFIX
                     43:  CFLAGS += -DPREFIX=$(PREFIX)
                     44: endif
                     45: 
                     46: ifdef USE_DOSEMU
                     47:  CFLAGS += -DUSE_DOSEMU
                     48: endif
                     49: 
                     50: ifdef DONT_BLAME_SYNCHRONET
                     51:  CFLAGS += -DDONT_BLAME_SYNCHRONET
                     52: endif
                     53: 
1.1.1.2 ! root       54: ifeq ($(os),linux)
        !            55:  ifeq ($(shell test -f /usr/include/sys/capability.h && echo "yes"),yes)
        !            56:   CFLAGS += -DUSE_LINUX_CAPS
        !            57:   SBBS_LIBS += -lcap
        !            58:  endif
        !            59: endif
        !            60: 
1.1       root       61: # JS and NSPR setup stuff...
1.1.1.2 ! root       62: ifeq ($(shell nspr-config --version > /dev/null 2>&1 && echo YES),YES)
        !            63:  NSPRDIR ?= $(shell nspr-config --libdir)
        !            64:  NSPRINCLUDE ?= $(shell nspr-config --includedir)
        !            65: endif
1.1       root       66: 
                     67: ifeq ($(os),sunos)
                     68:  ifeq ($(shell test -f /usr/sfw/lib/mozilla/libmozjs.so && echo "yes"),yes)
                     69:   JSLIBDIR ?= /usr/sfw/lib/mozilla
                     70:   JSLIB ?= mozjs
                     71:  endif
                     72:  ifeq ($(shell test -f /usr/sfw/lib/mozilla/libnspr4.so && echo "yes"),yes)
                     73:   NSPRDIR ?= /usr/sfw/lib/mozilla
                     74:   ifeq ($(shell test -d /usr/sfw/include/mozilla/nspr && echo "yes"),yes)
                     75:    NSPRINCLUDE ?= /usr/sfw/include/mozilla/nspr
                     76:   endif
                     77:  endif
                     78: endif
                     79: 
                     80: CFLAGS += -DJAVASCRIPT
                     81: ifdef JSINCLUDE
                     82:  CFLAGS += -I$(JSINCLUDE)
                     83: else
                     84:  CFLAGS += -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)js
                     85: endif
                     86: ifdef NSPRINCLUDE
                     87:  CFLAGS += -I$(NSPRINCLUDE)
                     88: else
                     89:  # Use local NSPR first...
                     90:  CFLAGS += -I/usr/local/include -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)nspr
                     91: endif
                     92: ifdef CRYPTLIBINCLUDE
                     93:  CFLAGS += -I$(CRYPTLIBINCLUDE)
                     94: else
                     95:  CFLAGS += -I$(SRC_ROOT)/../include/cryptlib
                     96: endif
                     97: ifndef JSLIBDIR
                     98:  JSLIBDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)js$(DIRSEP)$(machine).$(BUILD)
                     99: endif
                    100: ifndef JSLIB
                    101:  JSLIB :=      js
                    102: endif
                    103: ifndef NSPRDIR
                    104:  NSPRDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)nspr$(DIRSEP)$(machine).$(BUILD)
                    105: endif
                    106: JS_LDFLAGS += -L$(JSLIBDIR) -l$(JSLIB)
                    107: #The following is needed for nspr support on Linux
                    108: ifeq ($(os),linux)
                    109:  JS_LDFLAGS    +=      -ldl
                    110: endif
                    111: JS_LDFLAGS     +=      -L/usr/local/lib -L$(NSPRDIR) -lnspr4
                    112: CFLAGS +=      $(JS_CFLAGS)
                    113: LDFLAGS        +=      $(JS_LDFLAGS)
                    114: 
                    115: ifndef CRYPTLIBDIR
1.1.1.2 ! root      116:  CRYPTLIBDIR := $(SRC_ROOT)/../lib/cryptlib/$(machine).release
1.1       root      117: endif
                    118: LDFLAGS        +=      -L$(CRYPTLIBDIR)
                    119: 
                    120: include sbbsdefs.mk
                    121: MT_CFLAGS      +=      $(SBBSDEFS)
                    122: 
                    123: # Set up LD_RUN_PATH for run-time locating of the .so files
                    124: ifdef SBBSDIR
                    125:  ifeq ($(os),sunos)
1.1.1.2 ! root      126:   LD_RUN_PATH  :=      $(SBBSDIR)/exec:$(LIBODIR):$(JSLIBDIR):$(NSPRDIR):$(CRYPTLIBDIR):/opt/sfw/gcc-3/lib
1.1       root      127:  else
1.1.1.2 ! root      128:   LD_RUN_PATH  :=      $(SBBSDIR)/exec:$(LIBODIR):$(JSLIBDIR):$(NSPRDIR):$(CRYPTLIBDIR)
1.1       root      129:  endif
                    130: else
                    131:  ifeq ($(os),sunos)
1.1.1.2 ! root      132:   LD_RUN_PATH  :=      $(PWD)/$(LIBODIR):$(JSLIBDIR):$(NSPRDIR):$(CRYPTLIBDIR):/opt/sfw/gcc-3/lib
1.1       root      133:  else
1.1.1.2 ! root      134:   LD_RUN_PATH  :=      $(PWD)/$(LIBODIR):$(JSLIBDIR):$(NSPRDIR):$(CRYPTLIBDIR)
1.1       root      135:  endif
                    136: endif
                    137: export LD_RUN_PATH
                    138: 
1.1.1.2 ! root      139: CON_LIBS       += -lsbbs -lftpsrvr -lwebsrvr -lmailsrvr -lservices
1.1       root      140: SHLIBOPTS      :=      -shared
                    141: ifeq ($(os),darwin)
                    142:  MKSHLIB               :=      libtool -dynamic -framework System -lcc_dynamic
                    143:  MKSHPPLIB             :=      libtool -dynamic -framework System -lcc_dynamic -lstdc++
                    144:  SHLIBOPTS     :=      
                    145: else
                    146:  ifeq ($(os),sunos)
                    147:   MKSHLIB              :=      /usr/ccs/bin/ld -G
                    148:   MKSHPPLIB            :=      /usr/ccs/bin/ld -G
                    149:   SHLIBOPTS    :=      
                    150:  else
                    151:   MKSHLIB              :=      $(CC)
                    152:   MKSHPPLIB            :=      $(CXX)
                    153:  endif
                    154: endif
                    155: 
                    156: CFLAGS +=      $(UIFC-MT_CFLAGS) $(XPDEV-MT_CFLAGS) $(SMBLIB_CFLAGS) $(CIOLIB-MT_CFLAGS)
1.1.1.2 ! root      157: CFLAGS +=      -I../comio
        !           158: vpath %.c ../comio
        !           159: OBJS   += $(MTOBJODIR)$(DIRSEP)comio_nix$(OFILE)
1.1       root      160: LDFLAGS +=     $(UIFC-MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(SMBLIB_LDFLAGS) $(CIOLIB-MT_LDFLAGS)
                    161: 
                    162: # Monolithic Synchronet executable Build Rule
                    163: $(SBBSMONO): $(MONO_OBJS) $(OBJS)
                    164:        @echo Linking $@
                    165:        $(QUIET)$(CXX) -o $@ $(LDFLAGS) $(MT_LDFLAGS) $(MONO_OBJS) $(OBJS) $(SBBS_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
                    166: 
                    167: # Synchronet BBS library Link Rule
                    168: $(SBBS): $(OBJS) $(LIBS)
                    169:        @echo Linking $@
                    170:        $(QUIET)$(MKSHPPLIB) $(LDFLAGS) -o $@ $(OBJS) $(SBBS_LIBS) $(LIBS) $(SHLIBOPTS)
                    171: 
                    172: # FTP Server Link Rule
                    173: $(FTPSRVR): $(MTOBJODIR)/ftpsrvr.o
                    174:        @echo Linking $@
                    175:        $(QUIET)$(MKSHLIB) $(LDFLAGS) $(MTOBJODIR)/ftpsrvr.o $(SHLIBOPTS) -o $@
                    176: 
                    177: # Mail Server Link Rule
                    178: $(MAILSRVR): $(MAIL_OBJS)
                    179:        @echo Linking $@
                    180:        $(QUIET)$(MKSHLIB) $(LDFLAGS) $(MAIL_OBJS) $(SHLIBOPTS) -o $@
                    181: 
                    182: # Web Server Link Rule
                    183: $(WEBSRVR): $(WEB_OBJS)
                    184:        @echo Linking $@
                    185:        $(QUIET)$(MKSHLIB) $(LDFLAGS) $(WEB_OBJS) $(SHLIBOPTS) -o $@
                    186: 
                    187: # Services Link Rule
                    188: $(SERVICES): $(SERVICE_OBJS)
                    189:        @echo Linking $@
                    190:        $(QUIET)$(MKSHLIB) $(LDFLAGS) $(SERVICE_OBJS) $(SHLIBOPTS) -o $@
                    191: 
                    192: # Synchronet Console Build Rule
                    193: $(SBBSCON): $(CON_OBJS) $(SBBS) $(FTPSRVR) $(WEBSRVR) $(MAILSRVR) $(SERVICES)
                    194:        @echo Linking $@
                    195:        $(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(CON_OBJS) $(CON_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
                    196: 
                    197: # Baja Utility
                    198: $(BAJA): $(BAJA_OBJS)
                    199:        @echo Linking $@
                    200:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(BAJA_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
                    201: 
                    202: # UnBaja Utility
                    203: $(UNBAJA): $(OBJODIR) $(EXEODIR) $(UNBAJA_OBJS)
                    204:        @echo Linking $@
                    205:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(UNBAJA_OBJS) $(XPDEV_LIBS) $(UTIL_LIBS)
                    206: 
                    207: # Node Utility
                    208: $(NODE): $(NODE_OBJS)
                    209:        @echo Linking $@
                    210:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(NODE_OBJS) $(XPDEV_LIBS)
                    211: 
                    212: # FIXSMB Utility
                    213: $(FIXSMB): $(FIXSMB_OBJS)
                    214:        @echo Linking $@
                    215:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(FIXSMB_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
                    216: 
                    217: # CHKSMB Utility
                    218: $(CHKSMB): $(CHKSMB_OBJS)
                    219:        @echo Linking $@
                    220:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(CHKSMB_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
                    221: 
                    222: # SMB Utility
                    223: $(SMBUTIL): $(SMBUTIL_OBJS)
                    224:        @echo Linking $@
                    225:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SMBUTIL_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
                    226: 
                    227: # SBBSecho (FidoNet Packet Tosser)
                    228: $(SBBSECHO): $(SBBSECHO_OBJS)
                    229:        @echo Linking $@
                    230:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SBBSECHO_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
                    231: 
                    232: # SBBSecho Configuration Program
                    233: $(ECHOCFG): $(ECHOCFG_OBJS)
                    234:        @echo Linking $@
                    235:        $(QUIET)$(CC) $(UTIL_LDFLAGS) $(MT_LDFLAGS) -o $@ $(ECHOCFG_OBJS) $(UIFC-MT_LDFLAGS) $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS)
                    236: 
                    237: # ADDFILES
                    238: $(ADDFILES): $(ADDFILES_OBJS)
                    239:        @echo Linking $@
                    240:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(ADDFILES_OBJS) $(XPDEV_LIBS)
                    241: 
                    242: # FILELIST
                    243: $(FILELIST): $(FILELIST_OBJS)
                    244:        @echo Linking $@
                    245:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(FILELIST_OBJS) $(XPDEV_LIBS)
                    246: 
                    247: # MAKEUSER
                    248: $(MAKEUSER): $(MAKEUSER_OBJS)
                    249:        @echo Linking $@
                    250:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(MAKEUSER_OBJS) $(XPDEV_LIBS)
                    251: 
                    252: # JSEXEC
                    253: $(JSEXEC): $(JSEXEC_OBJS) $(SBBS)
                    254:        @echo Linking $@
                    255:        $(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(JSEXEC_OBJS) -lsbbs $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS)
                    256: 
                    257: # ANS2ASC
                    258: $(ANS2ASC): $(OBJODIR)/ans2asc.o
                    259:        @echo Linking $@
                    260:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(OBJODIR)/ans2asc.o
                    261: 
                    262: # ASC2ANS
                    263: $(ASC2ANS): $(OBJODIR)/asc2ans.o
                    264:        @echo Linking $@
                    265:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(OBJODIR)/asc2ans.o
                    266: 
                    267: # SEXYZ
                    268: $(SEXYZ): $(SEXYZ_OBJS)
                    269:        @echo Linking $@
                    270:        $(QUIET)$(CC) $(UTIL_LDFLAGS) $(MT_LDFLAGS) -o $@ $(SEXYZ_OBJS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
                    271: 
                    272: # QWKNODES
                    273: $(QWKNODES): $(QWKNODES_OBJS)
                    274:        @echo Linking $@
                    275:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(QWKNODES_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
                    276: 
                    277: # SLOG
                    278: $(SLOG): $(SLOG_OBJS)
                    279:        @echo Linking $@
                    280:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SLOG_OBJS) $(XPDEV_LIBS)
                    281: 
                    282: # ALLUSERS
                    283: $(ALLUSERS): $(ALLUSERS_OBJS)
                    284:        @echo Linking $@
                    285:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(ALLUSERS_OBJS) $(XPDEV_LIBS)
                    286: 
                    287: # DELFILES
                    288: $(DELFILES): $(DELFILES_OBJS)
                    289:        @echo Linking $@
                    290:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(DELFILES_OBJS) $(XPDEV_LIBS)
                    291: 
                    292: # DUPEFIND
                    293: $(DUPEFIND): $(DUPEFIND_OBJS)
                    294:        @echo Linking $@
                    295:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(DUPEFIND_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
                    296: 
                    297: # SMBACTIV
                    298: $(SMBACTIV): $(SMBACTIV_OBJS)
                    299:        @echo Linking $@
                    300:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(SMBACTIV_OBJS) $(SMBLIB_LIBS) $(XPDEV_LIBS)
1.1.1.2 ! root      301: 
        !           302: # DSTSEDIT
        !           303: $(DSTSEDIT): $(DSTSEDIT_OBJS)
        !           304:        @echo Linking $@
        !           305:        $(QUIET)$(CC) $(UTIL_LDFLAGS) -o $@ $(DSTSEDIT_OBJS) $(XPDEV_LIBS)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.