summaryrefslogtreecommitdiff
path: root/src/Makefile
blob: 54929bf501b9cbdd458385b1b01d9e688ea7048e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
MYSQL_OBJ = $(MYSQL:.c=.o)
RDB_OBJ = $(RDB:.c=.o)
OBJS =  actions.o base64.o botserv.o channels.o chanserv.o commands.o compat.o converter.o \
        config.o datafiles.o encrypt.o helpserv.o hostserv.o init.o language.o list.o log.o mail.o main.o \
	memory.o memoserv.o messages.o misc.o modules.o news.o nickserv.o operserv.o \
	process.o proxy.o send.o servers.o sessions.o slist.o sockutil.o \
	timeout.o users.o dreamforge.o bahamut.o unreal31.o ultimate2.o ultimate3.o \
        hybrid.o ptlink.o viagra.o rageircd.o unreal32.o solidircd.o \
	$(VSNPRINTF_O) $(RDB_OBJ) $(MYSQL_OBJ)
SRCS =  actions.c base64.c botserv.c channels.c chanserv.c commands.c compat.c converter.c \
        config.c datafiles.c encrypt.c helpserv.c hostserv.c init.c language.c list.c log.c mail.c main.c \
        memory.c memoserv.c messages.c misc.c modules.c news.c nickserv.c operserv.c \
        process.c proxy.c send.c servers.c sessions.c slist.c sockutil.c \
	dreamforge.c bahamut.c unreal31.c ultimate2.c ultimate3.c \
        hybrid.c ptlink.c viagra.c rageircd.c unreal32.c solidircd.c \
        timeout.c users.c \
        $(VSNPRINTF_C) $(RDB) $(MYSQL)

INCLUDES = ../include/commands.h ../include/defs.h  ../include/language.h \
	../include/pseudo.h ../include/sysconf.h ../include/config.h \
	../include/encrypt.h ../include/messages.h ../include/services.h \
	../include/timeout.h ../include/datafiles.h ../include/extern.h \
	../include/modules.h ../include/slist.h \
	../include/dreamforge.h ../include/bahamut.h ../include/ultimate2.h \
	../include/ultimate3.h ../include/hybrid.h ../include/ptlink.h ../include/unreal31.h \
	../include/viagra.h ../include/rageircd.h ../include/unreal32.h ../include/solidircd.h


MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
	   'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
           'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
     	   'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
   	   'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' 'MYSQL=${MYSQL}'\
	   'RDB=${RDB}'

.c.o:
	$(CC) $(CFLAGS) -I../include/ -c $<

all: services

distclean: clean spotless

services:  $(OBJS)
	$(CC) $(CFLAGS) $(OBJS) $(ANOPELIBS) $(MLIBS) -o $@ $(LDFLAGS) 

$(OBJS): Makefile
actions.o:      actions.c   $(INCLUDES)
botserv.o:      botserv.c   $(INCLUDES)    
channels.o:     channels.c  $(INCLUDES) 
chanserv.o:     chanserv.c  $(INCLUDES)   
commands.o:     commands.c  $(INCLUDES)   
compat.o:       compat.c    $(INCLUDES)
config.o:       config.c    $(INCLUDES) 
converter.o:    converter.c $(INCLUDES) 
datafiles.o:    datafiles.c $(INCLUDES)
encrypt.o:      encrypt.c   $(INCLUDES) 
init.o:         init.c      $(INCLUDES)
hostserv.o:     hostserv.c  $(INCLUDES)   
language.o:     language.c  $(INCLUDES)   
list.o:         list.c      $(INCLUDES)
log.o:          log.c       $(INCLUDES)
mail.o:         mail.c      $(INCLUDES)
main.o:         main.c      $(INCLUDES)
memory.o:       memory.c    $(INCLUDES)
memoserv.o:     memoserv.c  $(INCLUDES)
messages.o:     messages.c  $(INCLUDES)
misc.o:         misc.c      $(INCLUDES)
news.o:         news.c      $(INCLUDES)
nickserv.o:     nickserv.c  $(INCLUDES)
operserv.o:     operserv.c  $(INCLUDES)
process.o:      process.c   $(INCLUDES)
protocol.o:     protocol.c  $(INCLUDES)
proxy.o:        proxy.c     $(INCLUDES) 
send.o:         send.c      $(INCLUDES)
sessions.o:     sessions.c  $(INCLUDES)
slist.o:        slist.c     $(INCLUDES)
sockutil.o:     sockutil.c  $(INCLUDES)
timeout.o:      timeout.c   $(INCLUDES)
users.o:        users.c     $(INCLUDES)
vsnprintf.o:    vsnprintf.c $(INCLUDES)
mysql.o:        mysql.c     $(INCLUDES)
rdb.o:          rdb.c       $(INCLUDES)

modules: DUMMY
	(cd modules ; ./configure ; ${MAKE} ${MAKEARGS} all)

clean:
	@touch modules/Makefile.inc # Horribly ugly...
	(cd modules ; ${MAKE} ${MAKEARGS} clean)
	rm -f *.o services a.out

spotless: clean
	(cd modules ; ${MAKE} ${MAKEARGS} distclean)

install: services
	test -d ${BINDEST} || mkdir ${BINDEST}
	$(INSTALL) services $(BINDEST)/services
	$(INSTALL) bin/anoperc $(BINDEST)/anoperc
	rm -f $(BINDEST)/listnicks $(BINDEST)/listchans
	ln $(BINDEST)/services $(BINDEST)/listnicks
	ln $(BINDEST)/services $(BINDEST)/listchans
	(cd ../lang ; $(MAKE) install)
	$(CP) ../data/* $(DATDEST)
	test -d $(DATDEST)/backups || mkdir $(DATDEST)/backups
	test -d $(DATDEST)/logs || mkdir $(DATDEST)/logs
	@if [ "$(MODULE_PATH)" ] ; then \
		test -d ${MODULE_PATH} || mkdir ${MODULE_PATH} ; \
		test -d ${MODULE_PATH}/runtime || mkdir ${MODULE_PATH}/runtime ; \
		(cd modules ; $(MAKE) install) ; \
	fi
	@if [ "$(RUNGROUP)" ] ; then \
		echo chgrp -R $(RUNGROUP) $(DATDEST) ; \
		chgrp -R $(RUNGROUP) $(DATDEST) ; \
		echo chmod -R g+rw $(DATDEST) ; \
		chmod -R g+rw $(DATDEST) ; \
		echo find $(DATDEST) -type d -exec chmod g+xs \'\{\}\' \\\; ; \
		find $(DATDEST) -type d -exec chmod g+xs '{}' \; ; \
	fi

DUMMY: