summaryrefslogtreecommitdiff
path: root/lang/julia07/files/patch-Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'lang/julia07/files/patch-Makefile')
-rw-r--r--lang/julia07/files/patch-Makefile121
1 files changed, 121 insertions, 0 deletions
diff --git a/lang/julia07/files/patch-Makefile b/lang/julia07/files/patch-Makefile
new file mode 100644
index 000000000000..326d5d9a3ddb
--- /dev/null
+++ b/lang/julia07/files/patch-Makefile
@@ -0,0 +1,121 @@
+--- Makefile.orig 2018-08-02 19:21:47 UTC
++++ Makefile
+@@ -266,24 +266,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
+@@ -316,8 +298,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
+- @$(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
+@@ -359,10 +340,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
+@@ -376,24 +353,11 @@ 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
+ # 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))
+ ifeq ($(OS), Darwin)
+@@ -403,7 +367,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
+
+@@ -414,22 +378,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 dist-clean:
+ -rm -fr $(BUILDROOT)/julia-*.tar.gz $(BUILDROOT)/julia*.exe $(BUILDROOT)/julia-*.7z $(BUILDROOT)/julia-$(JULIA_COMMIT)