source: Makefile.in @ d5ef539

release-1.10release-1.4release-1.5release-1.6release-1.7release-1.8release-1.9
Last change on this file since d5ef539 was d5ef539, checked in by Nelson Elhage <nelhage@mit.edu>, 15 years ago
Build to barnowl.bin and replace 'barnowl' with a wrapper script. The wrapper script sets up BARNOWL_DATA_DIR to point to the build directory, instead of the compiled-in system-wide share directory.
  • Property mode set to 100644
File size: 4.2 KB
RevLine 
[1aee7d9]1# $Id$
2
[ac70242]3srcdir = @srcdir@
4VPATH = @srcdir@
5prefix = @prefix@
6exec_prefix = @exec_prefix@
[7ce4003]7datarootdir = @datarootdir@
[3354cea5]8datadir = @datadir@/barnowl
[ac70242]9bindir = @bindir@
10mandir = @mandir@
[c50f589]11transform = @program_transform_name@
[ac70242]12
[7d4fbcd]13CC=@CC@
[d09e5a1]14LIBS=@LIBS@ -L./libfaim -lfaim
[7e78e49]15CFLAGS=@CFLAGS@ -I./libfaim -DDATADIR=\"${datadir}\"
[7d4fbcd]16LDFLAGS=@LDFLAGS@
[15bd5ef]17XSUBPPDIR=@XSUBPPDIR@
[4ad3480]18XSUBPPFLAGS=@XSUBPPFLAGS@
[aaf6071]19INSTALL=@INSTALL@
20INSTALL_PROGRAM=@INSTALL_PROGRAM@
21INSTALL_DATA=@INSTALL_DATA@
[7ccc780]22ATHSTATIC=@ATHSTATIC@
[aaf6071]23
24BASE_SRCS=list.c message.c mainwin.c popwin.c zephyr.c messagelist.c \
25     commands.c global.c text.c fmtext.c editwin.c util.c logging.c \
[f1e629d]26     perlconfig.c keys.c functions.c zwrite.c viewwin.c help.c filter.c \
[aaf6071]27     regex.c history.c view.c dict.c variable.c filterelement.c pair.c \
[aa5f725]28     keypress.c keymap.c keybinding.c cmd.c context.c zcrypt.c \
[b7bb454]29     aim.c buddy.c buddylist.c style.c errqueue.c \
[df7f364]30     zbuddylist.c popexec.c obarray.c select.c wcwidth.c \
[5f3168a]31     glib_compat.c
[aaf6071]32OWL_SRC = owl.c
33TESTER_SRC = tester.c
34
[d5ef539]35EXE = barnowl.bin
[1375a6a]36PERL_MODULES = Jabber IRC WordWrap
[b547aa4]37MODULE_DIRS = $(PERL_MODULES:%=perl/modules/%)
[3354cea5]38
[aaf6071]39BASE_OBJS = $(BASE_SRCS:.c=.o)
[7d4fbcd]40
[f1e629d]41GEN_C = varstubs.c perlglue.c perlwrap.c
[aaf6071]42GEN_H = owl_prototypes.h
43GEN_O = $(GEN_C:.c=.o)
44
45OBJS = $(BASE_OBJS) $(GEN_O)
46
[0ff8fb57]47AUTOGEN=$(GEN_C) $(GEN_H)
48#AUTOGEN=$(GEN_C)
[7d4fbcd]49
[5fdab77]50HEADERS=$(GEN_H) owl.h owl_perl.h config.h test.h
[07f715f]51
[84d48cc]52all: $(EXE) $(MODULE_DIRS)
53
[7f1f1e7]54$(EXE): $(AUTOGEN) $(OBJS) owl.o libfaim
[7ccc780]55        $(ATHSTATIC) $(CC) -o $(EXE) owl.o $(OBJS) $(LDFLAGS) $(LIBS)
[7d4fbcd]56
[3381399]57tester: $(AUTOGEN) $(OBJS) tester.o libfaim
[7ccc780]58        $(ATHSTATIC) $(CC) -o tester tester.o $(OBJS) $(LDFLAGS) $(LIBS)
[7d4fbcd]59
[50558dc]60%.o: %.c $(HEADERS)
61        $(CC) -c $(CFLAGS) $< -o $@
62
63# zcrypt is old crufty DES code I don't want to touch
64# Disable all warnings when compiling it
65zcrypt.o: zcrypt.c $(HEADERS)
66        $(CC) -c $(CFLAGS) $< -w -o $@
67
[7d4fbcd]68test: tester
69        ./tester reg
70
[b547aa4]71clean: libfaimclean modules_clean
[3354cea5]72        $(RM) $(EXE) tester *.o $(AUTOGEN) owl_prototypes.h.new
[7d4fbcd]73
[d09e5a1]74distclean: clean libfaimdistclean
[42c33a6]75        $(RM) config.cache config.log config.status  Makefile config.h TAGS *~ core
[7d4fbcd]76
[af193338]77.PHONY: $(MODULE_DIRS) $(MODULE_DIRS:%=clean_%)
[b547aa4]78
79modules: $(MODULE_DIRS)
[af193338]80modules_clean: $(MODULE_DIRS:%=clean_%)
[b547aa4]81
82$(MODULE_DIRS): %: %/Makefile
[30ac47f]83        ( cd $@ && $(MAKE) $(notdir $@).par )
[b547aa4]84
85$(MODULE_DIRS:=/Makefile): %/Makefile: %/Makefile.PL
86        ( cd $(dir $@) && perl -I../../lib Makefile.PL )
87
[af193338]88$(MODULE_DIRS:%=clean_%): clean_%:
89        (cd $* && (test ! -f Makefile || $(MAKE) clean))
90
[0ff8fb57]91proto: owl_prototypes.h
[7d4fbcd]92
[11be665]93perlglue.c: perlglue.xs Makefile
[15bd5ef]94        perl $(XSUBPPDIR)/xsubpp $(XSUBPPFLAGS) -prototypes perlglue.xs > perlglue.c
[7d4fbcd]95
96varstubs.c: variable.c stubgen.pl
97        perl stubgen.pl > varstubs.c
98
[f1e629d]99perlwrap.c: perlwrap.pm encapsulate.pl
100        perl encapsulate.pl perlwrap.pm owl_perlwrap_codebuff > perlwrap.c
101
[aaf6071]102# Only move owl_prototypes.h into place if the new one is different
[0ff8fb57]103owl_prototypes.h: codelist.pl varstubs.c $(BASE_SRCS)
104        perl codelist.pl > owl_prototypes.h.new
105        @cmp -s owl_prototypes.h.new $@ || { \
[8c92848]106         test -f $@ && echo 'Interfaces changed!'; \
[0ff8fb57]107         echo mv -f owl_prototypes.h.new $@; \
108              mv -f owl_prototypes.h.new $@; }
109#owl_prototypes.h:
[aaf6071]110
[d5ebf3a]111.PHONY: tags clean distclean proto test check-syntax
[aaf6071]112
113tags: TAGS
114
115TAGS: $(BASE_SRCS) $(OWL_SRC) $(TESTER_SRC) $(GEN_C) owl.h $(GEN_H)
116        etags $(BASE_SRCS) $(OWL_SRC) $(TESTER_SRC) $(GEN_C) owl.h $(GEN_H)
117
[50558dc]118$(BASE_OBJS) varstubs.h: owl.h config.h owl_prototypes.h
[d09e5a1]119
120libfaim: libfaim/libfaim.a
121
122libfaim/libfaim.a:
[30ac47f]123        (cd libfaim && $(MAKE))
[d09e5a1]124
125libfaimclean:
[30ac47f]126        (cd libfaim && $(MAKE) clean)
[d09e5a1]127
128libfaimdistclean:
[30ac47f]129        (cd libfaim && $(MAKE) distclean)
[aaf6071]130
[af193338]131install: all installdirs $(PERL_MODULES:%=module_install_%)
[c50f589]132        ${INSTALL_PROGRAM} $(EXE) ${DESTDIR}${bindir}/`echo barnowl|sed '$(transform)'`
[2c90da9]133        ${INSTALL_DATA} doc/barnowl.1 ${DESTDIR}${mandir}/man1/barnowl.1
[8e9acd2]134        (cd perl/lib && tar --exclude .svn -cf - . ) | (cd ${DESTDIR}${datadir}/lib && tar -xf - )
[ac70242]135
136installdirs: mkinstalldirs
[af193338]137        ${srcdir}/mkinstalldirs \
138            ${DESTDIR}${bindir} \
139            ${DESTDIR}${mandir}/man1 \
140            ${DESTDIR}${datadir}/lib \
141            ${DESTDIR}${datadir}/modules
142
143.PHONY: $(PERL_MODULES:%=module_install_%)
144
145$(PERL_MODULES:%=module_install_%): module_install_%: installdirs
146        ${INSTALL_DATA} perl/modules/$*/$*.par ${DESTDIR}${datadir}/modules/$*.par
[d5ebf3a]147
148# For emacs flymake-mode
149check-syntax: proto
150        $(CC) $(CFLAGS) -Wall -Wextra -pedantic -fsyntax-only $(CHK_SOURCES)
Note: See TracBrowser for help on using the repository browser.