]> jfr.im git - irc/quakenet/newserv.git/blobdiff - build.mk.in
CHANSERV: add -a flag to authhistory
[irc/quakenet/newserv.git] / build.mk.in
index 2942940cb17bc3b70b73b77597e3963408e929b6..33598acf08f01d4d92017c1d53c2f8475d0edbb9 100644 (file)
@@ -1,9 +1,88 @@
-@include@ @includel@configure.mk@includel@
-@sinclude@ @includel@settings.mk@includel@
-
-BUILDID := \"$(shell (hg id || echo "unknown") | sed -e "s/ /-/;s/+-/-/")\"
+@ifndef@ INCPATH
+INCPATH=../
+@endif@
 
+CFLAGS=
 CC=gcc
-CFLAGS+=-Wall -g -fPIC -export-dynamic -finline-functions -funroll-loops -std=c99 -I./ -DBUILDID=${BUILDID}
+LEX=flex
+MFLAGS=
+
+@sinclude@ @includel@$(INCPATH)defaults.mk@includel@
+@sinclude@ @includel@$(INCPATH)settings.mk@includel@
+
+@ifeq@${HOOKS_NEW}@ifeqsep@1@ifeqend@
+HOOK_ENGINE=new
+@else@
+HOOK_ENGINE=old
+@endif@
+
+# if USE_VALGRIND == 1
+@ifeq@${USE_VALGRIND}@ifeqsep@1@ifeqend@
+  CFLAGS+=-DUSE_VALGRIND
+  SSTRING_ENGINE=valgrind
+
+## if SSTRING_NEW == 1
+@ifeq@${SSTRING_NEW}@ifeqsep@1@ifeqend@
+    IMPOSSIBLE="USE_VALGRIND and SSTRING_NEW"
+@endif@ # SSTRING_NEW == 1
+
+## if SSTRING_MMAP == 1
+@ifeq@${SSTRING_MMAP}@ifeqsep@1@ifeqend@
+    IMPOSSIBLE="USE_VALGRIND and SSTRING_MMAP"
+@endif@ ## SSTRING_MMAP == 1
+@else@ # USE_VALGRIND == 1
+
+## if SSTRING_NEW == 1
+@ifeq@${SSTRING_NEW}@ifeqsep@1@ifeqend@
+    SSTRING_ENGINE=new
+@else@ ## SSTRING_NEW == 1
+    SSTRING_ENGINE=old
+
+### if SSTRING_MMAP == 1
+@ifeq@${SSTRING_MMAP}@ifeqsep@1@ifeqend@
+      IMPOSSIBLE="SSTRING_MMAP without SSTRING_NEW"
+@endif@ ### SSTRING_MMAP == 1
+@endif@ ## SSTRING_NEW == 1
+@endif@ # USE_VALGRIND == 1
+
+@ifdef@ IMPOSSIBLE
+@error@ impossible combination of settings: ${IMPOSSIBLE}@errorend@
+@endif@
+
+@ifndef@ BUILDID
+BUILDID @shell@ (hg id || echo "unknown") | sed -e "s/[()]//g;s/+ /+/g;s/ /-/g" @shellend@
+@endif@
+MFLAGS+=BUILDID=$(BUILDID)
+
+.SUFFIXES: .so .y .l
+
+.o.so:
+       @-ldline-@ $(LDFLAGS)
+
+.y.c:  ;
+
+.l.c:  ;
+
+.PHONY: checksettings default
+
+@ifndef@ CHECKEDSETTINGS
+default: checksettings all
+
+checksettings:
+       @touch ${INCPATH}/settings.mk
+       @test -f ${INCPATH}/.settings.mk || cp ${INCPATH}/settings.mk ${INCPATH}/.settings.mk
+       @diff ${INCPATH}/.settings.mk ${INCPATH}/settings.mk >/dev/null || $(MAKE) -e FORCECHECK=1 realchecksettings
+
+realchecksettings:
+
+@ifdef@ FORCECHECK
+@error@ you must run make clean if you change settings.mk@errorend@
+@endif@
+@endif@
+MFLAGS+=CHECKEDSETTINGS=1
 
-export CC CFLAGS
+CFLAGS+=-Wall -g -finline-functions -funroll-loops
+@ifndef@ NOC99
+CFLAGS+=-std=c99
+@endif@
+CFLAGS+=-I./ -DBUILDID=$(BUILDID) -fPIC -export-dynamic