# Copyright Neil Van Dyke. See file "info.rkt". #---------------------------------------------------------------------- Options Makefile-options: echo "# -*- Makefile -*-" > $@ echo "" >> $@ echo "# PLT_BIN_DIR = " >> $@ echo "# USB_DRIVE = " >> $@ include Makefile-options PLT_BIN_DIR ?= /usr/bin USB_DRIVE ?= /dev/disk/by-id/usb-YOUR-USB-FLASH-DRIVE-HERE #------------------------------------------------------------------------------ RACO = $(PLT_BIN_DIR)/raco NAME = rackout SOURCE_DIR = $(CURDIR) DIST_TREE = dist-tree BUILD_DIR = /tmp/$(NAME)-build BUILD_FILES = Makefile \ aux.wmclass \ planet-neil-cpuinfo.rkt \ planet-neil-hostname.rkt \ planet-neil-overeasy.rkt \ planet-neil-sudo.rkt \ planet-neil-vlc.rkt \ planet-neil-web-server-xexp.rkt \ rackout.rkt \ rackout-about.rkt \ rackout-doc.rkt \ rackout-dvd-title.rkt \ rackout-infidelity.rkt \ rackout-live-build \ rackout-live-install.rkt \ rackout-live-syslinux-splash.png \ rackout-splash.rkt \ rackout-system.rkt \ rackout-xrandr.rkt \ info.rkt \ main.rkt \ static-files/icons \ static-files/jquery-1.7.1.min.js \ static-files/jquery.mobile-1.2.0 \ static-files/rackout.css \ static-files/rackout.js TEST_HOST = rackout.lan BINARY_FILE = $(LIVE_BUILD_DIR)/binary.img #BINARY_FILE = $(LIVE_BUILD_DIR)/binary-hybrid.iso LIVE_BUILD_DIR = rackout-live-build-dir .PHONY:: help help: @echo "" @echo "dist-tree - Build a standalone RackOut dist-tree." @echo "update-test-box - Install dist-tree on \"$(TEST_HOST)\"." @echo "clean - Clean temporary files and directories." @echo "live - " @echo "live-run - " @echo "live-burn-stick - " @echo "live-nuke - " @echo "live-clean-burn-stick - " @echo "" .PHONY:: dist-tree dist-tree: /bin/rm rackout rackout-live-install || exit 0 /bin/rm -r $(DIST_TREE) $(BUILD_DIR) compiled || exit 0 mkdir $(BUILD_DIR) tar cf - --exclude-backups --exclude-vcs $(BUILD_FILES) | (cd $(BUILD_DIR) && tar xvf -) cd $(BUILD_DIR) && $(RACO) exe rackout.rkt cd $(BUILD_DIR) && $(RACO) exe rackout-live-install.rkt cd $(BUILD_DIR) && $(RACO) distribute $(CURDIR)/$(DIST_TREE) rackout rackout-live-install find $(DIST_TREE) \( -type d -exec chmod 0755 {} \; \) -o \( -type f -exec chmod 0644 {} \; \) chmod 0755 $(DIST_TREE)/bin/* $(DIST_TREE)/lib/plt/* /bin/rm -r $(BUILD_DIR) .PHONY:: update-test-box update-test-box: rsync -rlptv -e ssh --rsync-path="sudo rsync" $(DIST_TREE)/. "$(TEST_HOST):/usr/local/$(NAME)/" .PHONY:: clean clean:: /bin/rm *~ rackout rackout-live-install || exit 0 /bin/rm -r compiled $(DIST_TREE) $(BUILD_DIR) || exit 0 .PHONY:: live live:: $(DIST_TREE) [ -d "$(LIVE_BUILD_DIR)" ] || mkdir "$(LIVE_BUILD_DIR)" cd "$(LIVE_BUILD_DIR)" && ../rackout-live-build ls -l "$(BINARY_FILE)" .PHONY:: live-run live-run:: kvm -m 512 -hda "$(BINARY_FILE)" .PHONY:: live-burn-stick live-burn-stick: PLTSTDERR=debug $(RACO) rackout-live-install --image "$(BINARY_FILE)" --disk "$(USB_DRIVE)" --want-home .PHONY:: live-burn-cd live-burn-cd: wodim -v -eject -tao "$(BINARY_FILE)" .PHONY:: live-nuke live-nuke: DeleteFile="$(LIVE_BUILD_DIR)-delete-$$$$" ; mv "$(LIVE_BUILD_DIR)" "$$DeleteFile" ; sudo rm -rf "./$${DeleteFile}" .PHONY:: live-clean-burn-stick live-clean-burn-stick: clean live live-burn-stick live-run