chiark / gitweb /
cgi-fcgi-interp: new garbage collection approach, spec
[chiark-utils.git] / cprogs / Makefile
index 48e6d93c14bfcc7e9f23551062308fa7079ef16f..c64a984f22e291cd98857c14f42230138d32807b 100644 (file)
@@ -1,6 +1,103 @@
-CC=    gcc -g -Wall
-CFLAGS=        -Werror -Wstrict-prototypes -Wmissing-prototypes \
-       -Wwrite-strings -Wpointer-arith $(OPTIMISE)
-OPTIMISE=-O2
+# Makefile
+# simple make settings
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, consult the Free Software Foundation's
+# website at www.fsf.org, or the GNU Project website at www.gnu.org.
 
-acctdump:      acctdump.o myopt.o
+us=    chiark-utils-bin
+
+include ../settings.make
+
+RWBUFFER_SIZE_MB=16
+
+PROGRAMS=              readbuffer writebuffer with-lock-ex xbatmon-simple \
+                       summer watershed rcopy-repeatedly xduplic-copier
+SUIDSBINPROGRAMS=      really
+DAEMONS=               trivsoundd
+MAN1PAGES=             readbuffer.1 writebuffer.1 with-lock-ex.1 \
+                       xduplic-copier.1
+MAN8PAGES=             trivsoundd.8 really.8
+BUILTTXTDOCS=          watershed.txt
+TXTDOCS=               $(BUILTTXTDOCS)
+
+acctdump_cc_out:=$(shell \
+       printf "\#include <sys/types.h>\n\#include <sys/acct.h>" \
+               | $(CC) -E - 2>&1 >/dev/null \
+)
+ifeq (,$(acctdump_cc_out))
+PROGRAMS+=acctdump
+MAN8PAGES+=acctdump.8
+else
+$(warning Not building acctdump: $(acctdump_cc_out))
+endif
+
+TARGETS=       $(PROGRAMS) $(SUIDSBINPROGRAMS) $(DAEMONS) $(BUILTTXTDOCS)
+
+all:           $(TARGETS)
+
+readbuffer:                    readbuffer.o                    rwbuffer.o
+writebuffer:                   writebuffer.o   wrbufcore.o     rwbuffer.o 
+trivsoundd:                    trivsoundd.o    wrbufcore.o     rwbuffer.o 
+really:                                really.o myopt.o
+acctdump:                      acctdump.o      myopt.o
+
+acctdump.o really.o myopt.o rcopy-repeatedly.o: myopt.h
+readbuffer.o writebuffer.o rwbuffer.o wrbufcore.o trivsoundd.o:        rwbuffer.h
+
+xbatmon-simple: LDLIBS += -lX11 -lm
+
+xduplic-copier: LDLIBS += -lXmu -lSM -lICE -lXt -lXext
+xduplic-copier: LDLIBS += -lX11 -lxcb -lXau -lXdmcp
+
+summer:                summer.o
+summer:                LDLIBS += -lnettle -lgmp
+
+rcopy-repeatedly: rcopy-repeatedly.o myopt.o
+rcopy-repeatedly: LDLIBS += -lm -lrt
+
+watershed:     watershed.o common.o
+watershed:     LDLIBS += -lnettle -lgmp
+
+cgi-fcgi-interp:       cgi-fcgi-interp.o       myopt.o common.o
+cgi-fcgi-interp:       LDLIBS += -lnettle -lgmp
+
+watershed.txt: watershed.c
+               sed '/^$$/,$$d' <$^ >$@.new && mv -f $@.new $@
+
+install:               all
+               $(INSTALL_DIRECTORY) $(bindir) $(sbindir)
+               $(INSTALL_PROGRAM) $(PROGRAMS) $(bindir)
+               $(INSTALL_PROGRAM) $(DAEMONS) $(sbindir)
+               $(INSTALL) -m 4774 -o root -g $(SYSTEM_GROUP) \
+                       $(SUIDSBINPROGRAMS) $(sbindir)
+
+install-docs:  watershed.txt
+               $(INSTALL_DIRECTORY) $(man1dir) $(man8dir) $(txtdocdir)
+               $(INSTALL) -m 644 $(MAN1PAGES) ${man1dir}/.
+               $(INSTALL) -m 644 $(MAN8PAGES) ${man8dir}/.
+               $(INSTALL) -m 644 $(TXTDOCS) ${txtdocdir}/.
+
+install-examples:
+
+clean:
+               rm -f *~ ./#*# *.o $(PROGRAMS)
+
+distclean realclean:   clean
+               rm -f $(TARGETS)