Opened 7 years ago

Closed 6 years ago

Last modified 5 years ago

#19673 closed enhancement (fixed)

Makefile for OSX app

Reported by: vbraun Owned by:
Priority: major Milestone: sage-6.10
Component: build Keywords:
Cc: fbissey Merged in:
Authors: Volker Braun, Ivan Andrus Reviewers: Volker Braun, Ivan Andrus
Report Upstream: N/A Work issues:
Branch: 99c31b7 (Commits, GitHub, GitLab) Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by vbraun)

Move the OSX app.dmg build to src/mac-app/Makefile

This is a further step to saner binary creation. The makefile is already used in the binary builds, this ticket just documents that fact.

Change History (19)

comment:1 Changed 7 years ago by vbraun

  • Component changed from PLEASE CHANGE to build
  • Description modified (diff)
  • Type changed from PLEASE CHANGE to enhancement

comment:2 Changed 7 years ago by vbraun

  • Branch set to u/vbraun/makefile_for_osx_app

comment:3 Changed 7 years ago by vbraun

  • Authors set to Volker Braun
  • Cc fbissey added
  • Commit set to c9233d2a916b30877c009841b54fb22204395a8b
  • Status changed from new to needs_review

New commits:

c9233d2Makefile for building the mac app

comment:4 Changed 7 years ago by jdemeyer

  • Status changed from needs_review to needs_work

Shouldn't the "branch inside sage-bdist" be changed to call this new Makefile instead?

comment:5 follow-up: Changed 7 years ago by vbraun

  • Status changed from needs_work to needs_review

sage-bdist will be deleted when the transition to the new binary packging is done, so no need to beautify it. It still would be nice to use the new mac app Makefile during the transition.

comment:6 Changed 7 years ago by vbraun

  • Description modified (diff)

comment:7 Changed 7 years ago by vbraun

Still needs review...

comment:8 in reply to: ↑ 5 Changed 7 years ago by jdemeyer

Replying to vbraun:

sage-bdist will be deleted when the transition to the new binary packging is done

Let me know when this happens.

comment:9 Changed 7 years ago by vbraun

The new binary packaging is done, all OSX binaries use the Makefile that is introduced here.

comment:10 Changed 6 years ago by iandrus

  • Authors changed from Volker Braun to Volker Braun, Ivan Andrus
  • Branch changed from u/vbraun/makefile_for_osx_app to u/iandrus/makefile_for_osx_app
  • Commit changed from c9233d2a916b30877c009841b54fb22204395a8b to db0c354f9f8d4cfb7e16f35d662dffa24cd05856

I made a few small improvements and fixed two bugs. I also took the liberty of rebasing onto the latest develop. The two bugs fixed were that rebuilding the app portion would cause Sage.app to be copied inside the already existant Sage-VERSION.app. The other was that rsync would rerun every time even though there was nothing to be copied.

Also, the rsync command copies the .git folder. This doesn't seem desirable to me, but perhaps it was intended, so I put it as the last commit. Thus if you want to push all but that commit you can.


New commits:

c066dafMakefile for building the mac app
2a18cf5Improve the Mac app Makefile
105edb2Prevent copying Sage.app inside the versioned app
db0c354Exclude .git/ from Mac app

comment:11 Changed 6 years ago by mgoerner

I tried it out on Mac OS X 10.11.3 and it works like a charm.

The Makefile has (almost) not a single comment in it and at least I would find it helpful if it had comments about

  • what it is basically for: it is producing a dmg containing the Sage App, to be called directly with make and after sage itself has already been build with make at the root
  • the relocability of the resulting App (as far as I understand, the path where we compiled sage needs to be longer than the relocation target?)
  • whether the binaries compiled previously by calling make at the root are suitable for distribution to older processors which might not have all the capabilities of the host machine
  • maybe a line explaining the $(APP) target

comment:12 Changed 6 years ago by jdemeyer

I mostly agree with this. It's a Makefile which is basically hidden in src/mac-app with no clear interface. And the relation between sage-bdist and this Makefile should be made more clear.

comment:13 Changed 6 years ago by vbraun

  • Branch changed from u/iandrus/makefile_for_osx_app to u/vbraun/makefile_for_osx_app

comment:14 Changed 6 years ago by vbraun

  • Commit changed from db0c354f9f8d4cfb7e16f35d662dffa24cd05856 to 99c31b7aa4ecfc79cf5585ecc36bebf34399676b

I've added the documentation. Ivan's changes are good.


New commits:

b8e4403Fix dot-gitignore name
fe235fcAlso exclude the upstream folder
99c31b7Comment the Mac App Makefile

comment:15 Changed 6 years ago by vbraun

  • Reviewers set to Volker Braun, Ivan Andrus

comment:16 Changed 6 years ago by iandrus

  • Status changed from needs_review to positive_review

comment:17 Changed 6 years ago by vbraun

  • Branch changed from u/vbraun/makefile_for_osx_app to 99c31b7aa4ecfc79cf5585ecc36bebf34399676b
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:18 follow-up: Changed 6 years ago by mgoerner

  • Commit 99c31b7aa4ecfc79cf5585ecc36bebf34399676b deleted

I guess we should remove the following line from https://github.com/sagemath/binary-pkg/blob/master/sage.yaml now:

cp ../../sage-osx-makefile {path}/src/mac-app/Makefile

comment:19 in reply to: ↑ 18 Changed 5 years ago by kcrisman

I guess we should remove the following line from https://github.com/sagemath/binary-pkg/blob/master/sage.yaml now:

cp ../../sage-osx-makefile {path}/src/mac-app/Makefile

For full reference ... that was done at this commit.

Note: See TracTickets for help on using tickets.