3 ### Makefile for firewall scripts
5 ### (c) 2008 Mark Wooding
8 ###----- Licensing notice ---------------------------------------------------
10 ### This program is free software; you can redistribute it and/or modify
11 ### it under the terms of the GNU General Public License as published by
12 ### the Free Software Foundation; either version 2 of the License, or
13 ### (at your option) any later version.
15 ### This program is distributed in the hope that it will be useful,
16 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ### GNU General Public License for more details.
20 ### You should have received a copy of the GNU General Public License
21 ### along with this program; if not, write to the Free Software Foundation,
22 ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 ### Makefile for firewall scripts
25 ###--------------------------------------------------------------------------
28 ## Extend these variables in `local.mk' to match your site.
37 ###--------------------------------------------------------------------------
38 ### Clever silent-rules stuff.
43 ## Suppressing command output.
48 ## Replacing them with messages.
49 v_echo
= $(call v_echo_
$V,$1)
50 v_echo_0
= @printf
" %-6s %s\n" "$1" "$@";
55 space
= $(empty
) $(empty
)
58 V_M4
= $(call v_echo
,M4
)m4
-P
$(space
)
59 V_GEN
= $(call v_echo
,GEN
)
61 ###--------------------------------------------------------------------------
62 ### Local configuration.
64 ## Should set up HOSTS and add stuff to MAIN_M4_SOURCES if necessary. Feel
65 ## free to define additional targets here.
68 ###--------------------------------------------------------------------------
71 ## The main m4 inputs which construct the firewall. These are read in last
72 ## to allow local configuration to change their environments.
73 MAIN_M4_SOURCES
+= config.m4
74 MAIN_M4_SOURCES
+= prologue.m4
75 MAIN_M4_SOURCES
+= functions.m4
76 MAIN_M4_SOURCES
+= numbers.m4
77 MAIN_M4_SOURCES
+= bookends.m4
78 MAIN_M4_SOURCES
+= classify.m4
79 MAIN_M4_SOURCES
+= icmp.m4
81 ## All of our m4 inputs. The base gets read first to set things up.
83 M4_SOURCES
+= $(MAIN_M4_SOURCES
)
85 ###--------------------------------------------------------------------------
88 TARGETS
= $(addsuffix .sh
,$(HOSTS
))
90 ###--------------------------------------------------------------------------
96 %.sh
: %.m4
$(M4_SOURCES
)
97 $(V_M4
)base.m4
$*.m4
$(MAIN_M4_SOURCES
) >$@.new
98 $(V_AT
)chmod
+x
$@.new
&& mv
$@.new
$@
100 clean:; rm -f
$(TARGETS
) *.new
103 ###----- That's all, folks --------------------------------------------------