]> jfr.im git - irc/quakenet/newserv.git/blame - build.mk.in
Merge shroudcloak.
[irc/quakenet/newserv.git] / build.mk.in
CommitLineData
16fc8bc1 1@ifndef@ INCPATH
866f59c9 2INCPATH=../
16fc8bc1 3@endif@
8b485e91 4
4bad6412 5CFLAGS=
91bf3d57 6LEX=flex
1a935a31 7MFLAGS=
4bad6412 8
53eff0a9 9@sinclude@ @includel@$(INCPATH)defaults.mk@includel@
866f59c9
CP
10@sinclude@ @includel@$(INCPATH)settings.mk@includel@
11
c5f04094 12@ifeq@${HOOKS_NEW}@ifeqsep@1@ifeqend@
c5f04094 13HOOK_ENGINE=new
780b6d42
CP
14@else@
15HOOK_ENGINE=old
c5f04094
CP
16@endif@
17
18# if USE_VALGRIND == 1
19@ifeq@${USE_VALGRIND}@ifeqsep@1@ifeqend@
20 CFLAGS+=-DUSE_VALGRIND
21 SSTRING_ENGINE=valgrind
22
73ae62df
CP
23## if SSTRING_NEW == 1
24@ifeq@${SSTRING_NEW}@ifeqsep@1@ifeqend@
c5f04094 25 IMPOSSIBLE="USE_VALGRIND and SSTRING_NEW"
73ae62df 26@endif@ # SSTRING_NEW == 1
c5f04094 27
73ae62df
CP
28## if SSTRING_MMAP == 1
29@ifeq@${SSTRING_MMAP}@ifeqsep@1@ifeqend@
c5f04094 30 IMPOSSIBLE="USE_VALGRIND and SSTRING_MMAP"
73ae62df
CP
31@endif@ ## SSTRING_MMAP == 1
32@else@ # USE_VALGRIND == 1
c5f04094 33
73ae62df
CP
34## if SSTRING_NEW == 1
35@ifeq@${SSTRING_NEW}@ifeqsep@1@ifeqend@
c5f04094 36 SSTRING_ENGINE=new
73ae62df 37@else@ ## SSTRING_NEW == 1
c5f04094
CP
38 SSTRING_ENGINE=old
39
73ae62df
CP
40### if SSTRING_MMAP == 1
41@ifeq@${SSTRING_MMAP}@ifeqsep@1@ifeqend@
c5f04094 42 IMPOSSIBLE="SSTRING_MMAP without SSTRING_NEW"
73ae62df
CP
43@endif@ ### SSTRING_MMAP == 1
44@endif@ ## SSTRING_NEW == 1
45@endif@ # USE_VALGRIND == 1
c5f04094 46
c5f04094
CP
47@ifdef@ IMPOSSIBLE
48@error@ impossible combination of settings: ${IMPOSSIBLE}@errorend@
49@endif@
50
16fc8bc1 51@ifndef@ BUILDID
adc57810 52BUILDID @shell@ (hg id || echo "unknown") | sed -e "s/[()]//g;s/+ /+/g;s/ /-/g" @shellend@
16fc8bc1 53@endif@
1a935a31 54MFLAGS+=BUILDID=$(BUILDID)
8b485e91 55
ffc11f03 56.SUFFIXES: .so .y .l
4bad6412
CP
57
58.o.so:
45cb2a9d 59 @-ldline-@ $(LDFLAGS)
4bad6412 60
ffc11f03
CP
61.y.c: ;
62
63.l.c: ;
64
78668b7c
CP
65.PHONY: checksettings default
66
1a935a31 67@ifndef@ CHECKEDSETTINGS
78668b7c
CP
68default: checksettings all
69
70checksettings:
96a7a31c
CP
71 @touch ${INCPATH}/settings.mk
72 @test -f ${INCPATH}/.settings.mk || cp ${INCPATH}/settings.mk ${INCPATH}/.settings.mk
73 @diff ${INCPATH}/.settings.mk ${INCPATH}/settings.mk >/dev/null || $(MAKE) -e FORCECHECK=1 realchecksettings
78668b7c
CP
74
75realchecksettings:
76
77@ifdef@ FORCECHECK
78@error@ you must run make clean if you change settings.mk@errorend@
79@endif@
1a935a31
CP
80@endif@
81MFLAGS+=CHECKEDSETTINGS=1
78668b7c 82
0555113a 83CFLAGS+=-I./ -DBUILDID=$(BUILDID) -fPIC
1cf93e54 84CFLAGS+=-Wall -g -finline-functions -funroll-loops -Werror=format-security
0555113a
CP
85
86@ifndef@ CLANG
1613a824
CP
87@ifndef@ NOC99
88CFLAGS+=-std=c99
89@endif@
0555113a
CP
90CFLAGS+=-export-dynamic
91@endif@
92