#
# For Knoppix on My Any Good PC
# - To setup tcdemo/* use this makefile for a while
#
# 20071120 Seiji Munetoh
#

usage:
	@echo " TC DEMO Setup for Knoppix"
	@echo " --------------------------------- Client Setup"
	@echo " make reinstall       re-install openpts/tcdemo"
	@echo " make restart-tcsd                 restart TCSD"
	@echo " make setup-tpm                   TakeOwnership"
	@echo " make setup-key                      Create Key"
	@echo " make setup-tpm12 ( or make setup-tpm11 )"
	@echo " make setup-rm                  create manifest"
	@echo " make clean-rm                  delete manifest"
	@echo " make setup-desktop      create icon on Desktop"
	@echo "------------------------------------------- JRE"
	@echo " make start-client-user"
	@echo " make start-client-admin"
	@echo "------------------------------------------- GCJ"
	@echo " make start-client-user-gcj"
	@echo " make start-client-admin-gcj"
	@echo "-----------------------------------------------"


clean: clean-rm

###############################################
# Client Setup
###############################################

UUID=00000000000000000000000000000079
NONCE=83c5cacb20a590e5b48980598cc69f18068495de

GRUB_CD_DIR=/cdrom/boot/grub
GRUB_ROOT_DIR=/usr/share/grub/i386-pc

PS_FILE_DIR=/etc/tpm
USB_DIR=/media/sda1

FORCE:

reinstall:
	cd /; tar xvfz $(USB_DIR)/openpts-0.1.0.tgz
	cd /; tar xvfz $(USB_DIR)/openpts-tcdemo-0.1.0.tgz
	cd /opt/OpenPlatformTrustServices/tools/tpm; make clean
	cd /opt/OpenPlatformTrustServices/tools/tpm; make
	cd /opt/OpenPlatformTrustServices/tools/tpm; make install

/etc/tcsd.conf: FORCE
	mkdir -p $(PS_FILE_DIR)
	dmidecode | grep UUID | sed 's/-//g' | awk '{print "system_ps_file = $(PS_FILE_DIR)/" $$2 ".data"}' > /etc/tcsd.conf
	cat /etc/tcsd.conf

restart-tcsd: /etc/tcsd.conf
	@echo "restart tcsd"
	-killall tcsd
	/usr/sbin/tcsd
	ls -l /etc/tpm/

#	ps aux | grep tcsd
#	@echo "kill -9 PID"
#	@echo "/usr/sbin/tcsd"

setup-tpm:
	@echo "Set Owner PW, but SRK PW must be a null (just enter)"
	tpm_takeownership

setup-key:
	tpm_createkey --popup -f -u $(UUID)

setup-tpm11:
	cd /opt/OpenPlatformTrustServices; ./bin/getiml tcdemo tpm11
setup-tpm12:
	cd /opt/OpenPlatformTrustServices; ./bin/getiml tcdemo tpm12

setup-desktop:
	cp TCDEMO_AdminTool.desktop /home/knoppix/Desktop/
	cp TCDEMO_UserTool.desktop /home/knoppix/Desktop/
	
reset-tpm:
	@echo "TPM clear"
	tpm_clear
	@echo "remove Key data"
	cat /etc/tcsd.conf 
	@echo "reboot"


grub:
	ln -s $(GRUB_ROOT_DIR) grub

grub2:
	ln -s $(GRUB_CD_DIR) grub2
	
###############################################
# Create Reference Manifest
###############################################
RUNTIME_TYPE=knoppix
RUNTIME_PROP=knoppix_model.properties

TCDEMO_PROP=$(PWD)/tcdemo.properties
OPENPTS=/opt/OpenPlatformTrustServices/bin/openpts

platform_rm.xml:
	@echo "Create Platform Reference Manifest"
	$(OPENPTS) manifest --create --platform --model platfotm_model.properties --prop $(TCDEMO_PROP)
	@echo "Create Platform Reference Manifest - done"
	ls -l $@

runtime_rm.xml:
	@echo "Create Runtime Reference Manifest"
	$(OPENPTS) manifest --create --$(RUNTIME_TYPE) --model $(RUNTIME_PROP) --prop $(TCDEMO_PROP)
	ls -l $@

setup-rm: grub grub2 platform_rm.xml runtime_rm.xml

setup-rm-redhat:
	@echo "Create Runtime Reference Manifest for RedHat"
	$(OPENPTS) manifest --create --runtime --model runtime_model.properties --prop $(TCDEMO_PROP)
	ls -l $@

clean-rm:
	rm -f platform_rm.xml
	rm -f runtime_rm.xml

start-client-user:
	/opt/OpenPlatformTrustServices/bin/ptsclientuser
start-client-admin:
	/opt/OpenPlatformTrustServices/bin/ptsclientadmin

start-client-user-gcj:
	/opt/OpenPlatformTrustServices/bin/pts-cu-swing --propdir /opt/OpenPlatformTrustServices/tcdemo
start-client-admin-gcj:
	/opt/OpenPlatformTrustServices/bin/pts-ca-swing --propdir /opt/OpenPlatformTrustServices/tcdemo


# EOF