1#     Copyright (C) 1998       Thomas Roessler <roessler@guug.de>
2#     Copyright (C) 1999-2016  Roland Rosenfeld <roland@spinnaker.de>
3#
4#     This program is free software; you can redistribute it and/or modify
5#     it under the terms of the GNU General Public License as published by
6#     the Free Software Foundation; either version 2 of the License, or
7#     (at your option) any later version.
8#
9#     This program is distributed in the hope that it will be useful,
10#     but WITHOUT ANY WARRANTY; without even the implied warranty of
11#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12#     GNU General Public License for more details.
13#
14#     You should have received a copy of the GNU General Public License
15#     along with this program; if not, write to the Free Software Foundation,
16#     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,, USA.
17
18CC=@CC@
19LDFLAGS=@LDFLAGS@
20CPPFLAGS=@CPPFLAGS@
21CFLAGS=@CFLAGS@ $(CPPFLAGS)
22DEFS=@DEFS@
23INSTALL=@INSTALL@
24MODULES=@MODULES@
25DOTLOCKBASE=@DOTLOCKBASE@
26DOTLOCK_TARGET=@DOTLOCK_TARGET@
27TACTARGET=@TACTARGET@
28PERL=@PERL@
29XCODEBUILD=@XCODEBUILD@
30PBXBUILD=@PBXBUILD@
31VFORMAT=@VFORMAT@
32LIBICONV=@LIBICONV@
33
34prefix=@prefix@
35exec_prefix=@exec_prefix@
36bindir=@bindir@
37srcdir=@srcdir@
38libdir=@libdir@
39mandir=@mandir@
40sysconfdir=@sysconfdir@
41
42ALL=lbdbq lbdb_lib lbdb-fetchaddr lbdb-munge fetchaddr qpto8bit munge \
43	nodelist2lbdb palm_lsaddr mutt_ldap_query lbdbq.man \
44	lbdb-fetchaddr.man nodelist2lbdb.man mutt_ldap_query.man lbdb.rc \
45	$(MODULES) $(DOTLOCK_TARGET) $(TACTARGET)
46
47all: Makefile $(ALL)
48
49install: all
50	$(srcdir)/mkinstalldirs $(install_prefix)$(bindir)
51	$(srcdir)/mkinstalldirs $(install_prefix)$(libdir)
52	$(srcdir)/mkinstalldirs $(install_prefix)$(sysconfdir)
53	$(srcdir)/mkinstalldirs $(install_prefix)$(mandir)
54	$(srcdir)/mkinstalldirs $(install_prefix)$(mandir)/man1
55	$(INSTALL) -m 755 fetchaddr $(install_prefix)$(libdir)
56	$(INSTALL) -m 755 qpto8bit $(install_prefix)$(libdir)
57	$(INSTALL) -m 755 lbdbq $(install_prefix)$(bindir)
58	$(INSTALL) -m 755 lbdb-fetchaddr $(install_prefix)$(bindir)
59	$(INSTALL) -m 755 lbdb-munge $(install_prefix)$(libdir)
60	$(INSTALL) -m 755 lbdb_lib $(install_prefix)$(libdir)
61	$(INSTALL) -m 755 munge $(install_prefix)$(libdir)
62	$(INSTALL) -m 644 lbdb_bbdb_query.el $(install_prefix)$(libdir)
63	if [ "$(PERL)" != "no" ]; then \
64		$(INSTALL) -m 755 nodelist2lbdb $(install_prefix)$(bindir); \
65		$(INSTALL) -m 644 nodelist2lbdb.man \
66			$(install_prefix)$(mandir)/man1/nodelist2lbdb.1; \
67		$(INSTALL) -m 755 palm_lsaddr $(install_prefix)$(libdir); \
68		$(INSTALL) -m 755 mutt_ldap_query $(install_prefix)$(libdir); \
69		$(INSTALL) -m 644 mutt_ldap_query.man \
70			$(install_prefix)$(mandir)/man1/mutt_ldap_query.1; \
71		$(INSTALL) -m 644 lbdb_ldap.rc \
72			$(install_prefix)$(sysconfdir)/lbdb_ldap.rc; \
73	fi
74	if [ "$(XCODEBUILD)" != "no" -o "$(PBXBUILD)" != "no" ]; then \
75		$(INSTALL) -m 755 ABQuery $(install_prefix)$(libdir); \
76	fi
77	if [ "$(VFORMAT)" != "no" ]; then \
78		$(INSTALL) -m 755 vcquery $(install_prefix)$(libdir); \
79	fi
80	for i in $(MODULES); do \
81		$(INSTALL) -m 755 $$i $(install_prefix)$(libdir); \
82	done
83	$(INSTALL) -m 644 lbdbq.man $(install_prefix)$(mandir)/man1/lbdbq.1
84	$(INSTALL) -m 644 lbdb-fetchaddr.man \
85		$(install_prefix)$(mandir)/man1/lbdb-fetchaddr.1
86	$(INSTALL) -m 644 lbdb.rc $(install_prefix)$(sysconfdir)/lbdb.rc
87	if [ "$(DOTLOCK_TARGET)" != "" ]; then \
88		$(INSTALL) -m 755 lbdb_dotlock $(install_prefix)$(bindir); \
89		$(INSTALL) -m 644 dotlock.man \
90			$(install_prefix)$(mandir)/man1/lbdb_dotlock.1; \
91	fi
92	if [ "$(TACTARGET)" != "" ]; then \
93		$(INSTALL) -m 755 tac $(install_prefix)$(libdir)/tac; \
94	fi
95
96fetchaddr: $(srcdir)/fetchaddr.o $(srcdir)/rfc822.o $(srcdir)/helpers.o  \
97	$(srcdir)/rfc2047.o
98	$(CC) $(CFLAGS) $(LDFLAGS) $? -o $@ $(LIBICONV)
99
100qpto8bit: $(srcdir)/qpto8bit.o $(srcdir)/rfc822.o $(srcdir)/helpers.o  \
101		$(srcdir)/rfc2047.o
102	$(CC) $(CFLAGS) $(LDFLAGS) $? -o $@ $(LIBICONV)
103
104fetch: $(srcdir)/fetch.sh
105
106query: $(srcdir)/query.sh
107
108lbdb-query: $(srcdir)/lbdb-query.sh
109
110nodelist2lbdb: $(srcdir)/nodelist2lbdb.pl
111	cat nodelist2lbdb.pl > $@
112
113palm_lsaddr: $(srcdir)/palm_lsaddr.pl
114	cat palm_lsaddr.pl > $@
115
116mutt_ldap_query: $(srcdir)/mutt_ldap_query.pl
117	cat mutt_ldap_query.pl > $@
118
119lbdb_dotlock: $(srcdir)/dotlock.o $(srcdir)/helpers.o
120	$(CC) $(CFLAGS) $(LDFLAGS) $? -o $@
121
122dotlock.o: $(srcdir)/dotlock.h $(srcdir)/dotlock.c
123
124tac: $(srcdir)/tac.awk
125	cat tac.awk > $@
126	chmod a+x $@
127
128munge: $(srcdir)/munge.awk
129	cat munge.awk > $@
130	chmod a+x $@
131
132mutt_ldap_query.man: $(srcdir)/mutt_ldap_query.pl
133	if [ "$(PERL)" != "no" ]; then \
134		pod2man mutt_ldap_query.pl > $@; \
135	else \
136		touch mutt_ldap_query.man; \
137	fi
138
139m_vcf: vcquery
140
141vcquery: vcquery.o
142	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $? -lvformat
143
144m_osx_addressbook: ABQuery
145
146ABQuery: ABQuery.m
147	$(CC) $(CFLAGS) $(DEFS) -framework Foundation -framework AddressBook -o $@ $^
148
149clean:
150	-rm -f *.o *~ $(ALL) munge.awk tac.awk ABQuery \
151		nodelist2lbdb.pl palm_lsaddr.pl mutt_ldap_query.pl \
152		lbdb_dotlock lbdb.spec
153	-rm -rf ABQuery.dSYM
154
155distclean: clean
156	-rm -f config.status config.cache config.log Makefile
157	-rm -f *.sh
158	-rm -f vcquery
159
160Makefile: Makefile.in
161	./config.status
162
163%.sh: %.sh.in
164	./config.status
165
166%.pl: %.pl.in
167	./config.status
168
169%.awk: %.awk.in
170	./config.status
171
172%.man: %.man.in
173	sed -e 's!@''libdir@!$(libdir)!' \
174	    -e 's!@''sysconfdir@!$(sysconfdir)!' \
175	    -e 's!@''dotlock@!$(DOTLOCKBASE)!' $@.in > $@
176
177%.o: %.c
178	$(CC) $(CFLAGS) $(DEFS) -c $<
179