
EXEC = libow.a
ifdef LIBOW_SHARED
EXEC += libow.so
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_net.o ow_size.o ow_server.o ow_ds9490.o error.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_1923.o ow_2401.o ow_2404.o ow_2405.o ow_2408.o ow_2409.o ow_2413.o ow_2450.o ow_2433.o ow_2436.o ow_2438.o ow_2415.o ow_2423.o ow_1963.o ow_1977.o ow_1991.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 ow_badadapter.o

all: $(EXEC)

CFLAGS += -Wall -I../include -I${OWFS_DIR}/src/include
#CFLAGS += -s $(OPTIMIZE)

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

LDFLAGS =  -s -shared --warn-common --warn-once -z combreloc $(OPTIMIZE)

libow.a: $(OBJS)
	rm -f libow.a
	$(AR) cr libow.a $(OBJS)
	$(RANLIB) libow.a

libow.so: libow.a
	rm -f libow.so
	$(LD) $(LDFLAGS) -soname libow.so.0 -o libow.so.0 \
		--whole-archive libow.a --no-whole-archive \
		$(UCLIBCDIR)lib/optinfo/interp.o \
		-L${UCLIBCDIR}lib \
		-lc -lpthread
	ln -s libow.so.0 libow.so

romfs:

install:
ifdef LIBOW_SHARED
	install -d $(INSTALLDIR)/usr/lib
	install libow.so.0 $(INSTALLDIR)/usr/lib/libow.so.0
endif

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