$(if $($*dir),$(INSTALL_DATA) $($*_LIBRARIES:=.so*) $(DESTDIR)$($*dir))
define CLASS_LIBRARIES_tpl
- all:: $1.so$$(if $$($1_VERSION),.$$($1_VERSION))
- install-LIBRARIES/$2:: $1.so$$(if $$($1_VERSION),.$$($1_VERSION))
+ all:: $1.so$3
+ install-LIBRARIES/$2:: $1.so$3
install:: install-LIBRARIES/$2
- $1.so$$(if $$($1_VERSION),.$$($1_VERSION)): $$(call deps_create,$$($1_SOURCES),$(_cobjs)/$1)
+ $1.so$3: $$(call deps_create,$$($1_SOURCES),$(_cobjs)/$1)
$(CC) $$(CFLAGS) $$($1_CPPFLAGS) -fPIC -shared -o $$@ $$(filter %.o,$$^) \
$$(LDFLAGS) $$($1_LDFLAGS) $$($1_LIBADD)
+ $$(if $$(word 2,$$(subst ., ,$3)),ln -sf $$@ $1.so.$$(word 1,$$(subst ., ,$3)))
+ $$(if $$($1_VERSION), ln -sf $$@ $1.so)
$$(eval $$(call RULE_C_tpl,$1,-fPIC))
$(RM) $1.so*
endef
$(foreach v,$(filter %_LIBRARIES,$(.VARIABLES)), \
- $(foreach x,$($v),$(eval $(call CLASS_LIBRARIES_tpl,$x,$(v:_LIBRARIES=)))))
+ $(foreach x,$($v),$(eval $(call CLASS_LIBRARIES_tpl,$x,$(v:_LIBRARIES=),$(...\
+ ...)$(if $($x_VERSION),.$($x_VERSION))))))
##
install:: $(foreach v,$(filter %_SCRIPTS,$(.VARIABLES)),$(patsubst %_SCRIPTS,install-SCRIPTS/%,$v))
+##
+## rules for *_HEADERS
+##
+
+install-HEADERS/%::
+ $(if $($*dir), $(INSTALL_DIR) $(DESTDIR)$($*dir))
+ $(if $($*dir), $(INSTALL_DATA) $($*_HEADERS) $(DESTDIR)$($*dir))
+
+install:: $(foreach v,$(filter %_HEADERS,$(.VARIABLES)),$(patsubst %_HEADERS,install-HEADERS/%,$v))
+
########################################################################}}}#
#[ Candy ]##############################################################{{{#
########################################################################}}}#
-all check clobber distclean::
+all check clobber distclean install::
@set -e $(patsubst %,; $(MAKE) -rC % $@,$(SUBDIRS))
CLEAN_RECURSE=1
clobber distclean:: CLEAN_RECURSE=
clobber distclean:: clean
$(RM) -r .objs* $(DISTCLEANFILES)
+ @[ -f Makefile.in ] && $(RM) Makefile
ifeq (".","$(DEPTH)")
clobber distclean::