genode/libports/ports/gmp.mk
Norman Feske 9d778a658d ports/libports: Avoid multi-target rules
This patch splits the download of signatures from the download of the
archive to improve robustness. This way, signature files will be
downloaded even if the corresponding archive is already in place.

Issue #748
2013-06-12 11:35:13 +02:00

102 lines
3.5 KiB
Makefile

GMP = gmp-4.3.2
GMP_TBZ2 = $(GMP).tar.bz2
GMP_SIG = $(GMP_TBZ2).sig
GMP_BASE_URL = ftp://ftp.gmplib.org/pub/$(GMP)
GMP_URL = $(GMP_BASE_URL)/$(GMP_TBZ2)
GMP_URL_SIG = $(GMP_BASE_URL)/$(GMP_SIG)
GMP_KEY = "73D46C3667461E4BD93972495D6D47DFDB899F46 343C2FF0FBEE5EC2EDBEF399F3599FF828C67298"
#
# Interface to top-level prepare Makefile
#
PORTS += $(GMP)
GMP_INCLUDES = include/gmp/gmp-impl.h
GMP_INCLUDES += include/gmp/arm/gmp-mparam.h
GMP_INCLUDES += include/gmp/x86_32/gmp-mparam.h
GMP_INCLUDES += include/gmp/x86_64/gmp-mparam.h
GMP_SRC += src/lib/gmp/mpn/asm-defs.m4 \
src/lib/gmp/mpn/arm/hamdist.c \
src/lib/gmp/mpn/arm/popcount.c \
src/lib/gmp/mpn/x86_32/add_n.asm \
src/lib/gmp/mpn/x86_32/sub_n.asm \
src/lib/gmp/mpn/x86_64/add_n.asm \
src/lib/gmp/mpn/x86_64/sub_n.asm \
src/lib/gmp/mpn/x86_64/hamdist.asm \
src/lib/gmp/mpn/x86_64/popcount.asm
prepare-gmp: $(CONTRIB_DIR)/$(GMP) $(GMP_INCLUDES) $(GMP_SRC)
$(CONTRIB_DIR)/$(GMP): clean-gmp
#
# Port-specific local rules
#
$(DOWNLOAD_DIR)/$(GMP_TBZ2):
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(GMP_URL) && touch $@
$(DOWNLOAD_DIR)/$(GMP_SIG):
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(GMP_URL_SIG) && touch $@
$(DOWNLOAD_DIR)/$(GMP_TBZ2).verified: $(DOWNLOAD_DIR)/$(GMP_TBZ2) $(DOWNLOAD_DIR)/$(GMP_SIG)
$(VERBOSE)$(SIGVERIFIER) $(DOWNLOAD_DIR)/$(GMP_TBZ2) $(DOWNLOAD_DIR)/$(GMP_SIG) $(GMP_KEY)
$(CONTRIB_DIR)/$(GMP): $(DOWNLOAD_DIR)/$(GMP_TBZ2).verified
$(VERBOSE)tar xfj $(<:.verified=) -C $(CONTRIB_DIR) && touch $@
include/gmp/gmp-impl.h:
$(VERBOSE)ln -sf ../../$(CONTRIB_DIR)/$(GMP)/gmp-impl.h $@
include/gmp/arm/gmp-mparam.h: $(CONTRIB_DIR)/$(GMP)/mpn/arm/gmp-mparam.h
$(VERBOSE)mkdir -p include/gmp/arm
$(VERBOSE)ln -sf ../../../$< $@
include/gmp/x86_32/gmp-mparam.h: $(CONTRIB_DIR)/$(GMP)/mpn/x86/pentium/gmp-mparam.h
$(VERBOSE)mkdir -p include/gmp/x86_32
$(VERBOSE)ln -sf ../../../$< $@
include/gmp/x86_64/gmp-mparam.h: $(CONTRIB_DIR)/$(GMP)/mpn/x86_64/gmp-mparam.h
$(VERBOSE)mkdir -p include/gmp/x86_64
$(VERBOSE)ln -sf ../../../$< $@
src/lib/gmp/mpn/asm-defs.m4: $(CONTRIB_DIR)/$(GMP)/mpn/asm-defs.m4
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../$< $@
src/lib/gmp/mpn/arm/hamdist.c: $(CONTRIB_DIR)/$(GMP)/mpn/generic/popham.c
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
src/lib/gmp/mpn/arm/popcount.c: $(CONTRIB_DIR)/$(GMP)/mpn/generic/popham.c
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
src/lib/gmp/mpn/x86_32/add_n.asm: $(CONTRIB_DIR)/$(GMP)/mpn/x86/pentium/aors_n.asm
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
src/lib/gmp/mpn/x86_32/sub_n.asm: $(CONTRIB_DIR)/$(GMP)/mpn/x86/pentium/aors_n.asm
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
src/lib/gmp/mpn/x86_64/add_n.asm: $(CONTRIB_DIR)/$(GMP)/mpn/x86_64/aors_n.asm
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
src/lib/gmp/mpn/x86_64/sub_n.asm: $(CONTRIB_DIR)/$(GMP)/mpn/x86_64/aors_n.asm
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
src/lib/gmp/mpn/x86_64/hamdist.asm: $(CONTRIB_DIR)/$(GMP)/mpn/x86_64/popham.asm
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
src/lib/gmp/mpn/x86_64/popcount.asm: $(CONTRIB_DIR)/$(GMP)/mpn/x86_64/popham.asm
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf ../../../../../$< $@
clean-gmp:
$(VERBOSE)rm -f $(GMP_INCLUDES)
$(VERBOSE)rm -f $(GMP_SRC)
$(VERBOSE)rm -rf $(CONTRIB_DIR)/$(GMP)