###############################################################################
#                                                                             #
# IPFire.org - A linux based firewall                                         #
# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
#                                                                             #
# 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 3 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, see <http://www.gnu.org/licenses/>.       #
#                                                                             #
###############################################################################

###############################################################################
# Definitions
###############################################################################

include Config

VER = ipfire

THISAPP    = initscripts
DIR_APP    = $(DIR_SRC)/$(THISAPP)
TARGET     = $(DIR_INFO)/$(THISAPP)

###############################################################################
# Top-level Rules
###############################################################################

install : $(TARGET)

check :

download :

md5 :

###############################################################################
# Installation Details
###############################################################################

$(TARGET) :
	@$(PREBUILD)
	install -d -m 755 /etc/rc.d/rc0.d
	install -d -m 755 /etc/rc.d/rc3.d
	install -d -m 755 /etc/rc.d/rc6.d
	install -d -m 755 /etc/rc.d/rcsysinit.d
	install -d -m 755 /etc/rc.d/init.d
	install -d -m 755 /etc/rc.d/init.d/networking
	install -d -m 755 /etc/rc.d/init.d/networking/red.up
	install -d -m 755 /etc/rc.d/init.d/networking/red.down
	install -d -m 755 /etc/rc.d/helper
	install -d -m 755 /etc/sysconfig
	-rm -rf /etc/init.d
	ln -svf rc.d/init.d /etc/init.d

	for i in $(DIR_SRC)/src/initscripts/init.d/*; do \
		install -v -m 754 $$i /etc/rc.d/init.d/; \
	done
	chmod 644 /etc/rc.d/init.d/functions

	for i in $(DIR_SRC)/src/initscripts/init.d/networking/*; do \
		if [ -f $$i ]; then \
			install -v -m 754 $$i /etc/rc.d/init.d/networking/; \
		fi; \
	done

	for i in $(DIR_SRC)/src/initscripts/init.d/networking/red.up/*; do \
		install -v -m 754 $$i /etc/rc.d/init.d/networking/red.up/; \
	done

	for i in $(DIR_SRC)/src/initscripts/init.d/networking/red.down/*; do \
		install -v -m 754 $$i /etc/rc.d/init.d/networking/red.down/; \
	done

	for i in $(DIR_SRC)/src/initscripts/sysconfig/*; do \
		install -v -m 644 $$i /etc/sysconfig/; \
	done
	chmod -v 755 /etc/sysconfig/{firewall,rc}.local

	for i in $(DIR_SRC)/src/initscripts/helper/*; do \
		install -v -m 755 $$i /etc/rc.d/helper/; \
	done

	ln -sf ../init.d/sysklogd    /etc/rc.d/rc0.d/K90sysklogd
	ln -sf ../init.d/sendsignals /etc/rc.d/rc0.d/S60sendsignals
	ln -sf ../init.d/localnet    /etc/rc.d/rc0.d/S70localnet
	ln -sf ../init.d/mountfs     /etc/rc.d/rc0.d/S80mountfs
	ln -sf ../init.d/swap        /etc/rc.d/rc0.d/S90swap
	ln -sf ../init.d/halt        /etc/rc.d/rc0.d/S99halt
	ln -sf ../init.d/sysklogd    /etc/rc.d/rc3.d/S10sysklogd
	ln -sf ../init.d/smartenabler /etc/rc.d/rc3.d/S19smartenabler
	ln -sf ../init.d/messagebus  /etc/rc.d/rc3.d/S15messagebus
	ln -sf ../init.d/messagebus  /etc/rc.d/rc0.d/K85messagebus
	ln -sf ../init.d/messagebus  /etc/rc.d/rc6.d/K85messagebus
	ln -sf ../init.d/bluetooth   /etc/rc.d/rc3.d/S16bluetooth
	ln -sf ../init.d/bluetooth   /etc/rc.d/rc0.d/K84bluetooth
	ln -sf ../init.d/bluetooth   /etc/rc.d/rc6.d/K84bluetooth
	ln -sf ../init.d/cpufreq     /etc/rc.d/rc3.d/S18cpufreq
	ln -sf ../init.d/sysklogd    /etc/rc.d/rc6.d/K90sysklogd
	ln -sf ../init.d/sendsignals /etc/rc.d/rc6.d/S60sendsignals
	ln -sf ../init.d/mountfs     /etc/rc.d/rc6.d/S70mountfs
	ln -sf ../init.d/swap        /etc/rc.d/rc6.d/S80swap
	ln -sf ../init.d/localnet    /etc/rc.d/rc6.d/S90localnet
	ln -sf ../init.d/reboot      /etc/rc.d/rc6.d/S99reboot
	ln -sf ../init.d/sshd        /etc/rc.d/rc0.d/K30sshd
	ln -sf ../init.d/sshd        /etc/rc.d/rc3.d/S30sshd
	ln -sf ../init.d/sshd        /etc/rc.d/rc6.d/K30sshd
	ln -sf ../init.d/apache      /etc/rc.d/rc0.d/K28apache
	ln -sf ../init.d/apache      /etc/rc.d/rc3.d/S32apache
	ln -sf ../init.d/apache      /etc/rc.d/rc6.d/K28apache
	ln -sf ../init.d/fcron       /etc/rc.d/rc0.d/K08fcron
	ln -sf ../init.d/fcron       /etc/rc.d/rc3.d/S40fcron
	ln -sf ../init.d/fcron       /etc/rc.d/rc6.d/K08fcron
	ln -sf ../init.d/network     /etc/rc.d/rc0.d/K80network
	ln -sf ../init.d/network     /etc/rc.d/rc3.d/S20network
	ln -sf ../init.d/network     /etc/rc.d/rc6.d/K80network
	ln -sf ../init.d/random      /etc/rc.d/rc0.d/K45random
	ln -sf ../init.d/random      /etc/rc.d/rc3.d/S25random
	ln -sf ../init.d/random      /etc/rc.d/rc6.d/K45random
	ln -sf ../../sysconfig/rc.local /etc/rc.d/rc3.d/S98rc.local
	ln -sf ../init.d/beep        /etc/rc.d/rc0.d/K99beep
	ln -sf ../init.d/beep        /etc/rc.d/rc3.d/S99beep
	ln -sf ../init.d/beep        /etc/rc.d/rc6.d/K99beep

	ln -sf ../init.d/mountkernfs /etc/rc.d/rcsysinit.d/S00mountkernfs
	ln -sf ../init.d/modules     /etc/rc.d/rcsysinit.d/S05modules
	ln -sf ../init.d/udev        /etc/rc.d/rcsysinit.d/S10udev
	ln -sf ../init.d/checkfstab  /etc/rc.d/rcsysinit.d/S19checkfstab
	ln -sf ../init.d/swap        /etc/rc.d/rcsysinit.d/S20swap
	ln -sf ../init.d/checkfs     /etc/rc.d/rcsysinit.d/S30checkfs
	ln -sf ../init.d/mountfs     /etc/rc.d/rcsysinit.d/S40mountfs
	ln -sf ../init.d/udev_retry  /etc/rc.d/rcsysinit.d/S45udev_retry
	ln -sf ../init.d/cleanfs     /etc/rc.d/rcsysinit.d/S50cleanfs
	ln -sf ../init.d/setclock    /etc/rc.d/rcsysinit.d/S60setclock
	ln -sf ../init.d/console     /etc/rc.d/rcsysinit.d/S70console
	ln -sf ../init.d/localnet    /etc/rc.d/rcsysinit.d/S80localnet
	ln -sf ../init.d/sysctl      /etc/rc.d/rcsysinit.d/S90sysctl
	
	ln -sf ../../dnsmasq /etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq
	ln -sf ../../firewall /etc/rc.d/init.d/networking/red.up/20-RL-firewall
	ln -sf ../../../../../usr/local/bin/outgoingfwctrl \
		/etc/rc.d/init.d/networking/red.up/22-outgoingfwctrl
	ln -sf ../../../../../usr/local/bin/snortctrl \
		/etc/rc.d/init.d/networking/red.up/23-RS-snort
	ln -sf ../../../../../usr/local/bin/qosctrl \
		/etc/rc.d/init.d/networking/red.up/24-RS-qos
	ln -sf ../../../../../usr/local/bin/setportfw \
		/etc/rc.d/init.d/networking/red.up/25-portfw
	ln -sf ../../../../../usr/local/bin/setxtaccess \
		/etc/rc.d/init.d/networking/red.up/26-xtaccess
	ln -sf ../../../../../usr/local/bin/dialctrl.pl \
		/etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl
	ln -sf ../../squid /etc/rc.d/init.d/networking/red.up/27-RS-squid
	
	ln -sf ../../dnsmasq /etc/rc.d/init.d/networking/red.down/05-RS-dnsmasq
	ln -sf ../../firewall /etc/rc.d/init.d/networking/red.down/20-RL-firewall
	ln -sf ../../../../../usr/local/bin/dialctrl.pl \
		/etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl

	for i in green blue orange; do \
		ln -sf any /etc/rc.d/init.d/networking/$$i; \
	done
	
	@$(POSTBUILD)
