PageRenderTime 89ms CodeModel.GetById 68ms app.highlight 18ms RepoModel.GetById 1ms app.codeStats 0ms

/src/Manos/Makefile.include

http://github.com/jacksonh/manos
Unknown | 118 lines | 90 code | 28 blank | 0 comment | 0 complexity | ecf2375465fe5f30351d2db2009db239 MD5 | raw file
  1VALID_CULTURES =   ar bg ca zh-CHS cs da de el en es fi fr he hu is it ja ko nl no pl pt ro ru hr sk sq sv th tr id uk be sl et lv lt fa vi hy eu mk af ka fo hi sw gu ta te kn mr gl kok ar-SA bg-BG ca-ES zh-TW cs-CZ da-DK de-DE el-GR en-US fi-FI fr-FR he-IL hu-HU is-IS it-IT ja-JP ko-KR nl-NL nb-NO pl-PL pt-BR ro-RO ru-RU hr-HR sk-SK sq-AL sv-SE th-TH tr-TR id-ID uk-UA be-BY sl-SI et-EE lv-LV lt-LT fa-IR vi-VN hy-AM eu-ES mk-MK af-ZA ka-GE fo-FO hi-IN sw-KE gu-IN ta-IN te-IN kn-IN mr-IN gl-ES kok-IN ar-IQ zh-CN de-CH en-GB es-MX fr-BE it-CH nl-BE nn-NO pt-PT sv-FI ar-EG zh-HK de-AT en-AU es-ES fr-CA ar-LY zh-SG de-LU en-CA es-GT fr-CH ar-DZ zh-MO en-NZ es-CR fr-LU ar-MA en-IE es-PA ar-TN en-ZA es-DO ar-OM es-VE ar-YE es-CO ar-SY es-PE ar-JO es-AR ar-LB en-ZW es-EC ar-KW en-PH es-CL ar-AE es-UY ar-BH es-PY ar-QA es-BO es-SV es-HN es-NI es-PR zh-CHT
  2
  3s2q=$(subst \ ,?,$1)
  4q2s=$(subst ?,\ ,$1)
  5# use this when result will be quoted
  6unesc2=$(subst ?, ,$1)
  7
  8build_sources = $(FILES) $(GENERATED_FILES)
  9build_sources_esc= $(call s2q,$(build_sources))
 10# use unesc2, as build_sources_embed is quoted
 11build_sources_embed= $(call unesc2,$(build_sources_esc:%='$(srcdir)/%'))
 12
 13comma__=,
 14get_resource_name = $(firstword $(subst $(comma__), ,$1))
 15get_culture =  $(lastword $(subst ., ,$(basename $1)))
 16is_cultured_resource = $(and $(word 3,$(subst ., ,$1)), $(filter $(VALID_CULTURES),$(lastword $(subst ., ,$(basename $1)))))
 17
 18RESOURCES_ESC=$(call s2q,$(RESOURCES))
 19
 20build_resx_list = $(foreach res, $(RESOURCES_ESC), $(if $(filter %.resx, $(call get_resource_name,$(res))),$(res),))
 21build_non_culture_resx_list = $(foreach res, $(build_resx_list),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res)))
 22build_non_culture_others_list = $(foreach res, $(filter-out $(build_resx_list),$(RESOURCES_ESC)),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res)))
 23build_others_list = $(build_non_culture_others_list)
 24build_xamlg_list = $(filter %.xaml.g.cs, $(FILES))
 25
 26# resgen all .resx resources
 27build_resx_files = $(foreach res, $(build_resx_list), $(call get_resource_name,$(res)))
 28build_resx_resources_esc = $(build_resx_files:.resx=.resources)
 29build_resx_resources = $(call q2s,$(build_resx_resources_esc))
 30
 31# embed resources for the main assembly
 32build_resx_resources_hack = $(subst .resx,.resources, $(build_non_culture_resx_list))
 33# use unesc2, as build_resx_resources_embed is quoted
 34build_resx_resources_embed = $(call unesc2,$(build_resx_resources_hack:%='-resource:%'))
 35build_others_files = $(call q2s,$(foreach res, $(build_others_list),$(call get_resource_name,$(res))))
 36build_others_resources = $(build_others_files)
 37# use unesc2, as build_others_resources_embed is quoted
 38build_others_resources_embed = $(call unesc2,$(build_others_list:%='-resource:$(srcdir)/%'))
 39
 40build_resources = $(build_resx_resources) $(build_others_resources)
 41build_resources_embed = $(build_resx_resources_embed) $(build_others_resources_embed)
 42
 43# -usesourcepath is available only for resgen2
 44emit_resgen_target_1=$(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); cd '$$(shell dirname '$$<')' && MONO_IOMAP=drive $$(RESGEN) '$$(shell basename '$$<')' '$$(shell basename '$$@')'
 45emit_resgen_target_2=$(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); MONO_IOMAP=drive $$(RESGEN) -usesourcepath '$$<' '$$@'
 46
 47emit_resgen_target=$(if $(filter resgen2,$(RESGEN)),$(emit_resgen_target_2),$(emit_resgen_target_1))
 48emit_resgen_targets=$(foreach res,$(build_resx_resources_esc),$(eval $(call emit_resgen_target,$(res))))
 49
 50build_references_ref = $(call q2s,$(foreach ref, $(call s2q,$(REFERENCES)), $(if $(filter -pkg:%, $(ref)), $(ref), $(if $(filter -r:%, $(ref)), $(ref), -r:$(ref)))))
 51build_references_ref += $(call q2s,$(foreach ref, $(call s2q,$(DLL_REFERENCES)), -r:$(ref)))
 52build_references_ref += $(call q2s,$(foreach ref, $(call s2q,$(PROJECT_REFERENCES)), -r:$(ref)))
 53
 54s2q2s=$(call unesc2,$(call s2q,$1))
 55cp_actual=test -z $1 || cp $1 $2
 56cp=$(call cp_actual,'$(call s2q2s,$1)','$(call s2q2s,$2)')
 57
 58rm_actual=test -z '$1' || rm -f '$2'
 59rm=$(call rm_actual,$(call s2q2s,$1),$(call s2q2s,$2)/$(shell basename '$(call s2q2s,$1)'))
 60
 61EXTRA_DIST += $(build_sources) $(build_resx_files) $(build_others_files) $(ASSEMBLY_WRAPPER_IN) $(EXTRAS) $(DATA_FILES) $(build_culture_res_files)
 62CLEANFILES += $(ASSEMBLY) $(ASSEMBLY).mdb $(BINARIES) $(build_resx_resources) $(build_satellite_assembly_list)
 63DISTCLEANFILES = $(GENERATED_FILES) $(pc_files) $(BUILD_DIR)/*
 64
 65pkglib_SCRIPTS = $(ASSEMBLY)
 66bin_SCRIPTS = $(BINARIES)
 67
 68programfilesdir = @libdir@/@PACKAGE@
 69programfiles_DATA = $(PROGRAMFILES)
 70linuxpkgconfigdir = @libdir@/pkgconfig
 71linuxpkgconfig_DATA = $(LINUX_PKGCONFIG)
 72
 73
 74# macros
 75
 76# $(call emit-deploy-target,deploy-variable-name)
 77define emit-deploy-target
 78$($1): $($1_SOURCE)
 79	mkdir -p '$$(shell dirname '$$@')'
 80	cp '$$<' '$$@'
 81endef
 82
 83# $(call emit-deploy-wrapper,wrapper-variable-name,wrapper-sourcefile,x)
 84# assumes that for a wrapper foo.pc its source template is foo.pc.in
 85# if $3 is non-empty then wrapper is marked exec
 86define emit-deploy-wrapper
 87$($1): $2 
 88	mkdir -p '$$(shell dirname '$$@')'
 89	cp '$$<' '$$@'
 90	$(if $3,chmod +x '$$@')
 91
 92endef
 93
 94# generating satellite assemblies
 95
 96culture_resources = $(foreach res, $(RESOURCES_ESC), $(if $(call is_cultured_resource,$(call get_resource_name, $(res))),$(res)))
 97cultures = $(sort $(foreach res, $(culture_resources), $(call get_culture,$(call get_resource_name,$(res)))))
 98culture_resource_dependencies = $(call q2s,$(BUILD_DIR)/$1/$(SATELLITE_ASSEMBLY_NAME): $(subst .resx,.resources,$2))
 99culture_resource_commandlines = $(call unesc2,cmd_line_satellite_$1 += '/embed:$(subst .resx,.resources,$2)')
100build_satellite_assembly_list = $(call q2s,$(cultures:%=$(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME)))
101build_culture_res_files = $(call q2s,$(foreach res, $(culture_resources),$(call get_resource_name,$(res))))
102install_satellite_assembly_list = $(subst $(BUILD_DIR),$(DESTDIR)$(libdir)/$(PACKAGE),$(build_satellite_assembly_list))
103
104$(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_dependencies,$(call get_culture,$(call get_resource_name,$(res))),$(call get_resource_name,$(res))))))
105$(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_commandlines,$(call get_culture,$(call get_resource_name,$(res))),$(res)))))
106
107$(build_satellite_assembly_list): $(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME):
108	mkdir -p '$(@D)'
109	$(AL) -out:'$@' -culture:$* -t:lib $(cmd_line_satellite_$*)
110
111$(install_satellite_assembly_list):
112	mkdir -p '$(@D)'
113	cp $(subst $(DESTDIR)$(libdir)/$(PACKAGE), $(BUILD_DIR), $@) $@
114
115install-satellite-assemblies: $(install_satellite_assembly_list)
116	
117uninstall-satellite-assemblies:
118	rm -rf $(install_satellite_assembly_list)