###############################################################################
#                                                                             #
# 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    = stage2
TARGET     = $(DIR_INFO)/$(THISAPP)

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

install : $(TARGET)

check :

download :

md5 :

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

$(TARGET) :
	@$(PREBUILD)

	# Create directories
	-mkdir -pv /{bin,boot,etc/opt,etc/modprobe.d,home,lib,mnt,opt}
	-mkdir -pv /{media/{floppy,cdrom,usbkey},sbin,srv,var}
	-install -dv -m 0750 /root
	-install -dv -m 1777 /tmp /var/tmp
	-mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
	-mkdir -pv /usr/{,local/}share/{doc,info,locale,man}
	-mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
	-mkdir -pv /usr/{,local/}share/man/man{1..8}
	#-for dir in /usr /usr/local; do \
	#  ln -sv share/{man,doc,info} $$dir; \
	#done
	
	# Symlinks
	# for this reason, stage2 rebuild will broke the iso:perl, grubbatch
	-ln -sv /tools/bin/{bash,cat,grep,pwd,stty} /bin
	-ln -sv /tools/bin/perl /usr/bin
	-ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
	-ln -sv bash /bin/sh

	# Config files
	for i in $(DIR_SRC)/config/etc/*; do \
	    [ -f $$i ] && cp $$i /etc; \
	done
	touch /etc/mtab
	echo "$(NAME) v$(VERSION) - $(SLOGAN)" >  /etc/issue
	echo "===============================" >> /etc/issue
	echo "\n running on \s \r \m"          >> /etc/issue

	# Bash startup files
	install --directory --mode=0755 --owner=root --group=root /etc/profile.d
	for i in $(DIR_SRC)/config/profile.d/*; do \
	    [ -f $$i ] && cp $$i /etc/profile.d; \
	done
	chmod 755 /etc/bashrc
	ln -svf ../bashrc /etc/profile.d/bashrc.sh

	# Scripts
	for i in `find $(DIR_SRC)/src/scripts -maxdepth 1 -type f`; do \
	    sed "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i > /usr/local/bin/`basename $$i`; \
	    chmod 755 /usr/local/bin/`basename $$i`; \
	done

	# Nobody user
	-mkdir -p /home/nobody
	chown -R nobody:nobody /home/nobody

	# Create /var dirs and files
	-mkdir -v /var/{lock,log,mail,run,spool,empty}
	-mkdir -pv /var/{opt,cache,lib/{misc,locate},local}
	-mkdir -pv /var/log/{counter,calamaris}
	chown nobody.nobody /var/log/calamaris
	touch /var/run/utmp /var/log/{btmp,lastlog,wtmp,net-traffic.log}
	chgrp -v utmp /var/run/utmp /var/log/lastlog
	chmod -v 664 /var/run/utmp /var/log/lastlog

	# Permissions
	chmod 0711 /var/empty
	
	# A small hack to include /root to the iso but not all of it's files.
	touch /root/ipfire

	@$(POSTBUILD)
