include MCONFIG

#
# Headers included from libucd_int.h
#
HDRS = libucd_int.h ucd.h int24.h compiler.h

#
# These are the files produced by convert_ucd.pl
#
CVT_FILES = gen/jamo.c gen/nameslist.tab gen/nametoucs.keys gen/nametoucs.tab \
	gen/ucstoname.keys gen/proparray.c gen/proparrayindex

# -----------------------------------------------------------------------

.SUFFIXES: .c .o .lo .s .ls .i .ho .hs .hi .cc .h
.c.o:
	$(CC) $(CFLAGS) -c -o $@ $<
.c.lo:
	$(CC) $(CFLAGS) $(PICFLAGS) -c -o $@ $<
.c.s:
	$(CC) $(CFLAGS) -S -o $@ $<
.c.ls:
	$(CC) $(CFLAGS) $(PICFLAGS) -S -o $@ $<
.c.i:
	$(CC) $(CFLAGS) -E -o $@ $<
.c.ho:
	$(HOST_CC) $(HOST_CFLAGS) -c -o $@ $<
.c.hs:
	$(HOST_CC) $(HOST_CFLAGS) -S -o $@ $<
.c.hi:
	$(HOST_CC) $(HOST_CFLAGS) -E -o $@ $<

enums/%.o: enums/%.c $(HDRS)
	$(CC) $(CFLAGS) -c -o $@ $<
enums/%.lo: enums/%.c $(HDRS)
	$(CC) $(CFLAGS) $(PICFLAGS) -c -o $@ $<

# -----------------------------------------------------------------------

LIBSRCS = proparray.c gen/nametoucs_hash.c gen/ucstoname_hash.c \
	  gen/jamo.c gen/nameslist.c gen/nameslist_dict.c \
	  gen/ucstoname_tab.c gen/nametoucs_tab.c nametoucs.c \
	  ucslookup.c cache.c gen/ucdversion.c $(wildcard enums/*.c)

LIBOBJS = $(patsubst %.c,%.o,$(LIBSRCS))
SO_OBJS = $(patsubst %.c,%.lo,$(LIBSRCS))

# -----------------------------------------------------------------------

all : $(LIB_FILE) $(SO_FILE) $(SO_NAME) ucd.h

clean:
	rm -rf gen enums
	rm -f *.o *.ho *.lo *.i *.*.a *.so *.so.* ucd.h
	$(MAKE) -C perfect clean

install: all
	mkdir -p $(INSTALLROOT)$(libdir)
	$(INSTALL_LIB) $(LIB_FILE) $(SO_FILE) $(SO_NAME) $(INSTALLROOT)$(libdir)
	mkdir -p $(INSTALLROOT)$(installdir)
	$(INSTALL_DATA) ucd.h $(INSTALLROOT)$(installdir)
	mkdir -p $(INSTALLROOT)$(mandir)/man3
	$(INSTALL_DATA) *.3 $(INSTALLROOT)$(mandir)/man3

# -----------------------------------------------------------------------

$(CVT_FILES) : gen/done

gen/done: convert_ucd.pl $(wildcard ucd/*.txt ucd/extracted/*.txt)
	mkdir -p gen
	$(PERL) convert_ucd.pl
	touch gen/done

perfect/perfect: $(wildcard perfect/*.c perfect/*.h)
	$(MAKE) -C perfect

gen/nametoucs_hash.c: gen/nametoucs.keys perfect/perfect
	perfect/perfect -im _libucd_nametoucs_hash gen/nametoucs_hash.c \
		gen/nametoucs_hash.h < gen/nametoucs.keys 

gen/nametoucs_hash.h: gen/nametoucs_hash.c
	: Generated by side effect

gen/ucstoname_hash.c: gen/ucstoname.keys perfect/perfect
	perfect/perfect -hm _libucd_ucstoname_hash gen/ucstoname_hash.c \
		gen/ucstoname_hash.h < gen/ucstoname.keys 

gen/ucstoname_hash.h: gen/ucstoname_hash.c
	: Generated by side effect

gen/nameslist.compr: gen/nameslist.tab simplecomp.pl
	$(PERL) simplecomp.pl < $<

gen/nameslist_tab.c gen/nameslist.offset: gen/nameslist.compr
	: Generated by side effect

gen/nameslist.c: gen/nameslist.compr bin2c.pl
	$(PERL) bin2c.pl _libucd_names_list < $< > $@ || rm -f $@

gen/mk_ucstoname_tab: mk_ucstoname_tab.ho gen/ucstoname_hash.ho
	$(HOST_CC) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LIBS)

gen/ucstoname_tab.c: gen/mk_ucstoname_tab \
		     gen/proparrayindex gen/nameslist.offset
	gen/mk_ucstoname_tab

gen/mk_nametoucs_tab: mk_nametoucs_tab.ho gen/nametoucs_hash.ho
	$(HOST_CC) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LIBS)

gen/nametoucs_tab.c: gen/mk_nametoucs_tab gen/nametoucs.tab
	gen/mk_nametoucs_tab

gen/ucdversion.c: ucd/version ucdversion.pl
	$(PERL) ucdversion.pl

$(LIB_FILE): $(LIBOBJS)
	rm -f $(LIB_FILE)
	$(AR) cq $(LIB_FILE) $^
	$(RANLIB) $(LIB_FILE)

$(SO_FILE): $(SO_OBJS)
	$(CC) $(SOFLAGS) -o $(SO_FILE) $^

ifneq ($(SO_NAME),$(SO_FILE))
$(SO_NAME): $(SO_FILE)
	ln -f $(SO_FILE) $(SO_NAME)
endif

ucd.h: ucd.h.in enum.list makeenums.pl
	$(PERL) makeenums.pl

gen/cache.c: gencache.pl
	$(PERL) gencache.pl

# -----------------------------------------------------------------------

proparray.o: proparray.c ucd.h $(HDRS) gen/proparray.c
proparray.lo: proparray.c ucd.h $(HDRS) gen/proparray.c

mk_ucstoname_tab.ho: mk_ucstoname_tab.c gen/ucstoname_hash.h
mk_nametoucs_tab.ho: mk_nametoucs_tab.c gen/nametoucs_hash.h

gen/ucstoname_tab.o: gen/ucstoname_tab.c $(HDRS)
gen/ucstoname_tab.lo: gen/ucstoname_tab.c $(HDRS)

gen/nametoucs_tab.o: gen/nametoucs_tab.c $(HDRS)
gen/nametoucs_tab.lo: gen/nametoucs_tab.c $(HDRS)

gen/nameslist_dict.o: gen/nameslist_dict.c
gen/nameslist_dict.lo: gen/nameslist_dict.c

nametoucs.o: nametoucs.c $(HDRS) gen/nametoucs_hash.h
nametoucs.lo: nametoucs.c $(HDRS) gen/nametoucs_hash.h

ucslookup.o: ucslookup.c $(HDRS) gen/ucstoname_hash.h
ucslookup.lo: ucslookup.c $(HDRS) gen/ucstoname_hash.h

cache.o: cache.c gen/cache.c $(HDRS)
cache.lo: cache.c gen/cache.c $(HDRS)
