Index: lang/julia/Makefile =================================================================== --- /dev/null +++ lang/julia/Makefile @@ -0,0 +1,50 @@ +# Created by: Iblis Lin +# $FreeBSD$ + +PORTNAME= julia +PORTVERSION= 1.0.3 +PORTREVISION= 3 +CATEGORIES= lang math +MASTER_SITES= # empty +DISTFILES= # empty +EXTRACT_ONLY= # empty + +MAINTAINER= iblis@hs.ntnu.edu.tw +COMMENT= Meta port for the different versions of Julia compiler + +# LICENSE= # empty +# LICENSE_FILE= # empty + +ONLY_FOR_ARCHS= amd64 i386 + +NO_BUILD= yes + +PLIST_FILES= bin/julia \ + man/man1/julia.1.gz\ + etc/julia + +OPTIONS_DEFINE= V10 +OPTIONS_DEFAULT= V${JULIA_DEFAULT:S/.//} D${JULIA_DEFAULT:S/.//} +OPTIONS_SINGLE= DEFAULTVER +OPTIONS_SINGLE_DEFAULTVER= D10 # D stands for default + +V10_DESC= Install v${:!${MAKE} -C ${PORTSDIR}/lang/julia10 -v PORTVERSION!} release \ + (1.x long-term support branch) + +V10_RUN_DEPENDS= julia10:lang/julia10 + +DEFAULTVER_DESC= Select default version +D10_DESC= Set up symbolic links of bin/julia, manual page and etc/startup.jl for 1.0 + +D10_IMPLIES= V10 + +.include + +_JULIA_VER= ${PORT_OPTIONS:MD*:S/D//} + +do-install: + ${RLN} julia${_JULIA_VER} ${STAGEDIR}${PREFIX}/bin/julia + ${RLN} ../julia/julia${_JULIA_VER}/etc/julia ${STAGEDIR}${PREFIX}/etc + ${RLN} julia${_JULIA_VER}.1.gz ${STAGEDIR}${PREFIX}/man/man1/julia.1.gz + +.include Index: lang/julia/pkg-descr =================================================================== --- /dev/null +++ lang/julia/pkg-descr @@ -0,0 +1,9 @@ +Julia is a high-level, high-performance dynamic programming language for +technical computing, with syntax that is familiar to users of other technical +computing environments. It provides a sophisticated compiler, distributed +parallel execution, numerical accuracy, and an extensive mathematical function +library. The library, largely written in Julia itself, also integrates mature, +best-of-breed C and Fortran libraries for linear algebra, random number +generation, signal processing, and string processing. + +WWW: https://julialang.org/ Index: lang/julia10/Makefile =================================================================== --- /dev/null +++ lang/julia10/Makefile @@ -0,0 +1,187 @@ +# Created by: Iblis Lin +# $FreeBSD$ + +PORTNAME= julia +PORTVERSION= 1.0.5 +DISTVERSIONSUFFIX= -full +CATEGORIES= lang math +MASTER_SITES= https://github.com/JuliaLang/julia/releases/download/v${PORTVERSION}/ +PKGNAMESUFFIX= 10 + +MAINTAINER= iblis@hs.ntnu.edu.tw +COMMENT= Julia Language: A fresh approach to technical computing + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE.md + +ONLY_FOR_ARCHS= amd64 i386 + +LIB_DEPENDS= libcurl.so:ftp/curl \ + libgit2.so:devel/libgit2 \ + libgmp.so:math/gmp \ + libmbedtls.so:security/mbedtls \ + libmpfr.so:math/mpfr \ + libpcre2-8.so:devel/pcre2 \ + libssh2.so:security/libssh2 \ + libutf8proc.so:textproc/utf8proc +EXTRACT_DEPENDS=gmake:devel/gmake +BUILD_DEPENDS= patchelf:sysutils/patchelf \ + pcre2-config:devel/pcre2 \ + cmake:devel/cmake + +USES= gmake compiler:c++11-lib fortran python:3.6+,build perl5 \ + shebangfix +USE_LDCONFIG= yes + +DESCR= ${.CURDIR}/../julia/pkg-descr + +SHEBANG_GLOB= *.sh + +WRKSRC= ${WRKDIR}/julia-${PORTVERSION} +INSTALLDIR= julia/${PORTNAME}${PKGNAMESUFFIX} +MANDIRS+= ${PREFIX}/${INSTALLDIR}/man + +ALL_TARGET= default +INSTALL_TARGET= install +TEST_TARGET= test + +PLIST_SUB= VERSION="${PORTVERSION:R}" \ + JULIA="${INSTALLDIR}" + +CXXFLAGS+= -stdlib=libc++ -std=c++11 +MAKE_ARGS+= prefix=${PREFIX}/${INSTALLDIR} \ + JCXXFLAGS="${CXXFLAGS}" \ + FORCE_ASSERTIONS=${FORCE_ASSERTIONS} \ + USE_GPL_LIBS=${USE_GPL_LIBS} \ + USE_SYSTEM_CURL=1 \ + USE_SYSTEM_GMP=1 \ + USE_SYSTEM_LAPACK=1 \ + USE_SYSTEM_LIBGIT2=1 \ + USE_SYSTEM_LIBSSH2=1 \ + USE_SYSTEM_LIBUV=0 \ + USE_SYSTEM_MBEDTLS=1 \ + USE_SYSTEM_MPFR=1 \ + USE_SYSTEM_PATCHELF=1 \ + USE_SYSTEM_PCRE=1 \ + USE_SYSTEM_UTF8PROC=1 \ + NO_GIT=1 + +OPTIONS_DEFINE= DEBUG DOCS GPL_LIBS DESKTOP NATIVE +OPTIONS_DEFAULT= OPENLIBM +OPTIONS_GROUP= PRIVATE +OPTIONS_GROUP_PRIVATE= OPENBLAS +OPTIONS_SINGLE= LIBM +OPTIONS_SINGLE_LIBM= SYSLIBM OPENLIBM +OPTIONS_SUB= yes + +PRIVATE_DESC= Build self-shipped private depends +LIBM_DESC= Math library implementation + +DEBUG_VARS= FORCE_ASSERTIONS=1 \ + ALL_TARGET=all +DEBUG_MAKE_ARGS= BUNDLE_DEBUG_LIBS=1 + +DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX} +PORTDOCS= html +DOCS_VARS= INSTALL_TARGET+=install-docs + +GPL_LIBS_DESC= Build with GPL lib: SUITESPARSE +GPL_LIBS_MAKE_ARGS= USE_SYSTEM_SUITESPARSE=0 +GPL_LIBS_VARS= USE_GPL_LIBS=1 + +DESKTOP_DESC= Install icon, .desktop and appdata files +DESKTOP_USES= gnome +DESKTOP_VARS= INSTALL_TARGET+=install-desktop \ + INSTALLS_ICONS=yes + +SYSLIBM_DESC= Build with system libm +SYSLIBM_MAKE_ARGS= USE_SYSTEM_LIBM=1 + +OPENLIBM_DESC= Build with OpenLibm (math/openlibm) +OPENLIBM_MAKE_ARGS= USE_SYSTEM_OPENLIBM=1 +OPENLIBM_LIB_DEPENDS= libopenlibm.so:math/openlibm + +OPENBLAS_DESC= Private OpenBLAS v0.3.2\ + (ports tree: v${:!${MAKE} -C ${PORTSDIR}/math/openblas -V PORTVERSION!}) +OPENBLAS_MAKE_ARGS= USE_SYSTEM_BLAS=0 OPENBLAS_DYNAMIC_ARCH=1 +OPENBLAS_MAKE_ARGS_OFF= USE_SYSTEM_BLAS=1 +OPENBLAS_LIB_DEPENDS_OFF= libopenblas.so:math/openblas + +.include + +NATIVE_DESC= Build with native CPU JIT tuning +.if ${PORT_OPTIONS:MNATIVE} +MAKE_ARGS+= JULIA_CPU_TARGET=native +.else +.if ${ARCH} == "amd64" +MAKE_ARGS+= JULIA_CPU_TARGET=x86-64 +.elif ${ARCH} == "i386" +MAKE_ARGS+= JULIA_CPU_TARGET=pentium4 +.else +MAKE_ARGS+= JULIA_CPU_TARGET=generic +.endif +.endif # .if ${PORT_OPTIONS:MNATIVE} + +# OPENBLAS plist +.if ${PORT_OPTIONS:MOPENBLAS} +.if ${ARCH} == "amd64" +PLIST_SUB+= OPENBLAS64="64_" +.else +PLIST_SUB+= OPENBLAS64="" +.endif +.endif # .if ${PORT_OPTIONS:MOPENBLAS} + +.if ${ARCH} == "i386" +EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ui_Makefile +.endif + +post-extract: + ${MAKE_CMD} -C ${WRKSRC}/deps extract + ${MAKE_CMD} -C ${WRKSRC}/stdlib install + +post-patch: + echo "override TAGGED_RELEASE_BANNER=\"FreeBSD port lang/${PORTNAME}${PKGNAMESUFFIX} build\"" >> ${WRKSRC}/Make.user + # unset ARCH for auto-detection + # Julia build script uses the name x86_86/x86, which are different from ports framework + echo "ARCH=" >> ${WRKSRC}/Make.user + +post-patch-OPENBLAS-on: + ${CP} ${FILESDIR}/extra-patch-openblas-fix-arch.patch ${WRKSRC}/deps/patches/openblas-fix-arch.patch + +post-patch-OPENBLAS-off: + echo "LIBBLAS= -lopenblas -L${LOCALBASE}/lib" >> ${WRKSRC}/Make.user + echo "LIBBLASNAME=libopenblas" >> ${WRKSRC}/Make.user + echo 'LIBLAPACK= $$(LIBBLAS)' >> ${WRKSRC}/Make.user + echo 'LIBLAPACKNAME= $$(LIBBLASNAME)' >> ${WRKSRC}/Make.user + +post-configure-OPENBLAS-off: + ${CC} ${CFLAGS} -lopenblas ${LDFLAGS} -o ${WRKSRC}/check_openblas \ + ${FILESDIR}/check_openblas.c + ${WRKSRC}/check_openblas && ( \ + echo "USE_BLAS64=1" >> ${WRKSRC}/Make.user \ + ) || ( \ + echo "USE_BLAS64=0" >> ${WRKSRC}/Make.user \ + ) + +post-install: + ${RLN} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/bin/julia ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX} + ${RLN} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/man/man1/julia.1 ${STAGEDIR}${PREFIX}/man/man1/${PORTNAME}${PKGNAMESUFFIX}.1 + + # clean up for Pkg3.jl +.for file in .codecov.yml .travis.yml appveyor.yml bors.toml .gitignore source-extracted + ${RM} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/julia/stdlib/v${PORTVERSION:R}/Pkg/${file} + ${RM} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/julia/stdlib/v${PORTVERSION:R}/Pkg/ext/TOML/${file} +.endfor + +post-install-DEBUG-on: + ${RLN} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/bin/julia-debug ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX}-debug + +post-install-DOCS-on: + ${MV} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/doc/julia ${STAGEDIR}${DOCSDIR} + ${RMDIR} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/doc + +post-install-DOCS-off: + # remove empty dir + ${RM} -r ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/doc + +.include Index: lang/julia10/distinfo =================================================================== --- /dev/null +++ lang/julia10/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1616316381 +SHA256 (julia-1.0.5-full.tar.gz) = 41ac35532dcc96758b69414e7324d730c3b8ee24d8a4038eb25f427979f0377b +SIZE (julia-1.0.5-full.tar.gz) = 95876625 Index: lang/julia10/files/check_openblas.c =================================================================== --- /dev/null +++ lang/julia10/files/check_openblas.c @@ -0,0 +1,10 @@ +#include + +char* openblas_get_config(void); + +int main() +{ + if (strstr(openblas_get_config(), "USE64BITINT") == NULL) + return 1; + return 0; +} Index: lang/julia10/files/extra-patch-openblas-fix-arch.patch =================================================================== --- /dev/null +++ lang/julia10/files/extra-patch-openblas-fix-arch.patch @@ -0,0 +1,19 @@ +--- Makefile.system.orig 2019-02-06 00:50:04.658572000 +0800 ++++ Makefile.system 2019-02-06 00:51:30.598745000 +0800 +@@ -9,6 +9,16 @@ + TOPDIR = . + endif + ++ifeq ($(ARCH), amd64) ++override ARCH=x86_64 ++else ifeq ($(ARCH), powerpc64) ++override ARCH=power ++else ifeq ($(ARCH), i386) ++override ARCH=x86 ++else ifeq ($(ARCH), aarch64) ++override ARCH=arm64 ++endif ++ + NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-netlib + + # Default C compiler Index: lang/julia10/files/extra-patch-ui_Makefile =================================================================== --- /dev/null +++ lang/julia10/files/extra-patch-ui_Makefile @@ -0,0 +1,11 @@ +--- ui/Makefile.orig 2016-09-20 02:54:22 UTC ++++ ui/Makefile +@@ -14,7 +14,7 @@ SRCS := repl + HEADERS := $(addprefix $(JULIAHOME)/src/,julia.h julia_threads.h julia_internal.h options.h) \ + $(BUILDDIR)/../src/julia_version.h $(wildcard $(JULIAHOME)/src/support/*.h) $(LIBUV_INC)/uv.h + +-FLAGS := -I$(BUILDROOT)/src -I$(JULIAHOME)/src -I$(JULIAHOME)/src/support -I$(build_includedir) ++FLAGS := -I$(BUILDROOT)/src -I$(JULIAHOME)/src -I$(JULIAHOME)/src/support -I$(build_includedir) -latomic + ifneq ($(USEMSVC), 1) + FLAGS += -Wall -Wno-strict-aliasing -fno-omit-frame-pointer -Wc++-compat + endif Index: lang/julia10/files/patch-Make.inc =================================================================== --- /dev/null +++ lang/julia10/files/patch-Make.inc @@ -0,0 +1,53 @@ +--- Make.inc.orig 2018-12-18 01:38:57 UTC ++++ Make.inc +@@ -130,12 +130,7 @@ endif + # disable automatic Makefile rules + .SUFFIXES: + +-# find out if git repository is available +-ifeq ($(shell [ -e $(JULIAHOME)/.git ] && echo true || echo "Warning: git information unavailable; versioning information limited" >&2), true) +-NO_GIT := 0 +-else + NO_GIT := 1 +-endif + + # Julia's Semantic Versioning system labels the three decimal places in a version number as + # the major, minor and patch versions. Typically the major version would be incremented +@@ -185,7 +180,7 @@ libdir := $(prefix)/lib + libexecdir := $(prefix)/libexec + datarootdir := $(prefix)/share + docdir := $(datarootdir)/doc/julia +-mandir := $(datarootdir)/man ++mandir := $(prefix)/man + man1dir := $(mandir)/man1 + includedir := $(prefix)/include + sysconfdir := $(prefix)/etc +@@ -198,7 +193,7 @@ build_depsbindir := $(build_prefix)/tools + build_libdir := $(build_prefix)/lib + build_libexecdir := $(build_prefix)/libexec + build_datarootdir := $(build_prefix)/share +-build_mandir := $(build_datarootdir)/man ++build_mandir := $(build_prefix)/man + build_man1dir := $(build_mandir)/man1 + build_includedir := $(build_prefix)/include + build_sysconfdir := $(build_prefix)/etc +@@ -364,7 +359,7 @@ endif + ifeq ($(USEIFC), 1) + FC := ifort + else +-FC := $(CROSS_COMPILE)gfortran ++FC ?= $(CROSS_COMPILE)gfortran + endif + + STDLIBCPP_FLAG := +@@ -417,8 +412,8 @@ SHIPFLAGS := -O3 -ggdb2 -falign-functions + endif + + ifeq ($(USECLANG),1) +-CC := $(CROSS_COMPILE)clang +-CXX := $(CROSS_COMPILE)clang++ ++CC ?= $(CROSS_COMPILE)clang ++CXX ?= $(CROSS_COMPILE)clang++ + JCFLAGS := -pipe $(fPIC) -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 + # AArch64 needs this flag to generate the .eh_frame used by libunwind + JCPPFLAGS := -fasynchronous-unwind-tables Index: lang/julia10/files/patch-Makefile =================================================================== --- /dev/null +++ lang/julia10/files/patch-Makefile @@ -0,0 +1,122 @@ +--- Makefile.orig 2018-12-18 01:38:57 UTC ++++ Makefile +@@ -264,24 +264,6 @@ endif + endif + endif + +-# On FreeBSD, /lib/libgcc_s.so.1 is incompatible with Fortran; to use Fortran on FreeBSD, +-# we need to link to the libgcc_s that ships with the same GCC version used by libgfortran. +-# To work around this, we copy the GCC libraries we need, namely libgfortran, libgcc_s, +-# and libquadmath, into our build library directory, $(build_libdir). We also add them to +-# JL_PRIVATE_LIBS-0 so that they know where they need to live at install time. +-ifeq ($(OS),FreeBSD) +-define std_so +-julia-deps: | $$(build_libdir)/$(1).so +-$$(build_libdir)/$(1).so: | $$(build_libdir) +- $$(INSTALL_M) $$(GCCPATH)/$(1).so* $$(build_libdir) +-JL_PRIVATE_LIBS-0 += $(1) +-endef +- +-$(eval $(call std_so,libgfortran)) +-$(eval $(call std_so,libgcc_s)) +-$(eval $(call std_so,libquadmath)) +-endif # FreeBSD +- + ifeq ($(OS),WINNT) + define std_dll + julia-deps: | $$(build_bindir)/lib$(1).dll $$(build_depsbindir)/lib$(1).dll +@@ -328,8 +310,7 @@ JL_PRIVATE_LIBS-0 += libgfortran libgcc_s libquadmath + endif + + +-install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html +- @$(MAKE) $(QUIET_MAKE) all ++install: $(build_depsbindir)/stringreplace + @for subdir in $(bindir) $(datarootdir)/julia/stdlib/$(VERSDIR) $(docdir) $(man1dir) $(includedir)/julia $(libdir) $(private_libdir) $(sysconfdir); do \ + mkdir -p $(DESTDIR)$$subdir; \ + done +@@ -371,10 +352,6 @@ endif + fi \ + done \ + done +- for suffix in $(JL_PRIVATE_LIBS-1) ; do \ +- lib=$(build_private_libdir)/$${suffix}.$(SHLIB_EXT); \ +- $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \ +- done + endif + + # Copy public headers +@@ -389,8 +366,6 @@ endif + $(INSTALL_M) $(JULIAHOME)/contrib/build_sysimg.jl $(DESTDIR)$(datarootdir)/julia/ + # Copy in all .jl sources as well + cp -R -L $(build_datarootdir)/julia $(DESTDIR)$(datarootdir)/ +- # Copy documentation +- cp -R -L $(BUILDROOT)/doc/_build/html $(DESTDIR)$(docdir)/ + # Remove various files which should not be installed + -rm -f $(DESTDIR)$(datarootdir)/julia/base/version_git.sh + -rm -f $(DESTDIR)$(datarootdir)/julia/test/Makefile +@@ -400,16 +375,6 @@ endif + -rm -f $(DESTDIR)$(datarootdir)/julia/stdlib/$(VERSDIR)/*/build-checked + # Copy in beautiful new man page + $(INSTALL_F) $(build_man1dir)/julia.1 $(DESTDIR)$(man1dir)/ +- # Copy icon and .desktop file +- mkdir -p $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ +- $(INSTALL_F) $(JULIAHOME)/contrib/julia.svg $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ +- -touch -c $(DESTDIR)$(datarootdir)/icons/hicolor/ +- -gtk-update-icon-cache $(DESTDIR)$(datarootdir)/icons/hicolor/ +- mkdir -p $(DESTDIR)$(datarootdir)/applications/ +- $(INSTALL_F) $(JULIAHOME)/contrib/julia.desktop $(DESTDIR)$(datarootdir)/applications/ +- # Install appdata file +- mkdir -p $(DESTDIR)$(datarootdir)/appdata/ +- $(INSTALL_F) $(JULIAHOME)/contrib/julia.appdata.xml $(DESTDIR)$(datarootdir)/appdata/ + + # Update RPATH entries and JL_SYSTEM_IMAGE_PATH if $(private_libdir_rel) != $(build_private_libdir_rel) + ifneq ($(private_libdir_rel),$(build_private_libdir_rel)) +@@ -420,7 +385,7 @@ ifeq ($(OS), Darwin) + done + else ifneq (,$(findstring $(OS),Linux FreeBSD)) + for j in $(JL_TARGETS) ; do \ +- patchelf --set-rpath '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j; \ ++ patchelf --set-rpath '$(GCCPATH):$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j; \ + done + endif + +@@ -431,22 +396,24 @@ ifeq ($(BUNDLE_DEBUG_LIBS),1) + endif + + endif +- # On FreeBSD, remove the build's libdir from each library's RPATH +-ifeq ($(OS),FreeBSD) +- $(JULIAHOME)/contrib/fixup-rpath.sh $(build_depsbindir)/patchelf $(DESTDIR)$(libdir) $(build_libdir) +- $(JULIAHOME)/contrib/fixup-rpath.sh $(build_depsbindir)/patchelf $(DESTDIR)$(private_libdir) $(build_libdir) +- $(JULIAHOME)/contrib/fixup-rpath.sh $(build_depsbindir)/patchelf $(DESTDIR)$(bindir) $(build_libdir) +- # Set libgfortran's RPATH to ORIGIN instead of GCCPATH. It's only libgfortran that +- # needs to be fixed here, as libgcc_s and libquadmath don't have RPATHs set. If we +- # don't set libgfortran's RPATH, it won't be able to find its friends on systems +- # that don't have the exact GCC port installed used for the build. +- for lib in $(DESTDIR)$(private_libdir)/libgfortran*$(SHLIB_EXT)*; do \ +- $(build_depsbindir)/patchelf --set-rpath '$$ORIGIN' $$lib; \ +- done +-endif +- + mkdir -p $(DESTDIR)$(sysconfdir) + cp -R $(build_sysconfdir)/julia $(DESTDIR)$(sysconfdir)/ ++ ++install-docs: ++ # Copy documentation ++ cp -R -L $(BUILDROOT)/doc/_build/html $(DESTDIR)$(docdir)/ ++ ++install-desktop: ++ # Copy icon and .desktop file ++ mkdir -p $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ ++ $(INSTALL_F) $(JULIAHOME)/contrib/julia.svg $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/ ++ -touch -c $(DESTDIR)$(datarootdir)/icons/hicolor/ ++ -gtk-update-icon-cache $(DESTDIR)$(datarootdir)/icons/hicolor/ ++ mkdir -p $(DESTDIR)$(datarootdir)/applications/ ++ $(INSTALL_F) $(JULIAHOME)/contrib/julia.desktop $(DESTDIR)$(datarootdir)/applications/ ++ # Install appdata file ++ mkdir -p $(DESTDIR)$(datarootdir)/appdata/ ++ $(INSTALL_F) $(JULIAHOME)/contrib/julia.appdata.xml $(DESTDIR)$(datarootdir)/appdata/ + + distclean: + -rm -fr $(BUILDROOT)/julia-*.tar.gz $(BUILDROOT)/julia*.exe $(BUILDROOT)/julia-*.7z $(BUILDROOT)/julia-$(JULIA_COMMIT) Index: lang/julia10/files/patch-base_Makefile =================================================================== --- /dev/null +++ lang/julia10/files/patch-base_Makefile @@ -0,0 +1,11 @@ +--- base/Makefile.orig 2018-09-20 04:08:53 UTC ++++ base/Makefile +@@ -109,7 +109,7 @@ ifneq ($(OS), WINNT) + # put a symlink in the private libdir. + # System package managers may want to install these links manually, + # but if not, this will try to create the proper symlink to the right minor version. +-all: symlink_system_libraries ++all: + SYMLINK_SYSTEM_LIBRARIES := + + # if it's a symlink, pick up the symlink target instead, for one level of indirection Index: lang/julia10/files/patch-deps_blas.mk =================================================================== --- /dev/null +++ lang/julia10/files/patch-deps_blas.mk @@ -0,0 +1,17 @@ +--- deps/blas.mk.orig 2018-08-07 16:34:08 UTC ++++ deps/blas.mk +@@ -94,6 +94,14 @@ OPENBLAS_BUILD_OPTS += MAKE_NB_JOBS=0 + + $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/source-extracted + perl -i -ple 's/^\s*(EXTRALIB\s*\+=\s*-lSystemStubs)\s*$$/# $$1/g' $(dir $<)/Makefile.system ++ cd $(BUILDDIR)/$(OPENBLAS_SRC_DIR) && \ ++ patch -p1 -f < $(SRCDIR)/patches/openblas-fix-arch.patch ++ /usr/bin/sed -i.bak -e "s+(ARCH)+(AR)+" \ ++ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/lapack-netlib/SRC/Makefile \ ++ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/lapack-netlib/SRC/VARIANTS/Makefile \ ++ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/lapack-netlib/TESTING/MATGEN/Makefile \ ++ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/lapack-netlib/LAPACKE/src/Makefile \ ++ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/lapack-netlib/LAPACKE/utils/Makefile + echo 1 > $@ + + $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-compiled: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured Index: lang/julia10/files/patch-src_Makefile =================================================================== --- /dev/null +++ lang/julia10/files/patch-src_Makefile @@ -0,0 +1,20 @@ +--- src/Makefile.orig 2018-12-18 01:38:57 UTC ++++ src/Makefile +@@ -266,7 +266,7 @@ else + endif + + $(build_shlibdir)/libjulia-debug.$(JL_MAJOR_MINOR_SHLIB_EXT): $(SRCDIR)/julia.expmap $(DOBJS) $(BUILDDIR)/flisp/libflisp-debug.a $(BUILDDIR)/support/libsupport-debug.a $(LIBUV) +- @$(call PRINT_LINK, $(CXXLD) $(CXXFLAGS) $(CXXLDFLAGS) $(DEBUGFLAGS) $(DOBJS) $(RPATH_LIB) -o $@ $(LDFLAGS) $(JLIBLDFLAGS) $(DEBUG_LIBS) $(SONAME_DEBUG)) ++ @$(call PRINT_LINK, $(CXXLD) $(CXXFLAGS) $(CXXLDFLAGS) $(DEBUGFLAGS) $(DOBJS) $(RPATH_LIB) -o $@ $(LDFLAGS) $(JLIBLDFLAGS) $(DEBUG_LIBS) $(SONAME_DEBUG)) -lgcc_s + $(INSTALL_NAME_CMD)libjulia-debug.$(SHLIB_EXT) $@ + ifneq ($(OS), WINNT) + @ln -sf libjulia-debug.$(JL_MAJOR_MINOR_SHLIB_EXT) $(build_shlibdir)/libjulia-debug.$(JL_MAJOR_SHLIB_EXT) +@@ -281,7 +281,7 @@ $(BUILDDIR)/libjulia-debug.a: $(SRCDIR)/julia.expmap $ + libjulia-debug: $(build_shlibdir)/libjulia-debug.$(JL_MAJOR_MINOR_SHLIB_EXT) $(PUBLIC_HEADER_TARGETS) + + $(build_shlibdir)/libjulia.$(JL_MAJOR_MINOR_SHLIB_EXT): $(SRCDIR)/julia.expmap $(OBJS) $(BUILDDIR)/flisp/libflisp.a $(BUILDDIR)/support/libsupport.a $(LIBUV) +- @$(call PRINT_LINK, $(CXXLD) $(CXXFLAGS) $(CXXLDFLAGS) $(SHIPFLAGS) $(OBJS) $(RPATH_LIB) -o $@ $(LDFLAGS) $(JLIBLDFLAGS) $(RELEASE_LIBS) $(SONAME)) ++ @$(call PRINT_LINK, $(CXXLD) $(CXXFLAGS) $(CXXLDFLAGS) $(SHIPFLAGS) $(OBJS) $(RPATH_LIB) -o $@ $(LDFLAGS) $(JLIBLDFLAGS) $(RELEASE_LIBS) $(SONAME)) -lgcc_s + $(INSTALL_NAME_CMD)libjulia.$(SHLIB_EXT) $@ + ifneq ($(OS), WINNT) + @ln -sf libjulia.$(JL_MAJOR_MINOR_SHLIB_EXT) $(build_shlibdir)/libjulia.$(JL_MAJOR_SHLIB_EXT) Index: lang/julia10/pkg-message =================================================================== --- /dev/null +++ lang/julia10/pkg-message @@ -0,0 +1,9 @@ +[ +{ type: install + message: <