-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not use submodules? #7
Comments
Hello, Thanks for the suggestion.
We actually have something similar among Dreamtonics' private repos. It is used for building the synthesis backend, which has a dozen of components. Unfortunately that also contains a few internal libs so we can't release it. However, the current Here's an example of the packaging makefile. TARGETS = build-a build-b build-c
DIST = /usr
build-a:
cd a && make $(DEPS) $(CONFIG) default && make PREFIX=$(DIST) install && cd ..
build-b:
cd b && make $(DEPS) $(CONFIG) default && make PREFIX=$(DIST) install && cd ..
build-c:
cd c && make $(DEPS) $(CONFIG) default && make PREFIX=$(DIST) install && cd .. Hope it helps. |
Just now I realized that readme hasn't been updated. There used to be submodules, but they are gone in a0803ed. Sorry for the confusion. |
OK, so you don't really want to use the submodules structure anymore? I can adjust my PR #6 accordingly. |
This is an antithesis to #6 point 1 and a discussion starter.
Using submodules for this kind of dependency management is a little bit controversial, because it has significant drawbacks if your dependency tree becomes more complex. i.e. if you have three libraries and their dependencies
libA
libB
libC
libB
libC
libA
andlibB
would both need to havelibC
as a submodule in their filetree, which produces duplicate code, confusion about which submodule is used, and potential conflicts if the dependencies do not match up exactly.As an alternative, a flat directory structure with both
libpyin
andlibgvps
on the top level can be used. This is how UNIX systems manage their/usr/lib
content. In this case the path inMakefile
would readand the installation instructions in
README
would read something likecompared to
and
The text was updated successfully, but these errors were encountered: