mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
I called the flat view featuritis, but it turns out the dtksh build system depends on it. But it was broken, so let's make a proper version instead. This new approach does not symlink directories before make, but hardlinks files after make. To make performance tolerable, it requires a modern POSIX 'find' utility with '{} +'. bin/package, src/cmd/INIT/package.sh: - We're going to depend on 'test X -ef Y' to check if X is the same file as Y, so add that to the $min_posix checks even though it is not technically POSIX. But it's so close to universally available it doesn't really make a difference. - After 'make', create a flat view by hardlinking arch/$HOSTTYPE files, minus build system internals, onto their corresponding paths in $PACKAGEROOT. Fall back to symlinking if hardlinking fails (this would happen when crossing device boundaries). - Clean up flat view when doing clean/clobber. This is done by using 'find' to loop through the files in arch/ again and removing any root paths that are the same file as their corresponding arch/ path (this is where test X -ef Y comes in). Then delete arch/$HOSTTYPE, then delete empty directories left. - Check for the 'flat' qualifier when doing clean/clobber. If given, do not delete arch/$HOSTTYPE but only clean up the flat view and remove empty directories. src/cmd/INIT/Mamfile: - Do not create the lib/package directory. (re: beb3c64a) .gitignore: - Update. |
||
---|---|---|
.. | ||
ignore | ||
Mamfile_indent | ||
Mamfile_rm_unused_vars | ||
mamprobe | ||
package | ||
shtests | ||
silent |