CC?=gcc
CFLAGS?=-O2
CFLAGS+=-I./include --std=gnu99 -Wall -Werror -pedantic -I/usr/include/lua5.1/
LDFLAGS?=
LIBS=-llua5.1
BINARY=lucic luci uvl uvlc liblmo.a lmo_po2lmo

all: $(BINARY)

lucic: lucic.o lucip.o blob.o 
	$(CC) $(CFLAGS) -o $@ $^

luci: luci.o cbi.o validate.c uvl.o blob.o validator/boolean.o widgets/page.o widgets/form.o widgets/element.o widgets/section.o widgets/option.o 
	$(CC) $(CFLAGS) -o $@ $^

uvl: uvl.o uvl-cli.o blob.o
	$(CC) $(CFLAGS) -o $@ $^

uvlc: uvlc.o blob.o
	$(CC) $(CFLAGS) $(LIBS) -o $@ $^

liblmo.a: lmo_core.o lmo_hash.o
	$(AR) rc $@ $^

lmo_po2lmo: lmo_po2lmo.o lmo_hash.o
	$(CC) -o $@ $^
	
install:
	mkdir -p $(DESTDIR)/usr/lib/ $(DESTDIR)/usr/include/
	cp libcbi.a $(DESTDIR)/usr/lib/
	cp *.h $(DESTDIR)/usr/include/

clean:
	rm -f $(BINARY) *.luco *.o

%.o: $(wildcard *.h)
%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $^
