| 1 | # This file is part of Alue, the multiprotocol Internet discussion daemon |
|---|
| 2 | # |
|---|
| 3 | # Copyright © 2009, 2010 Antti-Juhani Kaijanaho |
|---|
| 4 | # |
|---|
| 5 | # Copying and distribution of this file, with or without modification, |
|---|
| 6 | # are permitted in any medium without royalty provided the copyright |
|---|
| 7 | # notice and this notice are preserved. This file is offered as-is, |
|---|
| 8 | # without any warranty. |
|---|
| 9 | |
|---|
| 10 | CXXFLAGS = @CXXFLAGS@ @BOOST_CPPFLAGS@ @GnuTLS_CFLAGS@ \ |
|---|
| 11 | -DBOOST_ENABLE_ASSERT_HANDLER |
|---|
| 12 | CFLAGS = @CFLAGS@ @BOOST_CPPFLAGS@ @GnuTLS_CFLAGS@ |
|---|
| 13 | CXX = @CXX@ |
|---|
| 14 | CC = @CC@ |
|---|
| 15 | LDFLAGS = @LDFLAGS@ @BOOST_LDFLAGS@ |
|---|
| 16 | LDLIBS = @LIBS@ @BOOST_DATE_TIME_LIB@ @BOOST_SYSTEM_LIB@ \ |
|---|
| 17 | @BOOST_PROGRAM_OPTIONS_LIB@ @BOOST_THREAD_LIB@ \ |
|---|
| 18 | @GnuTLS_LIBS@ |
|---|
| 19 | DEFS = @DEFS@ -DCONFFILE=\"$(cfgfile)\" -DBINDIR=\"${bindir}\" |
|---|
| 20 | |
|---|
| 21 | INSTALL = @INSTALL@ |
|---|
| 22 | INSTALL_PROGRAM = ${INSTALL} |
|---|
| 23 | INSTALL_DATA = $(INSTALL) -m 644 |
|---|
| 24 | INSTALL_DIR = $(INSTALL) -d |
|---|
| 25 | INSTALL_INFO = install-info |
|---|
| 26 | |
|---|
| 27 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
|---|
| 28 | |
|---|
| 29 | srcdir = @srcdir@ |
|---|
| 30 | |
|---|
| 31 | prefix = @prefix@ |
|---|
| 32 | exec_prefix = @exec_prefix@ |
|---|
| 33 | bindir = @bindir@ |
|---|
| 34 | datarootdir = @datarootdir@ |
|---|
| 35 | sysconfdir = @sysconfdir@ |
|---|
| 36 | localstatedir = @localstatedir@ |
|---|
| 37 | docdir = @docdir@ |
|---|
| 38 | infodir = @infodir@ |
|---|
| 39 | htmldir = @htmldir@ |
|---|
| 40 | pdfdir = @pdfdir@ |
|---|
| 41 | logdir = @localstatedir@/log |
|---|
| 42 | pkgdatadir=$(datarootdir)/@PACKAGE_TARNAME@ |
|---|
| 43 | pkglocalstatedir=$(localstatedir)/state/@PACKAGE_TARNAME@ |
|---|
| 44 | pkgsysconfdir=$(sysconfdir)/$(PACKAGE_TARNAME) |
|---|
| 45 | cfgfile = $(pkgsysconfdir)/alue.cfg |
|---|
| 46 | |
|---|
| 47 | cc_src = $(filter-out %test.cc $(srcdir)/inject-email.cc, \ |
|---|
| 48 | $(wildcard $(srcdir)/*.cc $(srcdir)/*/*.cc)) |
|---|
| 49 | test_src = $(wildcard $(srcdir)/*test.cc $(srcdir)/*/*test.cc) |
|---|
| 50 | |
|---|
| 51 | obj = $(cc_src:.cc=.o) |
|---|
| 52 | test_obj = $(test_src:.cc=.o) $(filter-out $(srcdir)/alue_posix.o, $(obj)) |
|---|
| 53 | |
|---|
| 54 | all : check alue inject-email | print-conf |
|---|
| 55 | |
|---|
| 56 | alue : $(obj) | print-conf |
|---|
| 57 | @echo CXX LDFLAGS -o $@ $(obj) LDLIBS |
|---|
| 58 | @$(CXX) $(LDFLAGS) -o $@ $(obj) $(LDLIBS) |
|---|
| 59 | |
|---|
| 60 | inject-email : inject-email.o config.o | print-conf |
|---|
| 61 | @echo CXX LDFLAGS -o $@ $^ LDLIBS |
|---|
| 62 | @$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS) |
|---|
| 63 | |
|---|
| 64 | test : $(test_obj) | print-conf |
|---|
| 65 | @echo CXX LDFLAGS -o $@ $(test_obj) LDLIBS \ |
|---|
| 66 | @BOOST_UNIT_TEST_FRAMEWORK_LIB@ |
|---|
| 67 | @$(CXX) $(LDFLAGS) -o $@ $(test_obj) $(LDLIBS) \ |
|---|
| 68 | @BOOST_UNIT_TEST_FRAMEWORK_LIB@ |
|---|
| 69 | |
|---|
| 70 | check: test | print-conf |
|---|
| 71 | ./test |
|---|
| 72 | touch $@ |
|---|
| 73 | |
|---|
| 74 | print-conf : |
|---|
| 75 | @echo "CC=$(CC)" |
|---|
| 76 | @echo "CXX=$(CXX)" |
|---|
| 77 | @echo "CFLAGS=$(CFLAGS)" |
|---|
| 78 | @echo "CXXFLAGS=$(CXXFLAGS)" |
|---|
| 79 | @echo "LDFLAGS=$(LDLIBS)" |
|---|
| 80 | @echo "LDLIBS=$(LDLIBS)" |
|---|
| 81 | @echo "DEFS=$(DEFS)" |
|---|
| 82 | |
|---|
| 83 | alue.cfg : alue.cfg.in GNUmakefile |
|---|
| 84 | sed -e 's|@logdir@|$(logdir)|g' \ |
|---|
| 85 | -e 's|@pkgdatadir@|$(pkgdatadir)|g' \ |
|---|
| 86 | -e 's|@pkglocalstatedir@|$(pkglocalstatedir)|g' \ |
|---|
| 87 | $< > $@.new |
|---|
| 88 | mv $@.new $@ |
|---|
| 89 | |
|---|
| 90 | pdf : $(srcdir)/doc/alue.pdf |
|---|
| 91 | |
|---|
| 92 | info : $(srcdir)/doc/alue.info |
|---|
| 93 | |
|---|
| 94 | install : all info alue.cfg check | print-conf |
|---|
| 95 | $(PRE_INSTALL) |
|---|
| 96 | $(NORMAL_INSTALL) |
|---|
| 97 | if ! test -d $(TESTDIR)$(bindir); then \ |
|---|
| 98 | $(INSTALL_DIR) $(DESTDIR)$(bindir) ; \ |
|---|
| 99 | fi |
|---|
| 100 | $(INSTALL_PROGRAM) alue $(DESTDIR)$(bindir)/alue |
|---|
| 101 | $(INSTALL_PROGRAM) inject-email $(DESTDIR)$(bindir)/alue-inject-email |
|---|
| 102 | if ! test -d $(DESTDIR)$(pkgsysconfdir); then \ |
|---|
| 103 | $(INSTALL_DIR) $(DESTDIR)$(pkgsysconfdir) ; \ |
|---|
| 104 | fi |
|---|
| 105 | $(INSTALL_DATA) alue.cfg $(DESTDIR)$(cfgfile).dist |
|---|
| 106 | if ! test -d $(TESTDIR)$(infodir); then \ |
|---|
| 107 | $(INSTALL_DIR) $(DESTDIR)$(infodir) ; \ |
|---|
| 108 | fi |
|---|
| 109 | $(INSTALL_DATA) alue.info $(DESTDIR)$(infodir)/alue.info |
|---|
| 110 | $(POST_INSTALL) |
|---|
| 111 | $(INSTALL_INFO) --dir=$(DESTDIR)$(infodir)/dir \ |
|---|
| 112 | $(DESTDIR)$(infodir)/alue.info |
|---|
| 113 | |
|---|
| 114 | clean : |
|---|
| 115 | $(RM) *.o */*.o *.d */*.d *.d.* */*.d.* alue inject-email check |
|---|
| 116 | |
|---|
| 117 | %.o: $(srcdir)/%.cc | print-conf |
|---|
| 118 | @echo CXX DEFS CXXFLAGS -c -o $@ $< |
|---|
| 119 | @$(CXX) $(DEFS) $(CXXFLAGS) -c -o $@ $< |
|---|
| 120 | |
|---|
| 121 | %.d: $(srcdir)/%.cc | print-conf |
|---|
| 122 | @echo CXX -MM DEFS CPPFLAGS $< |
|---|
| 123 | @set -e; rm -f $@; \ |
|---|
| 124 | $(CXX) -MM $(DEFS) $(CPPFLAGS) $< > $@.$$$$; \ |
|---|
| 125 | sed 's,$(notdir $*)\.o[ :]*,$*.o $@ : ,g' < $@.$$$$ > $@; \ |
|---|
| 126 | rm -f $@.$$$$ |
|---|
| 127 | |
|---|
| 128 | %.pdf : $(srcdir)/%.texinfo |
|---|
| 129 | $(TEXI2PDF) -q -o $@ $< |
|---|
| 130 | |
|---|
| 131 | %.info : $(srcdir)/%.texinfo |
|---|
| 132 | $(MAKEINFO) $< |
|---|
| 133 | |
|---|
| 134 | GNUmakefile : config.status GNUmakefile.in |
|---|
| 135 | ./config.status |
|---|
| 136 | |
|---|
| 137 | .PHONY : print-conf |
|---|
| 138 | |
|---|
| 139 | ifneq ($(MAKECMDGOALS),clean) |
|---|
| 140 | include $(cc_src:.cc=.d) $(test_src:.cc=.d) |
|---|
| 141 | endif |
|---|