############################################################################### # # # 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 . # # # ############################################################################### ############################################################################### # Definitions ############################################################################### include Config VER = ipfire THISAPP = usb-stick TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules ############################################################################### install : $(TARGET) check : download : md5 : ############################################################################### # Installation Details ############################################################################### IMGfdd := /install/images/$(SNAME)-$(VERSION)-install-usb-fdd.$(MACHINE)-$(ED)-core$(CORE).img IMGhdd := /install/images/$(SNAME)-$(VERSION)-install-usb-hdd.$(MACHINE)-$(ED)-core$(CORE).img IMGfs := /install/images/fs ifeq "$(ED)" "devel" DISKSIZE=480000 else DISKSIZE=120000 endif define COPY_TO_IMG mkdosfs -n IPFIRE -F 16 -I $$IMAGE && \ for i in /0 `seq 0 7`; do \ [ -e /dev/loop$${i} ] || continue; \ if (! losetup /dev/loop$${i} >/dev/null 2>&1 ); then \ LOOPDEV="/dev/loop$${i}"; \ break; \ fi; \ done; \ losetup $$LOOPDEV $$IMAGE && \ mount -t vfat $$LOOPDEV /install/mnt && \ cp -fR /install/cdrom/* /install/mnt && \ mv /install/mnt/boot/isolinux/{instroot,vmlinuz,*\.msg,memtest} /install/mnt && \ rm -rf /install/mnt/boot && \ cp $(DIR_SRC)/config/syslinux/syslinux.cfg /install/mnt/syslinux.cfg && \ umount /install/mnt && \ losetup -d $$LOOPDEV && \ syslinux $$IMAGE endef $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # usb-fdd superfloppy (partitionless) # compute size +32 blocks for bootsector/fat/etc... dd bs=1024 count=$$((`du -k -s /install/cdrom | awk '{print $$1}'` + 2048 )) \ if=/dev/zero \ of=$(IMGfdd) IMAGE=$(IMGfdd); $(COPY_TO_IMG) # Partitionned images : make a file system bigger than iso size # that fit on 128MB key to let free space available # on the unique partition. Image will be compressed later dd bs=1k if=/dev/zero of=$(IMGfs) count=$(DISKSIZE) IMAGE=$(IMGfs); $(COPY_TO_IMG) # usb-hdd (64 heads, 32 sectors geometry, on a partition 1) # use 64 heads as 256 does not work on Award bios (Asus A7V8X-X Gilles) # use 32 sectors a minima or device is not recognised as hard disk (Frank) # add 32 to IMGfs as first partition start at 32 COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \ dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT # write mbr before partitioning save a 'not msdos fs' warning from sfdisk /usr/local/sbin/install-mbr -f $(IMGhdd) echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd) # copy the entire partition, make the fs and dd back dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32 gzip -f9 $(IMGfdd) $(IMGhdd) rm -rf $$LFS/tmp/* $(IMGfs)