From: Marko Kreen Date: Sat, 5 Jan 2013 16:51:51 +0000 (+0200) Subject: antimake: support LIBDIR X-Git-Url: http://git.postgresql.org/gitweb/static/%7B%7Bpgdulink%28?a=commitdiff_plain;h=bdf2934eba24485f2ca9b557981415335548b775;p=libusual.git antimake: support LIBDIR Now different extension can be used for static libraries. --- diff --git a/mk/antimake.mk b/mk/antimake.mk index 61254fc..ca67897 100755 --- a/mk/antimake.mk +++ b/mk/antimake.mk @@ -352,9 +352,12 @@ AM_PRIMARIES = $(AM_BIG_PRIMARIES) $(AM_SMALL_PRIMARIES) # distclean does rm -rf on that OBJDIR = .objs -# non-configurable +# extension for objects OBJEXT = .o +# extension for static libraries +LIBEXT = .a + # files that need to be converted to objects AM_SRCEXTS = $(foreach lang,$(AM_LANGUAGES),$(AM_LANG_$(lang)_SRCEXTS)) @@ -910,9 +913,20 @@ endef ## Rules for big target ## +# 1-varname, 2-ifset, 3-ifnotset +IfSet = $(if $(filter-out undefined,$(flavor $(1))),$(2),$(3)) + +# 1-clean, 2-raw, 3-prim +PROGRAMS_Final = $(if $($(1)_EXT),$(2)$($(1)_EXT),$(2)$(EXEEXT)) +# 1-clean, 2-raw, 3-prim +LIBRARIES_Final = $(if $($(1)_EXT),$(2)$($(1)_EXT),$(patsubst %.a,%$(LIBEXT),$(2))) + # calculate target file name # 1-clean, 2-raw, 3-prim -FinalTargetFile = $(if $(filter PROGRAMS,$(3)$($(1)_EXT)),$(2)$(EXEEXT),$(2)$($(1)_EXT)) +FinalTargetFile = $(call IfSet,$(3)_Final,$(call $(3)_Final,$(1),$(2),$(3)),$(2)$($(1)_EXT)) + +# 1-objs +FixObjs = $(patsubst %.a,%$(LIBEXT),$(1)) # 1=cleantgt,2=rawtgt,3=prim,4=dest,5=flags define BigTargetBuild @@ -974,7 +988,7 @@ $(ENDIF) build_$(1): $$($(1)_SOURCES) $$(nodist_$(1)_SOURCES) build_$(1): $$($(1)_DEPENDENCIES) build_$(1): $$($(1)_FINAL) -$$($(1)_FINAL): $$($(1)_OBJS) +$$($(1)_FINAL): $$(call FixObjs,$$($(1)_OBJS)) $$(Q) $$(call MkDir,$$(dir $$@)) $$($(if $(filter LIBRARIES,$(3)),ar_lib,$$($(1)_LINKVAR)))