#
# Makefile - Generate catalog of expanded components or footprints
#
# Copyright 2012 by Werner Almesberger
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#

PREFIX ?= /usr/local

OBJS = genkicat.o tree.o libs.o run.o comp.o fped.o pdf.o

SHELL = /bin/bash
CFLAGS = -Wall -g

CC_normal	:= $(CC)
DEPEND_normal	:= $(CPP) $(CFLAGS) -MM -MG

CC_quiet	= @echo "  CC       " $@ && $(CC_normal)
GEN_quiet	= @echo "  GENERATE " $@ &&
DEPEND_quiet	= @$(DEPEND_normal)

ifeq ($(V),1)
	CC	= $(CC_normal)
	GEN	=
	DEPEND	= $(DEPEND_normal)
else
	CC	= $(CC_quiet)
	GEN	= $(GEN_quiet)
	DEPEND	= $(DEPEND_quiet)
endif

.PHONY:		all clean spotless install uninstall

all:		genkicat-bin

genkicat-bin:	$(OBJS)
		$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDLIBS)

%.o:		%.c
		$(CC) -c $(CFLAGS) $*.c -o $*.o
		$(DEPEND) $*.c | \
		  sed -e \
		    '/^\(.*:\)\? */{p;s///;s/ *\\\?$$/ /;s/  */:\n/g;H;}' \
		    -e '$${g;p;}' -e d >$*.d; \
		  [ "$${PIPESTATUS[*]}" = "0 0" ] || { rm -f $*.d; exit 1; }

-include $(OBJS:.o=.d)

clean:
		rm -f $(OBJS) $(OBJS:.o=.d)

spotless:	clean
		rm -f genkicat-bin

#
# Note: we use .../lib/genkicat/ instead of .../libexec/genkicat/ because
# FHS-3.0 does not define libexec under the /usr/local/ hierarchy. (And
# older versions of FHS don't define libexec at all.)
#

install:	all
		mkdir -p $(DESTDIR)/$(PREFIX)/bin
		mkdir -p $(DESTDIR)/$(PREFIX)/lib/genkicat
		./mkgenkicat-wrapper -m 755 -p \
		  $(DESTDIR)/$(PREFIX)/lib/genkicat/ \
		  $(DESTDIR)/$(PREFIX)/bin/genkicat
		install -m 755 genkicat-bin $(DESTDIR)/$(PREFIX)/lib/genkicat/
		install -m 755 sym2xps $(DESTDIR)/$(PREFIX)/lib/genkicat/
		install -m 755 expand-pintype $(DESTDIR)/$(PREFIX)/lib/genkicat/

uninstall:
		rm -f $(DESTDIR)/$(PREFIX)/bin/genkicat
		rm -rf $(DESTDIR)/$(PREFIX)/lib/genkicat