summaryrefslogblamecommitdiffstats
path: root/mbbsd/Makefile
blob: 8a79683fa0cc5c2c2905d1eaa73b0b88281b8492 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                                    





                         


                                                                 

                                  
                                           
 
                        
                         
 






                                             
                            
                
 
                                        


                                    
 
                                             
                                  
                                
                                             
     


                                                                
                                                          

      
                                         
                  
                       

      
                                             
                    
                         

      
             
                                                                     
                                                                           
                                                                      


                                                                        
                                                       


                  
                        
                               



                
                                                   
 


                                                           





                                    


                                                 
                                                                        
                                                                         


                             
# $Id: Makefile,v 1.23 2003/05/01 08:14:37 in2 Exp $

# 訂義基本初值
BBSHOME?=   $(HOME)
BBSHOME?=   /home/bbs
OSTYPE?=    FreeBSD
CC?=        gcc
PTT_CFLAGS= -Wall -pipe -DBBSHOME='"$(BBSHOME)"' -I../include
PTT_LDFLAGS=    -pipe -Wall
PTT_LIBS=   -lcrypt

# 在 CFLAGS內加入定義 COMPILE_TIME
PTT_CFLAGS+=    "-DCOMPILE_TIME=\"`date`\""

# 稍後再 enable assert()
PTT_CFLAGS+=    -DNDEBUG 

# FreeBSD特有的環境
CFLAGS_FreeBSD= -DHAVE_SETPROCTITLE -DFreeBSD
LDFLAGS_FreeBSD=
LIBS_FreeBSD=   -lkvm

# Linux特有的環境
CFLAGS_linux=   -DHAVE_DES_CRYPT -DLinux
LDFLAGS_linux=  -pipe -Wall 
LIBS_linux= 

# CFLAGS, LDFLAGS, LIBS 加入 OS 相關參數
PTT_CFLAGS+=    $(CFLAGS_$(OSTYPE))
PTT_LDFLAGS+=   $(LDFLAGS_$(OSTYPE))
PTT_LIBS+=  $(LIBS_$(OSTYPE))

# 若有定義 GDB或 DEBUG, 則加入 -g , 否則用 -O
.if defined(GDB) || defined(DEBUG)
CFLAGS=     -g $(PTT_CFLAGS)
LDFLAGS=    -g $(PTT_LDFLAGS) $(PTT_LIBS)
.else
CFLAGS+=    -O2 -Os -fomit-frame-pointer -fstrength-reduce \
        -fthread-jumps -fexpensive-optimizations \
        $(PTT_CFLAGS)
LDFLAGS+=   -O2 $(PTT_LDFLAGS) $(PTT_LIBS) $(EXT_LIBS)
.endif

# 若有定義 DEBUG, 則在 CFLAGS內定義 DEBUG
.if defined(DEBUG)
CFLAGS+=    -DDEBUG
.endif

# 若有定義 NO_FORK, 則在 CFLAGS內定義 NO_FORK
.if defined(NO_FORK)
CFLAGS+=    -DNO_FORK
.endif

PROG=   mbbsd
OBJS=   admin.o announce.o args.o bbs.o board.o cache.o cal.o card.o\
    chat.o chc_draw.o chc_net.o chc_play.o chc_rule.o chicken.o dark.o\
    edit.o friend.o gamble.o gomo.o gomo1.o guess.o indict.o io.o\
    kaede.o lovepaper.o mail.o mbbsd.o menu.o more.o name.o osdep.o\
    othello.o page.o read.o record.o register.o screen.o stuff.o\
    talk.o term.o topsong.o user.o vice.o vote.o xyz.o\
    voteboard.o syspost.o var.o toolkit.o passwd.o\
    calendar.o

.SUFFIXES: .c .o
.c.o:   ../include/var.h
    $(CC) $(CFLAGS) -c $*.c

all: $(PROG)

$(PROG): $(OBJS)
    $(CC) $(LDFLAGS) -o $(PROG) $(OBJS) $(LIBS)

../include/var.h:   var.c
    perl ../util/parsevar.pl < var.c > ../include/var.h

test: $(PROG)
    killall -9 testmbbsd || true
    cp mbbsd testmbbsd
    ./testmbbsd 9000
    rm -f testmbbsd

install: $(PROG)
    install -d $(BBSHOME)/bin/
    install -c -m 755 $(PROG) $(BBSHOME)/bin/
    mv -f $(BBSHOME)/bin/mbbsd $(BBSHOME)/bin/mbbsd.`date '+%m%d%H'`
    ln -sv $(BBSHOME)/bin/mbbsd.`date '+%m%d%H'` $(BBSHOME)/bin/mbbsd

clean:
    rm -f $(OBJS) $(PROG)