| # rules.mk # |
| |
| # |
| #//===----------------------------------------------------------------------===// |
| #// |
| #// The LLVM Compiler Infrastructure |
| #// |
| #// This file is dual licensed under the MIT and the University of Illinois Open |
| #// Source Licenses. See LICENSE.txt for details. |
| #// |
| #//===----------------------------------------------------------------------===// |
| # |
| |
| # --- Copy files to out directories --- |
| |
| $(out_cmn_dir)include/% : % $(out_cmn_dir)include/.dir .rebuild |
| $(target) |
| $(cp) $< $@ |
| |
| $(out_cmn_dir)include_compat/% : % $(out_cmn_dir)include_compat/.dir .rebuild |
| $(target) |
| $(cp) $< $@ |
| |
| # Fat: touch .touch file on every update in $(out_lib_dir), so we will know should we update fat |
| # goal or not. |
| $(out_lib_dir)% : % $(out_lib_dir).dir .rebuild |
| $(target) |
| $(cp) $< $@ |
| ifneq "$(out_lib_fat_dir)" "" |
| $(touch) $(dir $@).touch |
| endif |
| |
| .PHONY: libomp_aliases |
| libomp_aliases: $(out_lib_dir).dir .rebuild $(out_lib_dir)$(lib_file) |
| $(target) |
| ifeq "$(os)" "win" |
| cd $(out_lib_dir) ; $(cp) $(lib_file) libiomp5md$(dll) ; $(cp) $(imp_file) libiomp5md$(lib) |
| else |
| cd $(out_lib_dir) ; ln -sf $(lib_file) libiomp5$(dll) |
| endif |
| |
| $(out_ptf_dir)include/% : % $(out_ptf_dir)include/.dir .rebuild |
| $(target) |
| $(cp) $< $@ |
| |
| $(out_ptf_dir)include_compat/% : % $(out_ptf_dir)include_compat/.dir .rebuild |
| $(target) |
| $(cp) $< $@ |
| |
| $(out_l10n_dir)%/$(cat_file) : l10n/%/$(cat_file) $(out_l10n_dir)%/.dir .rebuild |
| $(target) |
| $(cp) $< $@ |
| |
| ifeq "$(os)" "mac" |
| $(out_l10n_fat_dir)%/$(cat_file) : l10n/%/$(cat_file) $(out_l10n_fat_dir)%/.dir .rebuild |
| $(target) |
| $(cp) $< $@ |
| endif |
| |
| # --- Include really common rules --- |
| |
| include $(LIBOMP_WORK)tools/src/common-rules.mk |
| |
| # --- Building helper tools from sources --- |
| |
| .PRECIOUS: %$(exe) # Do not delete automatically created files. |
| |
| %$(exe) : $(tools_dir)%.cpp .rebuild |
| $(target) |
| $(cxx) $(cxx-out)$@ $< |
| |
| # --- Fat libraries --- |
| |
| # Every time new file is copied to $(out_lib_dir) directory we update $(out_lib_dir).rebuild file, |
| # so we know should we rebuild fat libraries or not. |
| |
| # Note: Original implementation built fat libraries in mac_32 directory, then copied all the |
| # libraries from mac_32 to mac_32e directory. However, this may work wrong if exports/mac_*/lib/ |
| # contains other libraries. So now we build fat libraries twice: in both mac_32 |
| # and mac_32e directories. |
| |
| ifeq "$(platform)" "mac_32e" |
| |
| .PHONY : fat |
| fat : $(call _out_lib_fat_dir,mac_32).done $(call _out_lib_fat_dir,mac_32e).done |
| |
| $(call _out_lib_fat_dir,mac_32).done \ |
| $(call _out_lib_fat_dir,mac_32e).done : \ |
| $(call _out_lib_dir,mac_32).touch \ |
| $(call _out_lib_dir,mac_32e).touch \ |
| $(tools_dir)make-fat-binaries.pl \ |
| $(call _out_lib_fat_dir,mac_32).dir $(call _out_lib_fat_dir,mac_32e).dir .rebuild |
| $(target) |
| $(perl) $(tools_dir)make-fat-binaries.pl \ |
| --output=$(dir $@) $(call _out_lib_dir,mac_32) $(call _out_lib_dir,mac_32e) |
| $(touch) $@ |
| |
| endif |
| |
| # end of file # |