
EXEC = libow.a

ifdef LIBOW_SHARED
EXEC += libow.gdb
endif

OBJS = ow_xxxx.o ow_none.o ow_2406.o ow_cache.o ow_connect.o ow_parsename.o ow_name.o ow_filelength.o ow_read.o ow_write.o ow_dir.o ow_com.o ow_verify.o ow_ibuttonlink.o ow_bus.o ow_ds9097U.o ow_crc.o ow_util.o ow_temp.o ow_stats.o ow_settings.o ow_simultaneous.o ow_system.o ow_tree.o ow_fstat.o ow_locks.o ow_opt.o owlib.o globals.o ow_badadapter.o ow_server.o ow_net.o ow_size.o ow_ds9490.o

ifndef FUSE_DIR
FUSE_DIR := ../../../../../fuse
endif
ifndef OWFS_DIR
OWFS_DIR := ../../../..
endif
ifndef USB_DIR
USB_DIR := ../../../../../libusb
endif

ifdef USE_NO_PARPORT
CFLAGS += -DUSE_NO_PARPORT
endif

OBJS += ow_ds9097.o ow_ds1410.o ow_1820.o ow_1921.o ow_2401.o ow_2404.o ow_2405.o ow_2408.o ow_2409.o ow_2450.o ow_2433.o ow_2436.o ow_2438.o ow_2415.o ow_2423.o ow_1991.o ow_1963.o ow_1977.o ow_1993.o ow_2502.o ow_2505.o ow_2760.o ow_2804.o ow_2890.o ow_lcd.o ow_ds9490.o ow_iterate.o

all: $(EXEC)

CFLAGS += -I../include -I${OWFS_DIR}/src/include

ifdef ENABLE_CACHE
CFLAGS += -DOW_CACHE
endif
ifdef ENABLE_MT
CFLAGS += -DOW_MT
endif
ifdef ENABLE_USB
CFLAGS += -DOW_USB
CFLAGS += -I${USB_DIR}
endif

libow.a: $(OBJS)
	rm -f libow.a
	$(CROSS)ar cr libow.a $(OBJS)
	$(CROSS)ranlib libow.a

libow.gdb: libow.a $(OBJS)
	rm -f libow.so*
	$(CROSS)gcc -o libow -g -nostartfiles \
		-mid-shared-library -mshared-library-id=0 \
		-Os -g -fomit-frame-pointer -m5200 -DCONFIG_COLDFIRE -fno-common -Wall  -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -nostdinc -I$(ROOTDIR)/include -I$(ROOTDIR)/include/include -fno-builtin -Wl,-elf2flt -Wl,-move-rodata -nostartfiles $(ROOTDIR)/lib/crt0.o $(ROOTDIR)/lib/crti.o $(ROOTDIR)/lib/crtn.o  -L$(ROOTDIR)/lib \
		-Wl,-elf2flt -nostdlib \
		-mid-shared-library -mshared-library-id=$(LIBOW_ID) \
		-Wl,-shared-lib-id,$(LIBOW_ID) \
		-Wl,-R,$(ROOTDIR)/lib/libc.gdb \
		${ROOTDIR}/${CONFIG_LIBCDIR}/lib/main.o \
		-Wl,--whole-archive,libow.a,--no-whole-archive \
		-lc -lpthread -lgcc
	$(CROSS)objcopy \
		-L _GLOBAL_OFFSET_TABLE_ \
		-L main \
		-L __main \
		-L lib_main \
		-L __do_global_dtors \
		-L __do_global_ctors    \
		-L __CTOR_LIST__ \
		-L __DTOR_LIST__ \
		-L _current_shared_library_a5_offset_ \
		libow.gdb

romfs:
ifdef LIBOW_SHARED
	$(ROMFSINST) libow /lib/lib$(LIBOW_ID).so
endif

install:

clean:
	rm -f $(EXEC) *.gdb *.elf *.o *.s *.i
