source: Makefile.am @ 41c9a96

release-1.4release-1.5release-1.6release-1.7release-1.8release-1.9
Last change on this file since 41c9a96 was 1ad4a4a, checked in by Anders Kaseorg <andersk@mit.edu>, 12 years ago
Makefile.am: Generalize the *.new mechanism for suppressing no-op updates. Also use cp instead of mv to avoid redundant regenerations of *.new. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
  • Property mode set to 100644
File size: 2.0 KB
Line 
1bin_PROGRAMS = barnowl.bin
2check_PROGRAMS = tester
3
4barnowl_bin_SOURCES = $(BASE_SRCS) \
5     owl.h owl_perl.h config.h \
6     owl.c \
7     libzcrypt.a \
8     $(GEN_C) $(GEN_H)
9
10barnowl_bin_LDADD = libfaim/libfaim.a libzcrypt.a
11
12tester_SOURCES = $(BASE_SRCS) \
13     owl.h owl_perl.h config.h test.h \
14     libzcrypt.a \
15     $(GEN_C) $(GEN_H) \
16     tester.c
17
18noinst_LIBRARIES = libzcrypt.a
19
20libzcrypt_a_SOURCES = zcrypt.c
21libzcrypt_a_CFLAGS  = -w
22
23CPPFLAGS = -I$(top_srcdir)/ \
24           -I$(top_srcdir)/libfaim/
25
26BASE_SRCS=list.c message.c mainwin.c popwin.c zephyr.c messagelist.c \
27     commands.c global.c text.c fmtext.c editwin.c util.c logging.c \
28     perlconfig.c keys.c functions.c zwrite.c viewwin.c help.c filter.c \
29     regex.c history.c view.c dict.c variable.c filterelement.c pair.c \
30     keypress.c keymap.c keybinding.c cmd.c context.c \
31     aim.c buddy.c buddylist.c style.c errqueue.c \
32     zbuddylist.c popexec.c obarray.c select.c wcwidth.c \
33     glib_compat.c
34
35GEN_C = varstubs.c perlglue.c
36GEN_H = owl_prototypes.h
37
38BUILT_SOURCES = $(GEN_C) $(GEN_H)
39
40# Only copy file into place if file.new is different
41%: %.new
42        @diff -U0 $@ $< || { \
43         test -f $@ && echo '$@ changed!'; \
44         echo cp -f $< $@; \
45              cp -f $< $@; }
46
47proto: owl_prototypes.h
48
49perlglue.c: perlglue.xs
50        perl $(XSUBPPDIR)/xsubpp $(XSUBPPFLAGS) -prototypes perlglue.xs > perlglue.c
51
52varstubs.c: stubgen.pl variable.c
53        perl $< $(filter-out $<,$+) > $@
54
55owl_prototypes.h.new: codelist.pl varstubs.c $(BASE_SRCS) owl.c zcrypt.c
56        perl $< $(filter-out $<,$+) > $@
57
58# For emacs flymake-mode
59check-syntax: proto
60        $(CC) $(CFLAGS) -Wall -Wextra -pedantic -fsyntax-only $(CHK_SOURCES)
61
62install-data-local:
63        $(mkinstalldirs) ${DESTDIR}${pkgdatadir}/lib
64        (cd perl/lib && tar -cf - . ) | (cd ${DESTDIR}${pkgdatadir}/lib && tar -xf - )
65
66do_transform = $(shell echo '$(1)' | sed '$(transform)')
67install-exec-hook:
68        mv -f $(DESTDIR)$(bindir)/$(call do_transform,barnowl.bin) \
69              $(DESTDIR)$(bindir)/$(call do_transform,barnowl)
70
71SUBDIRS = libfaim/ perl/modules/
Note: See TracBrowser for help on using the repository browser.