###########################################################
### Makefile.subdir for the GNU PIC Library
###
### Copyright (C) 2005 by Raphael Neider <rneider AT web.de>
###
### The GNU PIC Library was originally designed and
### implemented by
###	Vangelis Rokas <vrokas@otenet.gr>
###
### It is currently maintained by
###	Raphael Neider <rneider AT web.de>
###
### This file may be distributed under the terms of the the
### GNU General Public License (GPL). See COPYING for details.
###
### $Id: Makefile.subdir 4656 2007-02-25 21:57:27Z tecodev $
###

include $(top_builddir)/Makefile.common

SUBDIRS ?= 
MKLIB	?= 

# fallback: if builddir is not specified via the command line...
builddir ?= build/$(patsubst $(shell cd $(top_builddir); pwd)/%,%,$(CURDIR))

C_SRC	?= $(notdir $(wildcard $(srcdir)/*.c))
S_SRC	?= $(notdir $(wildcard $(srcdir)/*.S))
OBJS	?= $(addprefix $(top_builddir)/$(builddir)/,$(C_SRC:.c=.o) $(S_SRC:.S=.o))
LIB_O	?= $(OBJS)

ifneq (,$(strip $(MKLIB)))
LIB_LIB = $(top_builddir)/$(builddir)/$(MKLIB)
TARGETS ?= $(LIB_LIB)
else
LIB_LIB = 
#TARGETS ?= $(OBJS)
endif

.PHONY : all install clean clean-intermediate $(addprefix install,$(TARGETS))

ifndef SILENT
ECHO=echo
else
ECHO=true
endif

all : install

ifneq (,$(strip $(TARGETS)))

$(addprefix install,$(TARGETS)): install% : %
	@-if [ -e "$<" ]; then \
	[ -d "$(top_builddir)/$(installdir)" ] || $(MKDIR) "$(top_builddir)/$(installdir)"; \
	$(ECHO) "[INSTALL] $(patsubst $(top_builddir)/$(builddir)/%,%,$<)"; \
	[ ! -e "$<" ] || $(CP) "$<" "$(top_builddir)/$(installdir)"; \
	fi

# usually install $(LIB_LIB) or $(OBJS), race condition in "[ -d x ] || mkdir x"
install : recurse $(OBJS) $(LIB_LIB) $(addprefix install,$(TARGETS))
else
# used in subdirs like libc/ctype whose files
# are contained in a parent's library
install : recurse $(OBJS) $(LIB_LIB)
endif

clean : recurse
	@-echo "dummy" > .dummy
	$(Q)-$(RM) .dummy $(foreach suf,asm d p lst hex cod sym,$(OBJS:.o=.$(suf)))
	@-echo "dummy" > .dummy
	$(Q)-$(RM) .dummy $(OBJS) $(LIB_LIB)
	@-echo "dummy" > .dummy
	$(Q)-$(RM) .dummy $(TARGETS)
	@-echo "dummy" > .dummy
	$(Q)-$(RM) .dummy $(addprefix $(top_builddir)/$(installdir)/,$(notdir $(TARGETS)))
	$(Q)-[ ! -d "$(top_builddir)/$(builddir)" ] || $(RMDIR) "$(top_builddir)/$(builddir)"

distclean : clean

clean-intermediate : recurse
	@-echo "dummy" > .dummy
	$(Q)-$(RM) .dummy $(foreach suf,p lst hex cod sym,$(OBJS:.o=.$(suf)))
	
include $(top_srcdir)/Makefile.rules
