1fb2a2e7e515b615360e8560fc588aa3bafe880a
[become] / src / Makefile.am
1 ## Process this file with `automake' to generate `Makefile.in'
2 ## -*-makefile-*-
3 ##
4 ## $Id: Makefile.am,v 1.16 2003/10/12 00:39:16 mdw Exp $
5 ##
6 ## Makefile for `become'
7 ##
8 ## (c) 1998 EBI
9 ##
10
11 ##----- Licensing notice ----------------------------------------------------
12 ##
13 ## This file is part of `become'
14 ##
15 ## `Become' is free software; you can redistribute it and/or modify
16 ## it under the terms of the GNU General Public License as published by
17 ## the Free Software Foundation; either version 2 of the License, or
18 ## (at your option) any later version.
19 ##
20 ## `Become' is distributed in the hope that it will be useful,
21 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
22 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 ## GNU General Public License for more details.
24 ##
25 ## You should have received a copy of the GNU General Public License
26 ## along with `become'; if not, write to the Free Software Foundation,
27 ## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28
29 ##----- Revision history ----------------------------------------------------
30 ##
31 ## $Log: Makefile.am,v $
32 ## Revision 1.16 2003/10/12 00:39:16 mdw
33 ## Light fixes for strange building.
34 ##
35 ## Revision 1.15 2003/10/12 00:15:34 mdw
36 ## Fix to makefile install rules.
37 ##
38 ## Revision 1.14 2003/10/12 00:14:55 mdw
39 ## Major overhaul. Now uses DSA signatures rather than the bogus symmetric
40 ## encrypt-and-hope thing. Integrated with mLib and Catacomb.
41 ##
42 ## Revision 1.13 1999/05/04 16:50:59 mdw
43 ## Change library to `libbecome.a', for aesthetic reasons.
44 ##
45 ## Revision 1.12 1999/05/04 16:36:03 mdw
46 ## Changes for new Automake version.
47 ##
48 ## Revision 1.11 1998/06/18 15:52:05 mdw
49 ## Remove the IDEA test case.
50 ##
51 ## Revision 1.10 1998/04/23 13:17:17 mdw
52 ## New program `bcquery', and `ypstuff' module added.
53 ##
54 ## Revision 1.9 1998/02/20 18:12:35 mdw
55 ## Make the `become' program setuid root when installing.
56 ##
57 ## Revision 1.8 1998/01/12 16:45:36 mdw
58 ## Fix copyright date.
59 ##
60 ## Revision 1.7 1997/09/26 09:14:57 mdw
61 ## Merged blowfish branch into trunk.
62 ##
63 ## Revision 1.6.2.1 1997/09/26 09:07:56 mdw
64 ## Use the Blowfish encryption algorithm instead of IDEA. This is partly
65 ## because I prefer Blowfish (without any particularly strong evidence) but
66 ## mainly because IDEA is patented and Blowfish isn't.
67 ##
68 ## Revision 1.6 1997/09/18 11:17:18 mdw
69 ## Fix comment leaders. Don't know why this CVS keeps breaking them.
70 ## Could be DEC's bogus version of RCS being picked up.
71 ##
72 ## Revision 1.5 1997/09/17 10:28:25 mdw
73 ## Remove `set.c'. No longer necessary.
74 ##
75 ## Revision 1.4 1997/08/20 16:14:12 mdw
76 ## Build parser and lexer into the source directory. Other cosmetic
77 ## things.
78 ##
79 ## Revision 1.3 1997/08/07 09:39:36 mdw
80 ## Add new source files, and remove options inappropriate for subsidiary
81 ## Makefiles.
82 ##
83 ## Revision 1.2 1997/08/04 10:24:19 mdw
84 ## Sources placed under CVS control.
85 ##
86
87 ##----- General setup things ------------------------------------------------
88
89 ## --- What to make ---
90
91 bin_PROGRAMS = become bcquery
92 noinst_LIBRARIES = libbecome.a
93
94 ##----- Building the main code ----------------------------------------------
95
96 ## --- The library contains most of the interesting stuff ---
97
98 libbecome_a_SOURCES = \
99 check.c daemon.c \
100 lexer.l parser.y \
101 class.c name.c netg.c rule.c userdb.c ypstuff.c \
102 \
103 become.h \
104 check.h daemon.h \
105 lexer.h parse.h \
106 class.h name.h netg.h rule.h userdb.h ypstuff.h
107
108 BUILT_SOURCES = \
109 parser.c parser.h lexer.c
110
111 ## --- Yaccing and lexing ---
112
113 YFLAGS = -d -v
114
115 dist-hook:
116 for i in $(BUILT_SOURCES); do \
117 [ -r $(distdir)/$$i ] || ln $$i $(distdir)/$$i; \
118 done
119
120 ## --- The main programs ---
121
122 LDADD = libbecome.a @LEXLIB@
123
124 become_SOURCES = become.c
125 bcquery_SOURCES = bcquery.c
126
127 become_DEPENDENCIES = libbecome.a
128 bcquery_DEPENDENCIES = libbecome.a
129
130 ##----- Become must be setuid root ------------------------------------------
131
132 install-exec-hook:
133 become_prog=$(DESTDIR)/${bindir}/`echo become|sed '${transform}'`; \
134 { chown root $${become_prog} && \
135 chmod 4755 $${become_prog}; } || \
136 { echo ">>>>>"; \
137 echo ">>>>> $${become_prog} must be installed setuid-root"; \
138 echo ">>>>>"; \
139 }
140
141 ##----- Testing -------------------------------------------------------------
142
143 ## --- The test programs ---
144
145 TESTS = name-test netg-test userdb-test
146
147 ## --- How to build a test rig ---
148
149 SUFFIXES = .tro
150 .c.tro:
151 $(COMPILE) -DTEST_RIG $< -c -o $@
152
153 ## --- Now build all the test programs ---
154 ##
155 ## This is a right pain. However, `automake' provides no way of automating
156 ## this. (A drop-out to raw perl would be nice, for example.)
157
158 name-test: name.tro libbecome.a
159 $(LINK) name.tro libbecome.a $(LIBS)
160 userdb-test: userdb.tro libbecome.a
161 $(LINK) userdb.tro libbecome.a $(LIBS)
162 netg-test: netg.tro libbecome.a
163 $(LINK) netg.tro libbecome.a $(LIBS)
164
165 CLEANFILES = *.tro y.output
166
167 ##----- That's all, folks ---------------------------------------------------