#
# Makefile for AQUOS Launcher
#
#   Copyright (c) 2005, 2006 Sharp Corporation
#

-include ../config.make

TARGET       = launcher
DEBUGTARGET  = $(TARGET)_debug
STATICTARGET = $(TARGET).static
#TARGETDIR    = /opt/montavista/pro/devkit/mips/fp_be/target/sbin
TARGETDIR    = ${TARGETROOT}/sbin
CONTROLDIR   = ${TARGETROOT}/var/launcher
MODUTILSDIR  = modutils-2.4.27
#OBJECT       = $(MODUTILSDIR)/insmod/$(TARGET)       # dynamic-linked version
OBJECT       = $(MODUTILSDIR)/insmod/$(STATICTARGET) # static-linked version

ARCHIVEFILE  = $(TARGET).zip
ARCHIVEDIR   = archive
ZIPROOTDIR   = launcher
ZIPWORKDIR   = $(ARCHIVEDIR)/$(ZIPROOTDIR)
ADDITIONDIR  = $(ZIPWORKDIR)/$(TARGET)
ADDITIONS    = makefile launcher.h
ADDITIONTARGZ= $(ZIPWORKDIR)/$(TARGET).files.tar.gz
PATCHFILE    = launcher.patch
PATCHFILEGZ  = $(ZIPWORKDIR)/$(PATCHFILE).gz
MODUTILSORG  = $(MODUTILSDIR).orig
MODUTILSORGBZ= $(ZIPWORKDIR)/$(MODUTILSDIR).tar.bz2

STRIP        = mips_fp_be-strip
RM           = /bin/rm


## option for making ROM
## MAKE_ROM YES or NO [NO]

export EXTRA_DEFS := $(EXTRA_DEFS) -fno-builtin

ifeq ($(MAKE_ROM), YES)
  EXTRA_DEFS := $(EXTRA_DEFS) -DUNHOSTED
endif

ifeq ($(PROJECT),IWATOBI_GH)
  EXTRA_DEFS := $(EXTRA_DEFS)
else
  EXTRA_DEFS := $(EXTRA_DEFS) -DWITH_LNX
endif

ifeq ($(ENABLE_DBGTIME),YES)
  EXTRA_DEFS := $(EXTRA_DEFS) -DENABLE_DBGTIME
endif

.PHONY: all install clean distribution
all: 
	$(MAKE) -C $(MODUTILSDIR)
	cp $(OBJECT) ./$(TARGET)
	$(STRIP) ./$(TARGET)
	-cp ./$(TARGET) $(TARGETDIR)
	-if [ ! -e $(TARGETDIR)/$(DEBUGTARGET) ]; then \
	  sudo ln -s $(TARGET) $(TARGETDIR)/$(DEBUGTARGET); \
	fi
	-if [ ! -e $(CONTROLDIR) ]; then \
	  sudo mkdir -p $(CONTROLDIR); \
	fi

install: all

clean:
	$(MAKE) -C $(MODUTILSDIR) clean
	if [ -e ./$(TARGET)      ]; then $(RM) $(TARGET);      fi
	if [ -e ./$(ARCHIVEFILE) ]; then $(RM) $(ARCHIVEFILE); fi
	if [ -e ./$(PATCHFILE)   ]; then $(RM) $(PATCHFILE);   fi

distribution: clean $(ARCHIVEFILE)

$(ARCHIVEFILE): $(PATCHFILEGZ) $(ADDITIONTARGZ)
	cd $(ARCHIVEDIR); zip ../$(ARCHIVEFILE) $(ZIPROOTDIR)/*

$(ADDITIONTARGZ): $(ADDITIONS)
	-rm -fr $(ADDITIONDIR)
	mkdir $(ADDITIONDIR)
	cp -f $(ADDITIONS) $(ADDITIONDIR)
	tar c -z -C $(ADDITIONDIR)/.. -f $(ADDITIONTARGZ) $(TARGET)
	rm -fr $(ADDITIONDIR)

$(PATCHFILEGZ): $(PATCHFILE)
	gzip -f $^
	mv -f $^.gz $(ZIPWORKDIR)

$(PATCHFILE):
	-rm -fr $(MODUTILSORG)
	tar xj -C $(ARCHIVEDIR) -f $(MODUTILSORGBZ)
	mv $(ARCHIVEDIR)/$(MODUTILSDIR) $(MODUTILSORG)
	-diff -Nurd -x '*~' -x '.*' -x CVS \
	  -x Makefile -x Makefile.common -x config.log -x config.status \
	  $(MODUTILSORG) $(MODUTILSDIR) > $@; \
	/bin/true
