File: Makefile

package info (click to toggle)
fiaif 1.23.1-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,428 kB
  • ctags: 254
  • sloc: sh: 2,648; awk: 531; makefile: 309
file content (213 lines) | stat: -rw-r--r-- 8,066 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
# Makefile for FIAIF 
#
# Copyright (C) 2002-2011 Anders Peter Fugmann <anders at fugmann dot net>
# This package comes with ABSOLUTELY NO WARRANTY
# Use strictly at your own risk.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

INSTALL_SRC_PATH=/usr/share/fiaif
INSTALL_DOC_PATH=/usr/share/doc/fiaif
INSTALL_CONF_PATH=/etc/fiaif
INSTALL_INIT_PATH=/etc/init.d
INSTALL_MAN_PATH=/usr/share/man/man
INSTALL_PROG_PATH=/usr/sbin
INSTALL_CRON_PATH=/etc/cron.daily/

HTML_PATH=/home/afu/fiaif
DIST_PATH=$(HTML_PATH)/dist
BETA_PATH=$(HTML_PATH)/beta

SRC_PATH=src/
CONF_PATH=conf/
MAN_PATH=man
DOC_PATH=doc/
PROG_PATH=prog/
CRON_PATH=cron

INITD_LEVEL=09
INIT_FILE=fiaif
CRON_FILE=fiaif.cron

FAQ=doc/faq.txt
CHANGELOG=changelog
DOC_FILES=$(CHANGELOG) debian/copyright doc/DHCP.txt \
	doc/reporting_bugs.txt doc/upgrade.txt

CONF_FILES=fiaif.conf zone.int zone.ext zone.dmz \
	reserved_networks private_networks \
	type_of_services aliases

VERSION:=$(shell head -n1 changelog | cut -d" " -f 3)
DEB_VERSION:=$(shell VER=$$(head -n1 debian/changelog | sed "s/.*(\(.*\)).*/\1/g"); \
	            if test "$$VER" = "$(VERSION)*"; then echo $$VER; \
                    else echo $(VERSION)-0.1; fi)
SPEC_VERSION:=$(shell VER=$$(grep "Version" fiaif.spec | cut -f 2); \
		     REL=$$(grep "Release" fiaif.spec | cut -f 2); \
	            if test "$$VER" = "$(VERSION)"; then echo "$$VER-$$REL"; \
                    else echo "$(VERSION)-0.1"; fi)

.PHONY: install uninstall install-config install-initd \
	clean all dist debian tar rpm html fiaif.ps

all: install install-initd

install: VERSION fiaif.ps
	install -d $(DESTDIR)/$(INSTALL_SRC_PATH) 
	install -d $(DESTDIR)/$(INSTALL_DOC_PATH) 
	install -m 700 -d $(DESTDIR)/$(INSTALL_CONF_PATH) 
	install -d $(DESTDIR)/$(INSTALL_INIT_PATH)
	install -d $(DESTDIR)/$(INSTALL_MAN_PATH)5
	install -d $(DESTDIR)/$(INSTALL_MAN_PATH)8
	install -d $(DESTDIR)/$(INSTALL_PROG_PATH)
	install -d $(DESTDIR)/var/lib/fiaif
	install -d $(DESTDIR)/var/lock/subsys
	install -d $(DESTDIR)/$(INSTALL_CRON_PATH)

	install -m 644 $(SRC_PATH)/*sh $(DESTDIR)/$(INSTALL_SRC_PATH) 
	install -m 644 $(SRC_PATH)/*awk $(DESTDIR)/$(INSTALL_SRC_PATH) 
	install -m 644 $(DOC_FILES) $(DESTDIR)/$(INSTALL_DOC_PATH)
	[ -f fiaif.ps ] && \
		gzip -9 -c fiaif.ps > $(DESTDIR)/$(INSTALL_DOC_PATH)/fiaif.ps.gz || echo ok
	gzip -9 -c changelog >  $(DESTDIR)/$(INSTALL_DOC_PATH)/changelog.gz
	install -m 644 $(MAN_PATH)/*.8 $(DESTDIR)/$(INSTALL_MAN_PATH)8/
	install -m 644 $(MAN_PATH)/*.5 $(DESTDIR)/$(INSTALL_MAN_PATH)5/
	install -m 755 $(PROG_PATH)/$(INIT_FILE) $(DESTDIR)/$(INSTALL_INIT_PATH)
	install -m 755 $(PROG_PATH)/fiaif-* $(DESTDIR)/$(INSTALL_PROG_PATH)
	install -m 644 VERSION $(DESTDIR)/$(INSTALL_SRC_PATH) 
	rm -f $(DESTDIR)/var/lib/fiaif/iptables

	install -m 755 $(CRON_PATH)/fiaif $(DESTDIR)/$(INSTALL_CRON_PATH)

install-initd: 
	if [[ -d $(DESTDIR)/etc/rcS.d/ ]] ; then \
		if [[ ! -f $(DESTDIR)/etc/rcS.d/S$(INITD_LEVEL)$(INIT_FILE) ]]; then \
			ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/rcS.d/S$(INITD_LEVEL)$(INIT_FILE) ; \
		fi \
	elif [[ -d $(DESTDIR)/etc/init.d/ && ! -L $(DESTDIR)/etc/init.d ]]; then \
		if [[ ! -f $(DESTDIR)/etc/init.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ]]; then \
			ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/init.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ; \
			ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/init.d/rc5.d/S$(INITD_LEVEL)$(INIT_FILE) ; \
		fi \
	elif [[ -d $(DESTDIR)/etc/rc.d/ ]]; then \
		if [[ ! -f $(DESTDIR)/etc/rc.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ]]; then \
			ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/rc.d/rc3.d/S$(INITD_LEVEL)$(INIT_FILE) ; \
			ln -sf ../init.d/$(INIT_FILE) $(DESTDIR)/etc/rc.d/rc5.d/S$(INITD_LEVEL)$(INIT_FILE) ; \
		fi \
	fi

install-config: 
	install -m 600 --backup --suffix ".orig" $(addprefix $(CONF_PATH), $(CONF_FILES)) $(DESTDIR)$(INSTALL_CONF_PATH)

uninstall:
	$(RM) -r $(DESTDIR)/$(INSTALL_DOC_PATH)
	$(RM) $(DESTDIR)/$(INSTALL_INIT_PATH)/$(INIT_FILE)
	$(RM) -r $(DESTDIR)/$(CONF_PATH)	
	$(RM) $(DESTDIR)/etc/rc?.d/S$(LEVEL)$(INIT_FILE)

html: fiaif.ps
	install -d $(HTML_PATH)/img
	install -d $(HTML_PATH)/dist
	install -d $(HTML_PATH)/beta
	install -d $(HTML_PATH)/man
	install -d $(HTML_PATH)/conf

	install -m 644 $(FAQ) $(HTML_PATH)
	install -m 644 html/favicon.ico $(HTML_PATH)
	install -m 644 html/*php $(HTML_PATH)/
	install -m 644 html/img/*png $(HTML_PATH)/img

	install -m 644 $(addprefix $(CONF_PATH), $(CONF_FILES)) $(HTML_PATH)/conf	
	for manpage in $(MAN_PATH)/*{5,8}; do \
		groff -man -Thtml $$manpage > $(HTML_PATH)/$$manpage.html; \
	done	

	install -m 644 fiaif.ps $(HTML_PATH)
	$(MAKE) -C doc/fiaif html HTML_DIR=$(HTML_PATH)/doc

fiaif.ps:
	[ -f fiaif.ps ] || ($(MAKE) -C doc/fiaif fiaif.ps && cp doc/fiaif/fiaif.ps .)

deb: VERSION 
	fakeroot dpkg-buildpackage -us -uc || true
	rm -fr debian/fiaif

rpm: tar VERSION
	cp ../fiaif_$(VERSION).tar.gz ~/rpmbuild/SOURCES/
	rpmbuild -ba --rmsource --clean fiaif.spec
	mv ~/rpmbuild/RPMS/noarch/fiaif-$(SPEC_VERSION).noarch.rpm ../fiaif_$(SPEC_VERSION).noarch.rpm
	mv ~/rpmbuild/SRPMS/fiaif-$(SPEC_VERSION).src.rpm ../fiaif_$(SPEC_VERSION).src.rpm

tar: clean VERSION fiaif.ps 
	cd ..; find fiaif -type d -name .svn > /tmp/exclude
	cd ..; find fiaif -type f -name .cvsignore >> /tmp/exclude
	echo fiaif/html >> /tmp/exclude
	echo update_changelog.sh >> /tmp/exclude
	cd ..; tar zcf fiaif_$(VERSION).tar.gz -X /tmp/exclude fiaif/* 
	tar zxf ../fiaif_$(VERSION).tar.gz --directory debian
	mv debian/fiaif debian/fiaif-$(VERSION)
	cd debian; tar zcf ../../fiaif_$(VERSION).tar.gz fiaif-$(VERSION)/*
	rm -fr debian/fiaif-$(VERSION)
	rm -f /tmp/exclude

VERSION: $(CHANGELOG)
	echo $(VERSION) > VERSION 

dist: clean tar deb rpm VERSION
	install -m 644 ../fiaif_$(DEB_VERSION).dsc $(DIST_PATH)
	install -m 644 ../fiaif_$(DEB_VERSION)_all.deb $(DIST_PATH)
	install -m 644 ../fiaif_$(DEB_VERSION)_*.changes $(DIST_PATH)
	install -m 644 ../fiaif_$(SPEC_VERSION).noarch.rpm $(DIST_PATH)
	install -m 644 ../fiaif_$(SPEC_VERSION).src.rpm $(DIST_PATH)
	install -m 644 ../fiaif_$(VERSION).tar.gz $(DIST_PATH)

	cd $(DIST_PATH); apt-ftparchive packages . | gzip > Packages.gz
	cd $(DIST_PATH); apt-ftparchive sources . | gzip > Sources.gz

	echo "$(VERSION)" > $(HTML_PATH)/VERSION
	echo "$(DEB_VERSION)" > $(HTML_PATH)/DEB_VERSION
	echo "$(SPEC_VERSION)" > $(HTML_PATH)/SPEC_VERSION
	install -m 644 $(CHANGELOG) $(HTML_PATH)/

	rm -f $(DIST_PATH)/LATEST-IS-*
	touch $(DIST_PATH)/LATEST-IS-$(VERSION)

	cd $(DIST_PATH)/; md5sum fiaif* > md5sums

beta: clean tar deb rpm html VERSION
	install -m 644 ../fiaif_$(DEB_VERSION).dsc $(BETA_PATH)
	install -m 644 ../fiaif_$(DEB_VERSION)_all.deb $(BETA_PATH)
	install -m 644 ../fiaif_$(DEB_VERSION)_i386.changes $(BETA_PATH)
	install -m 644 ../fiaif_$(SPEC_VERSION).noarch.rpm $(BETA_PATH)
	install -m 644 ../fiaif_$(SPEC_VERSION).src.rpm $(BETA_PATH)
	install -m 644 ../fiaif_$(VERSION).tar.gz $(BETA_PATH)

	cd $(BETA_PATH); apt-ftparchive packages . | gzip -9c > Packages.gz
	cd $(BETA_PATH); apt-ftparchive sources . | gzip -9c > Sources.gz

	install -m 644 $(CHANGELOG) $(HTML_PATH)/

	rm -f $(BETA_PATH)/LATEST-IS-*
	touch $(BETA_PATH)/LATEST-IS-$(VERSION)

	cd $(BETA_PATH)/; md5sum fiaif* > md5sums

clean:
	$(MAKE) -C doc/fiaif clean
	find . -name \*~ | xargs rm -f  
	$(RM) -r debian/fiaif 
	$(RM) -r debian/fiaif_$(VERSION)
	$(RM) debian/*debhelper debian/files debian/*substvars 
	$(RM) build-stamp