WIP: git submodules #45

Closed
tasiaiso wants to merge 21 commits from tasiaiso/tildefriends:submodules into main
Contributor

wip

todo:

  • lit
  • prettier (wip)
  • speedscope
  • sqlite
wip todo: - lit - prettier (wip) - speedscope - sqlite
tasiaiso added 14 commits 2024-03-21 20:41:56 -04:00
tasiaiso added 1 commit 2024-03-21 20:57:40 -04:00
Owner

Interesting. Does make dist still produce a tarball with enough dependencies to build?

Interesting. Does `make dist` still produce a tarball with enough dependencies to build?
tasiaiso added 1 commit 2024-03-22 05:02:14 -04:00
Author
Contributor

Should there be a copy of openssl at deps/openssl ? I see references to his in GNUMakefile, but it's not in the repo.

What are the tools/ssl-*binaries ?

I get this error when running make with the Android SDK, even though those binaries are there

[android_version] src/android/AndroidManifest.xml
make: tools/ssl-android: No such file or directory
make: *** [GNUmakefile:825: deps/openssl/android/arm64-v8a/usr/local/lib/libssl.a] Error 127
make: *** Waiting for unfinished jobs....

What flavor and version of javac should the app be compiled with ?

Should there be a copy of openssl at deps/openssl ? I see references to his in GNUMakefile, but it's not in the repo. What are the `tools/ssl-*`binaries ? I get this error when running `make` with the Android SDK, even though those binaries are there ``` [android_version] src/android/AndroidManifest.xml make: tools/ssl-android: No such file or directory make: *** [GNUmakefile:825: deps/openssl/android/arm64-v8a/usr/local/lib/libssl.a] Error 127 make: *** Waiting for unfinished jobs.... ``` What flavor and version of javac should the app be compiled with ?
Owner

For Android and iOS where there aren't provided openssl libs, those scripts in tools fetch and build it. Not sure what's up with that error. Is it actually complaining about the shebang?

javac??? I'll check what I have in a bit.

For Android and iOS where there aren't provided openssl libs, those scripts in tools fetch and build it. Not sure what's up with that error. Is it actually complaining about the shebang? javac??? I'll check what I have in a bit.
Owner

On one debian bookworm machine I see javac 17.0.10 coming from openjdk-17-jdk-headless.

On one debian bookworm machine I see `javac 17.0.10` coming from `openjdk-17-jdk-headless`.
tasiaiso added 5 commits 2024-03-22 15:26:09 -04:00
Author
Contributor

I'm not familiar with makefiles yet and I just don't understand what this does

ANDROID_DEPS := deps/openssl/android/arm64-v8a/usr/local/lib/libssl.a
$(ANDROID_DEPS):
	+@tools/ssl-android
$(filter $(BUILD_DIR)/android%,$(APP_OBJS)): | $(ANDROID_DEPS)

Can you run make clean and make dist on this branch and get it to work ?

I'm not familiar with makefiles yet and I just don't understand what this does ``` ANDROID_DEPS := deps/openssl/android/arm64-v8a/usr/local/lib/libssl.a $(ANDROID_DEPS): +@tools/ssl-android $(filter $(BUILD_DIR)/android%,$(APP_OBJS)): | $(ANDROID_DEPS) ``` Can you run `make clean` and `make dist` on this branch and get it to work ?
Owner

I'm definitely no makefile expert.

The goal of that block is just to run tools/ssl-android before attempting to build any of the android .o files.

ANDROID_DEPS is just set to an arbitrary file that is built as part of ssl. The + causes the call to make inside the script to re-use the outer make process. The filter is just generating a list of all the android .o targets, and the |turns it into an order-only dependency.

I stripped all the android/ios stuff from the dist target, and running make dist currently gives me:

find: ‘deps/codemirror/’: No such file or directory
find: ‘deps/lit/’: No such file or directory
[archive] dist/tildefriends-0.0.17-wip.tar.xz
fatal: not a valid object name: main
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
I'm definitely no makefile expert. The goal of that block is just to run `tools/ssl-android` before attempting to build any of the android .o files. ANDROID_DEPS is just set to an arbitrary file that is built as part of ssl. The `+` causes the call to `make` inside the script to re-use the outer `make` process. The filter is just generating a list of all the android `.o` targets, and the `|`turns it into an order-only dependency. I stripped all the android/ios stuff from the `dist` target, and running `make dist` currently gives me: ``` find: ‘deps/codemirror/’: No such file or directory find: ‘deps/lit/’: No such file or directory [archive] dist/tildefriends-0.0.17-wip.tar.xz fatal: not a valid object name: main tar: This does not look like a tar archive tar: Exiting with failure status due to previous errors ```
Author
Contributor

Run make fetch ?

Run `make fetch` ?
Owner

I don't have a make fetch? I saw your tools/install_dependencies.sh which addressed one of the errors.

I like this in concept, though I'd rather track the releases of possibly all these dependencies rather than latest.

It looks like I can do something like https://stackoverflow.com/questions/5482544/how-can-i-use-git-archive-to-include-submodules-from-a-bare-repository to meet my archiving desires.

I can plan to spend some time with this soon and get something into main.

I don't have a `make fetch`? I saw your `tools/install_dependencies.sh` which addressed one of the errors. I like this in concept, though I'd rather track the releases of possibly all these dependencies rather than latest. It looks like I can do something like https://stackoverflow.com/questions/5482544/how-can-i-use-git-archive-to-include-submodules-from-a-bare-repository to meet my archiving desires. I can plan to spend some time with this soon and get something into main.
Author
Contributor

It's make fetchdeps sorry

GNUmakefile Line 812 in e00f73e1d5
fetchdeps:

I made that script before I knew that stuff was handled by make fetchdeps, it's hzeless now and I'll remove it later.

They are submodules, but I've pinned them to the commit that corresponds to the release that was installed before I touched anything. See b1c8b51377

To update a submodule you have to go in it's directory and checkout to the tag or the commit that you want.

It's `make fetchdeps` sorry https://dev.tildefriends.net/cory/tildefriends/src/commit/e00f73e1d517f5a1e022cc5b3d401b7b7243dc04/GNUmakefile#L812 I made that script before I knew that stuff was handled by `make fetchdeps`, it's hzeless now and I'll remove it later. They are submodules, but I've pinned them to the commit that corresponds to the release that was installed before I touched anything. See https://dev.tildefriends.net/cory/tildefriends/commit/b1c8b51377423a2c9e56f61017299e66aca32078 To update a submodule you have to go in it's directory and checkout to the tag or the commit that you want.
Owner

Hope you don't mind - I manually redid the first bits of this so that I could understand the process: c5cb9979d3 and 7d182db32f.

Hope you don't mind - I manually redid the first bits of this so that I could understand the process: c5cb9979d39f1268b1c60b9a1d7417be68622615 and 7d182db32fa2e1d7ed689fd27714eae48cd24abf.
Author
Contributor

@cory Can I close this ? Did you implement everything in this PR yourself ?

@cory Can I close this ? Did you implement everything in this PR yourself ?
Owner

Yep, I think we've done everything that can be done from this for now. Closing. Thanks.

Yep, I think we've done everything that can be done from this for now. Closing. Thanks.
cory closed this pull request 2024-05-30 12:12:03 -04:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cory/tildefriends#45
No description provided.