mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +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.
42 lines
402 B
Text
42 lines
402 B
Text
# Project-specific files
|
|
arch
|
|
tgz
|
|
lcl
|
|
|
|
# Flat make libs, binaries, etc
|
|
/bin/.paths
|
|
/bin/crossexec
|
|
/bin/execrate
|
|
/bin/filter
|
|
/bin/iffe
|
|
/bin/ksh
|
|
/bin/mamake
|
|
/bin/proto
|
|
/bin/mktest
|
|
/bin/pty
|
|
/bin/regress
|
|
/bin/rt
|
|
/bin/shcomp
|
|
/bin/suid_exec
|
|
/fun/
|
|
/include/
|
|
/lib/file/
|
|
/lib/*.a
|
|
/man/
|
|
|
|
# Miscellaneous artefacts
|
|
*.bak
|
|
*.sav
|
|
*.old
|
|
*.orig
|
|
.*.swp
|
|
*.DS_Store
|
|
*~
|
|
.nfs*
|
|
*.tmp
|
|
*.rej
|
|
*.project
|
|
*.core
|
|
core
|
|
**/#*#
|
|
tags
|