# Generated automatically from Makefile.in by configure.
#
# Makefile for usbmgr
#                               <shuu@wondernetworkresources.com>
#
# Checking SUSE and installing from Duncan Bellamy.
#

ifndef COMPILING_WHOLE_TREE
TOPDIR:=$(shell pwd)
endif


include $(TOPDIR)/Rules.make

SCRIPT_LIST-$(CONFIG_STORAGE) += storage
SCRIPT_LIST-$(CONFIG_DECT_USB) += usbdect
SCRIPT_LIST-$(CONFIG_DECT_USB_API_G) += usbdect_apig

ifdef CONFIG_DECT_USB
ifdef CONFIG_DECT_USB_API_G
CONFIG_FILE=usbmgr.conf.usbdect
else
CONFIG_FILE=usbmgr.conf.thomson_usbdect
endif
else 
ifdef CONFIG_AFONE
CONFIG_FILE=usbmgr.conf.afone
else
CONFIG_FILE=usbmgr_small.conf
endif
endif

prefix=
exec_prefix=${prefix}
sysconfdir=${prefix}/usr/etc
sbindir=${exec_prefix}/sbin
#INSTALL=/usr/bin/install -c


LM=usbmgr
UPDATE=update_usbdb
CONF_DIR=${sysconfdir}/usbmgr
CONF_FILE=usbmgr.conf
PRELOAD=preload.conf
BIN_DIR=${sbindir}

#CC=mips-uclibc-gcc
#STRIP=mips-uclibc-strip

## rc file
RC_INIT_DIR=${sysconfdir}/rc.d/init.d
REDHAT_FILE_CHECK=$(RC_INIT_DIR)/functions
SUSE_RC_DIR=${sysconfdir}/init.d
SUSE_FILE_CHECK=${sysconfdir}/rc.config
SCRIPT_DIR=scripts
RC_FILE=rcscript
SUSE_RC_FILE=rcusbmgr
NETWORK_SCRIPT=network
SCRIPTS=$(NETWORK_SCRIPT)

## install
FILE_MODE=0444
BIN_MODE=0555
SCRIPT_MODE=0755
INSTALL_DIR=$(INSTALL) -d
INSTALL_FILE=$(INSTALL) -m $(FILE_MODE)
INSTALL_BIN=$(INSTALL) -m $(BIN_MODE)
INSTALL_SCRIPT=$(INSTALL) -m $(SCRIPT_MODE)

BASE_DIR=.
INC_DIR=$(BASE_DIR)/inc
MAJOR_VERSION=0
MINOR_VERSION=4
PATCH_LEVEL=8
VERSION=$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL)
SUB_DIR=tools

DEFS=-DCONF_DIR=\"$(CONF_DIR)\" -DCONF_FILE=\"$(CONF_FILE)\" -DPRELOAD=\"$(PRELOAD)\" -DBIN_DIR=\"$(BIN_DIR)\" -DVERSION=\"$(VERSION)\" -DNETWORK_SCRIPT=\"$(NETWORK_SCRIPT)\" -DWAIT_FLUSH_PROC
DEBUG=-DDEBUG

INC=-I $(INC_DIR)
OPT=-O2 -Wall
ifdef DEBUG
OPT=-g
endif

########################################## Don't modify 

CFLAGS=$(DEFS) $(OPT) $(INC) $(DEBUG)

USBMGR_SRC=node.c loader.c device.c parse_device.c usbmgr_msg.c module.c beep.c
UPDATE_SRC=node.c parse_config.c config.c modlink.c misc.c module.c
ifdef DEBUG
USBMGR_SRC := debug.c $(USBMGR_SRC)
UPDATE_SRC := debug.c $(UPDATE_SRC)
endif
USBMGR_OBJ=$(USBMGR_SRC:.c=.o)
UPDATE_OBJ=$(UPDATE_SRC:.c=.o)

all: $(LM) $(UPDATE)
	@for d in $(SUB_DIR);\
	do \
		cd $$d;make VERSION=${VERSION};cd ..;\
	done

$(LM): main.o $(USBMGR_OBJ)
	$(CC) -o $@ main.o $(USBMGR_OBJ)
	$(STRIP) $(LM)
$(UPDATE): $(UPDATE).o $(UPDATE_OBJ)
	$(CC) -o $@ $(UPDATE).o $(UPDATE_OBJ)
	$(STRIP) $(UPDATE)
clobber: clean
	rm -f config.cache config.log config.status config.h Makefile 
	@for d in $(SUB_DIR); \
	do \
		cd $$d;make clobber;cd ..;\
	done

clean_misc:
	rm -f config.h config.cache config.log config.status Makefile
	@for d in $(SUB_DIR); \
	do \
		cd $$d;make clean_misc;cd ..;\
	done

clean:
	rm -f main.o update_usbdb.o  $(USBMGR_OBJ) $(UPDATE_OBJ) debug.o $(LM) $(UPDATE)
	@for d in $(SUB_DIR); \
	do \
		cd $$d;make clean;cd ..;\
	done

install:
	$(INSTALL_DIR) $(BIN_DIR)
	$(INSTALL_DIR) $(CONF_DIR)
	@if [ -f $(CONF_DIR)/$(CONF_FILE) ];then \
		mv $(CONF_DIR)/$(CONF_FILE) $(CONF_DIR)/$(CONF_FILE).old; \
	fi
	$(INSTALL_FILE) config/$(CONF_FILE) $(CONF_DIR)
	$(INSTALL_BIN) $(LM) $(BIN_DIR)
	$(INSTALL_BIN) $(UPDATE) $(BIN_DIR)
	@if [ -e $(SUSE_FILE_CHECK) ];then \
		if [ -f $(SUSE_RC_DIR)/usbmgr ];then \
			mv $(SUSE_RC_DIR)/usbmgr $(SUSE_RC_DIR)/usbmgr.old; \
		fi;\
		$(INSTALL_SCRIPT) $(SCRIPT_DIR)/$(SUSE_RC_FILE) $(SUSE_RC_DIR)/usbmgr;\
		ln -sf ../$(SUSE_RC_DIR)/usbmgr $(BIN_DIR)/rcusbmgr; \
	elif [ -d $(RC_INIT_DIR) ];then \
		if [ -f $(RC_INIT_DIR)/usbmgr ];then \
			mv $(RC_INIT_DIR)/usbmgr $(RC_INIT_DIR)/usbmgr.old; \
		fi;\
		$(INSTALL_SCRIPT) $(SCRIPT_DIR)/$(RC_FILE) $(RC_INIT_DIR)/usbmgr;\
		ln -sf ../init.d/usbmgr $(RC_INIT_DIR)/../rc5.d/S46usbmgr; \
	else \
		echo '##############################'; \
		echo '# You should setup RC script #'; \
		echo '#  for usbmgr by yourself.   #'; \
		echo '##############################'; \
	fi
	@for f in $(SCRIPTS);\
	do \
		if [ -f $(CONF_DIR)/$$f ];then \
			mv $(CONF_DIR)/$$f $(CONF_DIR)/$$f.old;\
		fi;\
		$(INSTALL_SCRIPT) $(SCRIPT_DIR)/$$f $(CONF_DIR);\
	done
	@for d in $(SUB_DIR);\
	do \
		cd $$d;make install;cd ..;\
	done
	@echo "###############################################"
	@echo "If you use USB mice on X, Run \"make use_mouse\"!"
	@echo "###############################################"

release:
	$(INSTALL) -d $(ROOT_FS_DIR)/usr/bin $(ROOT_FS_DIR)/usr/etc_ro_fs/usbmgr
	$(INSTALL) -o root -g root -m 755 usbmgr $(ROOT_FS_DIR)/usr/bin/usbmgr
	$(INSTALL) -o root -g root -m 755 update_usbdb $(ROOT_FS_DIR)/usr/bin/update_usbdb
	$(INSTALL) -o root -g root config/$(CONFIG_FILE) $(ROOT_FS_DIR)/usr/etc_ro_fs/usbmgr/$(CONF_FILE)
	@for d in $(SCRIPT_LIST-y);\
	do \
	        $(INSTALL) -o root -g root scripts/$$d $(ROOT_FS_DIR)/usr/etc_ro_fs/usbmgr/$$d; \
	done
	touch $(ROOT_FS_DIR)/usr/etc_ro_fs/usbmgr/preload.conf

use_mouse:
	@if [ -f $(CONF_DIR)/$(PRELOAD) ];then \
		mv $(CONF_DIR)/$(PRELOAD) $(CONF_DIR)/$(PRELOAD).old; \
	fi
	$(INSTALL_FILE) config/$(PRELOAD) $(CONF_DIR)


