gcc49, illumos-gcc: preserve original tarball mtimes
[unleashed-userland.git] / components / developer / gcc49 / Makefile
blob21571eb8f059bbeb61ab2a583a79b747fdb4429b
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
13 # Copyright 2013 Andrzej Szeszo. All rights reserved.
14 # Copyright 2016 Jim Klimov
17 include ../../../make-rules/shared-macros.mk
19 COMPONENT_NAME= gcc
20 COMPONENT_VERSION= 4.9.4
21 COMPONENT_REVISION=2
22 MPFR_NAME= mpfr
23 MPFR_VERSION=3.1.3
24 MPC_NAME=mpc
25 MPC_VERSION=1.0.3
26 GMP_NAME=gmp
27 GMP_VERSION=5.0.5
28 COMPONENT_SUMMARY= GNU Compiler Collection
29 COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
30 COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.bz2
31 COMPONENT_ARCHIVE_HASH= \
32 sha256:6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092
33 COMPONENT_ARCHIVE_URL= \
34 http://ftp.gnu.org/gnu/gcc/gcc-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
35 COMPONENT_SIG_URL= $(COMPONENT_ARCHIVE_URL).sig
36 COMPONENT_PROJECT_URL = http://gcc.gnu.org/
37 PATCH_EACH_ARCHIVE=1
38 PATCHDIR_PATCHES = $(shell find $(PATCH_DIR) $(PARFAIT_PATCH_DIR) -type f -name '$(PATCH_PATTERN)' \
39 2>/dev/null | sort) $(EXTRA_PATCHES)
41 # do not replace config.{sub,guess}; there are more than one under SOURCE_DIR
42 UPDATE_AUX_FILES=
44 COMPONENT_SRC_1= $(MPFR_NAME)-$(MPFR_VERSION)
45 COMPONENT_ARCHIVE_1= $(COMPONENT_SRC_1).tar.bz2
46 COMPONENT_ARCHIVE_URL_1= http://www.mpfr.org/$(COMPONENT_SRC_1)/$(COMPONENT_ARCHIVE_1)
47 COMPONENT_SIG_URL_1= $(COMPONENT_ARCHIVE_URL_1).asc
48 COMPONENT_ARCHIVE_HASH_1= \
49 sha256:f63bb459157cacd223caac545cb816bcdb5a0de28b809e7748b82e9eb89b0afd
50 CLEAN_PATHS += $(COMPONENT_SRC_1)
51 COMPONENT_POST_UNPACK_ACTION_1 += ( $(RM) -r $(COMPONENT_SRC)/$(MPFR_NAME) && $(CP) -pr $(COMPONENT_SRC_1) $(COMPONENT_SRC)/$(MPFR_NAME) )
53 COMPONENT_SRC_2= $(MPC_NAME)-$(MPC_VERSION)
54 COMPONENT_ARCHIVE_2= $(COMPONENT_SRC_2).tar.gz
55 COMPONENT_ARCHIVE_URL_2= https://ftp.gnu.org/gnu/mpc/$(COMPONENT_ARCHIVE_2)
56 COMPONENT_SIG_URL_2= $(COMPONENT_ARCHIVE_URL_2).sig
57 COMPONENT_ARCHIVE_HASH_2= \
58 sha256:617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3
59 CLEAN_PATHS += $(COMPONENT_SRC_2)
60 COMPONENT_POST_UNPACK_ACTION_2 += ( $(RM) -r $(COMPONENT_SRC)/$(MPC_NAME) && $(CP) -pr $(COMPONENT_SRC_2) $(COMPONENT_SRC)/$(MPC_NAME) )
62 COMPONENT_SRC_3= $(GMP_NAME)-$(GMP_VERSION)
63 COMPONENT_ARCHIVE_3= $(COMPONENT_SRC_3).tar.bz2
64 COMPONENT_ARCHIVE_URL_3= http://ftp.gnu.org/gnu/gmp/$(COMPONENT_ARCHIVE_3)
65 COMPONENT_SIG_URL_3= $(COMPONENT_ARCHIVE_URL_3).sig
66 COMPONENT_ARCHIVE_HASH_3= \
67 sha256:1f588aaccc41bb9aed946f9fe38521c26d8b290d003c5df807f65690f2aadec9
68 CLEAN_PATHS += $(COMPONENT_SRC_3)
69 COMPONENT_POST_UNPACK_ACTION_3 += ( $(RM) -r $(COMPONENT_SRC)/$(GMP_NAME) && $(CP) -pr $(COMPONENT_SRC_3) $(COMPONENT_SRC)/$(GMP_NAME) )
71 GCC_VERSION= 4.9
73 include $(WS_MAKE_RULES)/prep.mk
74 include $(WS_MAKE_RULES)/configure.mk
75 include $(WS_MAKE_RULES)/ips.mk
76 -include .local-$(HOSTNAME).mk
78 CC_BITS=
79 CFLAGS= -g -O2
81 CONFIGURE_PREFIX= /usr/gcc/4.9
83 PARCH = $(MACH:i386=i386-pc)
84 GNU_ARCH = $(PARCH:sparc=sparc-sun)-solaris$(SOLARIS_VERSION)
85 PKG_MACROS += GNU_ARCH="$(GNU_ARCH)"
87 # Build recipe borrowed from OmniOS
89 COMMON_ENV= LD_OPTIONS="-zignore -zcombreloc -i"
90 COMMON_ENV+= LD_FOR_TARGET=/usr/bin/ld
91 COMMON_ENV+= LD_FOR_HOST=/usr/bin/ld
92 COMMON_ENV+= LD=/usr/bin/ld
93 COMMON_ENV+= UNAME_LEGACY=
94 COMMON_ENV+= AWK=gawk
96 CONFIGURE_ENV+= $(COMMON_ENV)
97 COMPONENT_BUILD_ENV+= $(COMMON_ENV)
98 COMPONENT_INSTALL_ENV+= $(COMMON_ENV)
100 CONFIGURE_OPTIONS+= --sbindir=$(CONFIGURE_BINDIR.$(BITS))
101 CONFIGURE_OPTIONS+= --libdir=$(CONFIGURE_LIBDIR.$(BITS))
102 CONFIGURE_OPTIONS+= --libexecdir=$(CONFIGURE_LIBDIR.$(BITS))
103 CONFIGURE_OPTIONS+= --host $(GNU_ARCH)
104 CONFIGURE_OPTIONS+= --build $(GNU_ARCH)
105 CONFIGURE_OPTIONS+= --target $(GNU_ARCH)
106 CONFIGURE_OPTIONS+= --with-boot-ldflags=-R$(CONFIGURE_PREFIX)/lib
107 CONFIGURE_OPTIONS+= --enable-plugins
108 CONFIGURE_OPTIONS+= --enable-objc-gc
109 CONFIGURE_OPTIONS+= --enable-languages=c,c++,fortran,lto,objc
110 CONFIGURE_OPTIONS+= --without-gnu-ld
111 CONFIGURE_OPTIONS+= --with-ld=/usr/bin/ld
112 CONFIGURE_OPTIONS+= --with-build-time-tools=/usr/gnu/$(GNU_ARCH)/bin
113 CONFIGURE_OPTIONS+= --disable-libitm
114 CONFIGURE_OPTIONS+= --enable-install-libiberty
116 # On SPARC systems, use Sun Assembler
117 CONFIGURE_OPTIONS.sparc+= --without-gnu-as --with-as=/usr/bin/as
118 CONFIGURE_OPTIONS.i386+= --with-gnu-as --with-as=/usr/bin/gas
119 CONFIGURE_OPTIONS+= $(CONFIGURE_OPTIONS.$(MACH))
121 CONFIGURE_OPTIONS+= LDFLAGS="-R$(CONFIGURE_PREFIX)/lib"
123 COMPONENT_POST_INSTALL_ACTION = \
124 for file in $(PROTO_DIR)$(CONFIGURE_PREFIX)/lib/libgfortran.so.3.0.0 $(PROTO_DIR)$(CONFIGURE_PREFIX)/lib/$(MACH64)/libgfortran.so.3.0.0; do \
125 elfedit -e 'dyn:delete RUNPATH' $$file ; \
126 elfedit -e 'dyn:delete RPATH' $$file ; \
127 done ; \
128 $(RM) -r $(PROTO_DIR)$(CONFIGURE_PREFIX)/lib/gcc/$(GNU_ARCH)/$(COMPONENT_VERSION)/include-fixed
130 build: $(BUILD_32)
132 install: $(INSTALL_32)
134 # GCC uses installed runtime libraries
135 REQUIRED_PACKAGES += SUNWcs
136 REQUIRED_PACKAGES += system/library
137 REQUIRED_PACKAGES += system/library/g++-6-runtime
138 REQUIRED_PACKAGES += system/library/gcc-6-runtime
139 REQUIRED_PACKAGES += system/library/gfortran-6-runtime
140 REQUIRED_PACKAGES += system/library/gobjc-6-runtime
141 REQUIRED_PACKAGES += system/library/math