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

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

install : $(TARGET)

check :

download :

md5 :

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

$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
	rm -rf /install/cdrom /tmp/*

	cp -f $(DIR_SRC)/config/rootfiles/cdrom_corever /opt/pakfire/db/core/mine

	# Compress root filesystem
	# Reason for this tar+untar+tar is removing of entries listed two or more in src/ROOTFILES
	mkdir -p /install/cdrom/doc
	find $(DIR_SRC)/config/rootfiles/common -maxdepth 1 -type f | xargs cat >> /tmp/ROOTFILES
	find $(DIR_SRC)/config/rootfiles/ver_$(ED) -maxdepth 1 -type f | xargs cat >> /tmp/ROOTFILES
	find $(DIR_SRC)/config/rootfiles/core/*/files -maxdepth 1 -type f | xargs cat >> /tmp/ROOTFILES
	sed -e "s/KVER/$(KVER)/g" -i /tmp/ROOTFILES

	tar -c -C / --files-from=/tmp/ROOTFILES \
		-f /$(SNAME).tar --exclude='#*' --exclude='dev/pts/*' \
		--exclude='proc/*' --exclude='tmp/ROOTFILES'
	rm -f /tmp/ROOTFILES
	tar -x -C /tmp -f /$(SNAME).tar
	rm -f /$(SNAME).tar
	@mkdir /tmp/sys
	cd /tmp && tar jcf /install/cdrom/$(SNAME)-$(VERSION).tbz2 * && rm -rf *

	# Other files
	sed 's/VERSION/$(VERSION)/' $(DIR_SRC)/config/cdrom/README.txt > /install/cdrom/README.txt
	cp $(DIR_SRC)/doc/COPYING				/install/cdrom/
	cp $(DIR_SRC)/doc/{ChangeLog,packages-list.txt}	/install/cdrom/doc

	# Configuration
	mkdir -p /install/cdrom/boot
	cp $(DIR_SRC)/config/syslinux/unattended.conf    /install/cdrom/boot/unattended.conf

	# Make the ISO
	mkdir -p /install/cdrom/boot/isolinux; \
	dd if=/dev/zero  bs=1k count=2            > /install/cdrom/boot/isolinux/boot.catalog; \
	cp /install/images/initrd                   /install/cdrom/boot/isolinux/instroot; \
	cp /boot/vmlinuz-$(KVER)-ipfire             /install/cdrom/boot/isolinux/vmlinuz; \
	cp $(DIR_SRC)/config/syslinux/syslinux.cfg  /install/cdrom/boot/isolinux/isolinux.cfg; \
	cp $(DIR_SRC)/config/syslinux/boot.msg      /install/cdrom/boot/isolinux/boot.msg; \
	cp $(DIR_SRC)/config/syslinux/options.msg   /install/cdrom/boot/isolinux/options.msg; \
	cp $(DIR_SRC)/config/syslinux/splash.lss    /install/cdrom/boot/isolinux/splash.lss; \
	cp /usr/lib/memtest86+/memtest.bin          /install/cdrom/boot/isolinux/memtest; \
	cp /usr/lib/syslinux/isolinux.bin           /install/cdrom/boot/isolinux/isolinux.bin; \
	cd /install/cdrom && find -type f ! -name md5sum.txt | grep -v "./boot" | \
						xargs md5sum > md5sum.txt; \
	cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \
    	    -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \
    	    -c boot/isolinux/boot.catalog . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-$(ED).iso
