Index: head/lang/julia/Makefile =================================================================== --- head/lang/julia/Makefile (revision 472416) +++ head/lang/julia/Makefile (revision 472417) @@ -1,123 +1,124 @@ # Created by: Iblis Lin # $FreeBSD$ PORTNAME= julia PORTVERSION= 0.6.3 DISTVERSIONSUFFIX= -full +PORTREVISION= 1 CATEGORIES= lang math MASTER_SITES= https://github.com/JuliaLang/julia/releases/download/v${PORTVERSION}/ 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 \ libmpfr.so:math/mpfr \ libopenblasp.so:math/openblas \ libpcre2-8.so:devel/pcre2 \ libutf8proc.so:textproc/utf8proc BUILD_DEPENDS= patchelf:sysutils/patchelf \ pcre2-config:devel/pcre2 USES= gmake compiler:c++11-lib fortran USE_LDCONFIG= yes WRKSRC= ${WRKDIR}/${PORTNAME} ALL_TARGET= default INSTALL_TARGET= install TEST_TARGET= test PLIST_SUB= VERSION="${PORTVERSION:R}" \ SOVERSION="${PORTVERSION}" CXXFLAGS+= -stdlib=libc++ -std=c++11 MAKE_ARGS+= prefix=${PREFIX} JCXXFLAGS="${CXXFLAGS}" \ FORCE_ASSERTIONS=${FORCE_ASSERTIONS} \ USE_SYSTEM_CURL=1 \ USE_GPL_LIBS=${USE_GPL_LIBS} OPTIONS_DEFINE= EXAMPLES DEBUG DOCS GPL_LIBS DESKTOP NATIVE OPTIONS_DEFAULT= SYSLIBM OPTIONS_GROUP= PRIVATE OPTIONS_GROUP_PRIVATE= ARPACK LLVM 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 PORTDOCS= html DOCS_VARS= INSTALL_TARGET+=install-docs PORTEXAMPLES= * EXAMPLES_VARS= INSTALL_TARGET+=install-examples GPL_LIBS_DESC= Build with GPL libs: FFTW and SUITESPARSE GPL_LIBS_LIB_DEPENDS= libfftw3.so:math/fftw3 \ libfftw3f.so:math/fftw3-float GPL_LIBS_MAKE_ARGS= USE_SYSTEM_SUITESPARSE=0 GPL_LIBS_VARS= USE_GPL_LIBS=1 DESKTOP_DESC= Install icon, .desktop and appdata files DESKTOP_VARS= INSTALL_TARGET+=install-desktop \ INSTALLS_ICONS=yes ARPACK_DESC= Build self-shipped private arpack-ng ARPACK_MAKE_ARGS= USE_SYSTEM_ARPACK=0 ARPACK_MAKE_ARGS_OFF= USE_SYSTEM_ARPACK=1 ARPACK_LIB_DEPENDS_OFF= libarpack.so:math/arpack-ng LLVM_DESC= Build self-shipped private LLVM LLVM_MAKE_ARGS= USE_SYSTEM_LLVM=0 LLVM_MAKE_ARGS_OFF= USE_SYSTEM_LLVM=1 LLVM_CONFIG=llvm-config40 LLVM_BUILD_DEPENDS= cmake:devel/cmake LLVM_BUILD_DEPENDS_OFF= llvm-config40:devel/llvm40 LLVM_USES= python:build perl5 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 .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} .if ${ARCH} == "i386" EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ui_Makefile .endif post-configure: ${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 \ ) .include Index: head/lang/julia/files/patch-Make.inc =================================================================== --- head/lang/julia/files/patch-Make.inc (revision 472416) +++ head/lang/julia/files/patch-Make.inc (revision 472417) @@ -1,60 +1,60 @@ ---- Make.inc.orig 2017-06-19 17:48:45 UTC +--- Make.inc.orig 2018-05-27 21:19:34 UTC +++ Make.inc -@@ -133,12 +133,7 @@ endif +@@ -134,12 +134,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 -@@ -183,7 +178,7 @@ libdir := $(prefix)/lib +@@ -184,7 +179,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 -@@ -197,7 +192,7 @@ build_libdir := $(build_prefix)/lib +@@ -198,7 +193,7 @@ build_libdir := $(build_prefix)/lib build_libexecdir := $(build_prefix)/libexec build_datarootdir := $(build_prefix)/share build_docdir := $(build_datarootdir)/doc/julia -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 -@@ -350,7 +345,7 @@ endif +@@ -351,7 +346,7 @@ endif ifeq ($(USEIFC), 1) FC := ifort else -FC := $(CROSS_COMPILE)gfortran +FC ?= $(CROSS_COMPILE)gfortran endif STDLIBCPP_FLAG := -@@ -403,14 +398,14 @@ SHIPFLAGS := -O3 -ggdb2 -falign-functions +@@ -404,14 +399,14 @@ 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 JCXXFLAGS := -pipe $(fPIC) -fno-rtti -pedantic DEBUGFLAGS := -O0 -g -DJL_DEBUG_BUILD -fstack-protector-all -SHIPFLAGS := -O3 -g +SHIPFLAGS := -O3 ifeq ($(OS), Darwin) ifeq ($(USE_LIBCPP), 1) MACOSX_VERSION_MIN := 10.8 Index: head/lang/julia/files/patch-Makefile =================================================================== --- head/lang/julia/files/patch-Makefile (revision 472416) +++ head/lang/julia/files/patch-Makefile (revision 472417) @@ -1,100 +1,100 @@ ---- Makefile.orig 2017-06-19 17:48:45 UTC +--- Makefile.orig 2018-05-27 21:19:34 UTC +++ Makefile -@@ -71,7 +71,6 @@ $(build_prefix)/.examples: $(wildcard $( +@@ -71,7 +71,6 @@ $(build_prefix)/.examples: $(wildcard $(JULIAHOME)/exa @mkdir -p $(build_docdir)/examples @cp -R $(JULIAHOME)/examples/*.jl $(build_docdir)/examples/ @cp -R $(JULIAHOME)/examples/clustermanager $(build_docdir)/examples/ - @cp -R $(JULIAHOME)/examples/embedding $(build_docdir)/examples @echo 1 > $@ julia-symlink: julia-ui-$(JULIA_BUILD_MODE) -@@ -96,7 +95,7 @@ julia-src-release julia-src-debug : juli +@@ -96,7 +95,7 @@ julia-src-release julia-src-debug : julia-src-% : juli julia-ui-release julia-ui-debug : julia-ui-% : julia-src-% @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/ui julia-$* -julia-inference : julia-base julia-ui-$(JULIA_BUILD_MODE) $(build_prefix)/.examples +julia-inference : julia-base julia-ui-$(JULIA_BUILD_MODE) @$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT) $(build_private_libdir)/inference.ji JULIA_BUILD_MODE=$(JULIA_BUILD_MODE) ifneq ($(CPUID_SPECIFIC_BINARIES), 0) -@@ -332,7 +331,7 @@ define stringreplace +@@ -333,7 +332,7 @@ define stringreplace $(build_depsbindir)/stringreplace $$(strings -t x - $1 | grep '$2' | awk '{print $$1;}') '$3' 255 "$(call cygpath_w,$1)" endef -install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html +install: $(build_depsbindir)/stringreplace @$(MAKE) $(QUIET_MAKE) all @for subdir in $(bindir) $(datarootdir)/julia/site/$(VERSDIR) $(docdir) $(man1dir) $(includedir)/julia $(libdir) $(private_libdir) $(sysconfdir); do \ mkdir -p $(DESTDIR)$$subdir; \ -@@ -377,9 +376,6 @@ endif +@@ -378,9 +377,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 $(build_docdir)/* $(DESTDIR)$(docdir)/ - cp -R -L $(BUILDROOT)/doc/_build/html $(DESTDIR)$(docdir)/ # Remove perf suite -rm -rf $(DESTDIR)$(datarootdir)/julia/test/perf/ # Remove various files which should not be installed -@@ -387,38 +383,44 @@ endif +@@ -388,37 +384,43 @@ endif -rm -f $(DESTDIR)$(datarootdir)/julia/test/Makefile # 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)) + # Update RPATH entries and JL_SYSTEM_IMAGE_PATH if $(libdir_rel) != $(private_libdir_rel) +ifneq ($(libdir_rel),$(private_libdir_rel)) ifeq ($(OS), Darwin) for julia in $(DESTDIR)$(bindir)/julia* ; do \ install_name_tool -rpath @executable_path/$(build_private_libdir_rel) @executable_path/$(private_libdir_rel) $$julia; \ install_name_tool -add_rpath @executable_path/$(build_libdir_rel) @executable_path/$(libdir_rel) $$julia; \ done -else ifneq (,$(findstring $(OS),Linux FreeBSD)) +else for julia in $(DESTDIR)$(bindir)/julia* ; do \ - patchelf --set-rpath '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $$julia; \ +- patchelf --set-rpath '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $$julia; \ ++ patchelf --set-rpath '$(GCCPATH):$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $$julia; \ done endif - - # Overwrite JL_SYSTEM_IMAGE_PATH in julia library - $(call stringreplace,$(DESTDIR)$(libdir)/libjulia.$(SHLIB_EXT),sys.$(SHLIB_EXT)$$,$(private_libdir_rel)/sys.$(SHLIB_EXT)) - $(call stringreplace,$(DESTDIR)$(libdir)/libjulia-debug.$(SHLIB_EXT),sys-debug.$(SHLIB_EXT)$$,$(private_libdir_rel)/sys-debug.$(SHLIB_EXT)) 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-examples: + mkdir -p $(DESTDIR)$(datarootdir)/examples/julia/ + cp -R -L $(JULIAHOME)/examples/* $(DESTDIR)$(datarootdir)/examples/julia/ + +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 dist-clean: -rm -fr $(BUILDROOT)/julia-*.tar.gz $(BUILDROOT)/julia*.exe $(BUILDROOT)/julia-*.7z $(BUILDROOT)/julia-$(JULIA_COMMIT) - Index: head/lang/julia/files/patch-src_Makefile =================================================================== --- head/lang/julia/files/patch-src_Makefile (revision 472416) +++ head/lang/julia/files/patch-src_Makefile (revision 472417) @@ -1,20 +1,20 @@ ---- src/Makefile.orig 2017-06-19 17:48:45 UTC +--- src/Makefile.orig 2018-05-07 22:05:07 UTC +++ src/Makefile @@ -263,7 +263,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) -@@ -278,7 +278,7 @@ $(BUILDDIR)/libjulia-debug.a: $(SRCDIR)/ +@@ -278,7 +278,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)