#**************************************************************************
#
#	Copyright (c) 2000  ICP Electronics Inc.  All Rights Reserved.
#
#	FILE:
#		Makefile
#
#	Abstract: 
#		Makefile for uLinux config library.
#
#	HISTORY:
#		04/16/02    	Johnson Hsu - add backup/restore cfg_tape.o
#		02/21/02    	Johnson Hsu - add cfg_logo.o
#		03/26/01	Meiji Chang 
#				Link util library to replace local functions
#				libuLinux_util.so <= cfg_util.o
#		12/06/00	Meiji Chang - created
#
#**************************************************************************

TARGET = libuLinux_config
CC = $(CROSS_COMPILE)gcc
STRIP = $(CROSS_COMPILE)strip
#CFLAG = -fPIC -Wall -c -O -DSYNC_BY_NFS
#Shone modified for ethernet connection judgement use 2005,04,18 
CFLAG = -fPIC -Wall -c -O -DSYNC_BY_NFS -I${KERNEL_PATH}/include
LFS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
INCLUDE = -I../uLinux -I../include -I../common
PHASE_ONE_DST_DIR = $(shell pwd)/../.build/usr/lib
LIB = -L${PHASE_ONE_DST_DIR} -luLinux_Util -luLinux_NAS -luLinux_Storage -luLinux_quota -luLinux_PDC
	
# To enable debug message dump, un-comment the following flag
#DEBUG_FLAG = -g -DDEBUG
NDEBUG = TRUE

OBJS = ../common/nas_lib_common.o cfg_system.o cfg_alert.o cfg_network.o cfg_samba.o cfg_appletalk.o cfg_netware.o cfg_nfs.o cfg_webfs.o cfg_smtp.o gw.o ifcfg.o eventlog.o sem.o cfg_display.o cfg_misc.o msg.o hardware.o cfg_ftp.o cfg_snmp.o cfg_dhcp.o cfg_nic.o cfg_fw.o cfg_dns.o cfg_printer.o cfg_ddns.o cfg_logo.o cfg_backup.o cfg_tape.o cfg_ups.o backup.o mangle.o cfg_system_recover.o cfg_save_restore.o cfg_vscan.o cfg_ntp.o cfg_backup_agent.o cfg_rtrr.o cfg_rsync.o cfg_dvd.o cfg_qphoto.o cfg_qdownload.o cfg_qweb.o base64.o eventlog_mgr.o

MORE_OBJS = ../common/nas_lib_common.o cfg_system.o cfg_alert.o cfg_network.o cfg_samba.o cfg_appletalk.o cfg_netware.o cfg_nfs.o cfg_webfs.o cfg_smtp.o gw.o ifcfg.o eventlog.o sem.o cfg_display.o cfg_misc.o msg.o hardware.o cfg_ftp.o cfg_snmp.o cfg_dhcp.o cfg_nic.o cfg_fw.o cfg_dns.o cfg_printer.o cfg_ddns.o cfg_logo.o cfg_backup.o cfg_tape.o cfg_ups.o backup.o mangle.o cfg_system_recover.o cfg_save_restore.o cfg_vscan.o cfg_ntp.o cfg_backup_agent.o cfg_rtrr.o cfg_rsync.o cfg_dvd.o eventlog_mgr.o ../storage/lvm.o ../storage/lvm_config.o ../storage/volume.o ../storage/nasdisk.o ../storage/raid.o ../storage/interface.o ../storage/disk.o ../util/confutil.o ../util/shm_conf.o ../util/shm_util.o ../util/mb.o ../util/file_lock.o ../NAS/share.o ../NAS/security.o ../NAS/nasnfs.o ../NAS/user_grp.o ../NAS/bigcrypt.o ../quota/quota.o ../pdc/naspdc.o cfg_qphoto.o cfg_qdownload.o cfg_qweb.o base64.o
ifeq ($(MODEL),TS-201)
	MORE_OBJS = ../common/nas_lib_common.o cfg_system.o cfg_alert.o cfg_network.o cfg_samba.o cfg_appletalk.o cfg_netware.o cfg_nfs.o cfg_webfs.o cfg_smtp.o gw.o ifcfg.o eventlog.o sem.o cfg_display.o cfg_misc.o msg.o hardware.o cfg_ftp.o cfg_snmp.o cfg_dhcp.o cfg_nic.o cfg_fw.o cfg_dns.o cfg_printer.o cfg_ddns.o cfg_logo.o cfg_backup.o cfg_tape.o cfg_ups.o backup.o mangle.o cfg_system_recover.o cfg_save_restore.o cfg_vscan.o cfg_ntp.o cfg_backup_agent.o cfg_rtrr.o cfg_rsync.o cfg_dvd.o eventlog_mgr.o ../storage_201/lvm.o ../storage_201/lvm_config.o ../storage_201/volume.o ../storage_201/nasdisk.o ../storage_201/raid.o ../storage_201/interface.o ../storage_201/disk.o ../util/confutil.o ../util/shm_conf.o ../util/shm_util.o ../util/mb.o ../util/file_lock.o ../NAS/share.o ../NAS/security.o ../NAS/nasnfs.o ../NAS/user_grp.o ../NAS/bigcrypt.o ../quota/quota.o ../pdc/naspdc.o cfg_qphoto.o cfg_qdownload.o cfg_qweb.o base64.o
endif

all: 	$(OBJS)
	$(CC) $(LFS) $(DEBUG_FLAG) -shared -Wl,-soname,$(TARGET).so.0 -o $(TARGET).so.0.0 $(OBJS) -lc -lcrypt $(LIB)

phase_one:	$(MORE_OBJS)
	$(CC) $(LFS) $(DEBUG_FLAG) -shared -Wl,-soname,$(TARGET).so.0 -o $(TARGET).so.0.0 $(OBJS) -lc -lcrypt
	[ -d $(PHASE_ONE_DST_DIR) ] || mkdir -p $(PHASE_ONE_DST_DIR)
	mv $(TARGET).so.0.0 $(PHASE_ONE_DST_DIR)
	ln -sf $(TARGET).so.0.0  $(PHASE_ONE_DST_DIR)/$(TARGET).so.0
	ln -sf $(TARGET).so.0  $(PHASE_ONE_DST_DIR)/$(TARGET).so 

backup.o : backup.c
	$(CC) $(LFS) $(INCLUDE) $(CFLAG) $< -o $@

mangle.o : mangle.c
	$(CC) $(LFS) $(INCLUDE) $(CFLAG) $< -o $@

%.o : %.c
	$(CC) $(INCLUDE) $(CFLAG) $(DEBUG_FLAG) $< -o $@ 

cfg_dvd.o: cfg_dvd.c
	$(CC) $(LFS) $(INCLUDE) $(CFLAG) $< -o $@

test:	test.o
	$(CC) $(INCLUDE) test.c -o test -luLinux_config

libtest:	$(OBJS) test.c
	$(CC) test.c -o libtest $(OBJS) -luLinux_config -luLinux_Util

nfstest: nfstest.c
	$(CC) nfstest.c -o nfstest -luLinux_config -luLinux_Util

install:
	$(STRIP) $(TARGET).so.0.0
	install -m 644 $(TARGET).so.0.0  $(TARGET_PREFIX)/usr/lib
	ln -sf $(TARGET).so.0.0  $(TARGET_PREFIX)/usr/lib/$(TARGET).so.0
	ln -sf $(TARGET).so.0  $(TARGET_PREFIX)/usr/lib/$(TARGET).so 
	
clean:
	rm -f *.o 
	rm -f $(TARGET).so.0.0
	rm -f *test*
	rm -f *~
