-install: elftype
- install -D zpm $(DESTDIR)/bin/zpm
- install -D zpm-note $(DESTDIR)/bin/zpm-note
- install -D zpm-bug $(DESTDIR)/bin/zpm-bug
- install -D zpm-sequence $(DESTDIR)/bin/zpm-sequence
- install -d -m2770 -o root -g adm $(DESTDIR)/var/lib/admin
- install -d -m2770 -o root -g adm $(DESTDIR)/var/lib/admin/notes
- install -d -m2770 -o root -g adm $(DESTDIR)/var/lib/admin/notes/open
- install -d -m2770 -o root -g adm $(DESTDIR)/var/lib/admin/notes/ack
- install -D elftype $(DESTDIR)/usr/sbin/elftype
- #SPOOL=$(DESTDIR)/var/lib/admin/notes ./zpm-sequence -c notes
+test: $(ZPKGBIN) t/ctap/prove
+ @PATH=$(curdir)/t:$(curdir):$(PATH) t/ctap/prove t/*.t
+
+programs: $(ZPKGBIN)
+
+uncompress: uncompress.o
+ $(CC) $(CFLAGS) -o $@ $+ -llzma
+
+zpm-elftype: elf/elftype.c
+ $(CC) -Ielf $(CFLAGS) -o $@ $+
+
+zpm-soname: elf/soname.c
+ $(CC) -Ielf $(CFLAGS) -o $@ $+
+
+zpm-soneed: elf/needed.c
+ $(CC) -Ielf $(CFLAGS) -o $@ $+
+
+zpm-addfile: zpm-addfile.o libzpm.a libelf.a
+ $(CC) -Ielf $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-hash: zpm-hash.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-verify: zpm-verify.o t/ctap/ctap.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< t/ctap/ctap.o -lzpm -lelf
+
+zpm-init: zpm-init.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-extract: zpm-extract.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-script: zpm-script.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-packagehash: zpm-packagehash.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-foreach-path.o: CFLAGS+=-Wno-unused-parameter
+zpm-script.o: CFLAGS+=-Wno-unused-parameter
+
+zpm-foreach-path: zpm-foreach-path.o libzpm.a sqlite/sqlite3.h
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-findpkg: zpm-findpkg.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-search: zpm-search.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-note: zpm-note.o libzpm.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
+
+zpm-syncfs: zpm-syncfs.o libzpm.a libelf.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf -lm
+
+zpm-parse: zpm-parse.o lib/parse.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+
+
+zpm-quote: zpm-quote.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+
+newdb.c: db.sql
+ echo "char createdb[] = {" > $@
+ xxd -i < $< >> $@
+ echo ", 0};" >> $@
+
+sqlite/sqlite3.o: sqlite/sqlite3.c sqlite/config.h
+ $(CC) -O3 -Wall -std=c99 -Ilib -D_HAVE_SQLITE_CONFIG_H=1 -c -o $@ $<
+
+sqlite/extensions.o: sqlite/extensions.c
+ $(CC) -O3 -Wall -std=c99 -I. -DSQLITE_CORE=1 -c -o $@ $<
+
+
+sqlite/shell.o: sqlite/shell.c sqlite/config.h
+ $(CC) -Wall -std=c99 -Ilib \
+ -DSQLITE_OMIT_LOAD_EXTENSION=1 \
+ '-DSQLITE_SHELL_INIT_PROC(x)=zpm_setup_extensions(x)' \
+ -D_POSIX_C_SOURCE=200112L -c -o $@ $<
+
+lib/zpm.o: newdb.c
+
+zpm-vercmp: zpm-vercmp.o lib/vercmp.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+
+
+zpm-shell: sqlite/sqlite3.o sqlite/shell.o sqlite/extensions.o lib/vercmp.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+
+
+libelf.a: elf/libelf.o
+ ar rcuv $@ $?
+
+install: $(COMPILED)
+ test -d $(DESTDIR)/sbin || install -d $(DESTDIR)/sbin
+ install $(PROGRAMS) $(DESTDIR)/sbin
+
+scan-prep: clean sqlite/sqlite3.o sqlite/shell.o lib/liblzma.a
+ @echo scan-build -v -o report make -j10
+
+clean:
+ rm -f *.o sqlite/*.o lib/*.o $(LZMAOBJ) liblzma.a \
+ libelf.a libzpm.a zpm-addfile soname \
+ *.xz \
+ local.db t/ctap/prove.o $(ZPKGBIN)