libk  Check-in [cfbfa7fcca]

Overview
Comment:add libk-config
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: cfbfa7fccac75575af1e5c82b6cc8c0bad0e96d334884e2976cfadb00383e575
User & Date: lexi on 2020-05-20 14:27:24
Other Links: manifest | tags
Context
2020-05-20
17:40
fix markdown syntax check-in: ed18118c3c user: lexi tags: trunk
14:27
add libk-config check-in: cfbfa7fcca user: lexi tags: trunk
2020-03-04
12:47
tweak build infrastructure: global install script now respects prefix in all cases; update PKGBUILD to use install script correctly check-in: b6c435e95a user: lexi tags: trunk
Changes

Modified arch/posix.h from [1bb8ef8aa2] to [a61775181a].

whitespace changes only

Modified dist/PKGBUILD from [fbbd050911] to [db0797b3e0].

5
6
7
8
9
10
11










12
13
14
15
16
17
18
url='https://c.comint.su/libk'
license=(AGPL)
source=('https://c.comint.su/libk/tarball/trunk/libk.tar.gz')
md5sums=(SKIP)
arch=(i686 x86_64 aarch64 armv7l)
depends=()
makedepends=(binutils bash yasm)











build() {
	export os=lin library=both
	case $(uname -m) in
		# i have no idea why, but the "arch" environment variable name
		# appears tainted somehow, and gets blanked between here and
		# the call to the build script. ugly hack but it works







>
>
>
>
>
>
>
>
>
>







5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
url='https://c.comint.su/libk'
license=(AGPL)
source=('https://c.comint.su/libk/tarball/trunk/libk.tar.gz')
md5sums=(SKIP)
arch=(i686 x86_64 aarch64 armv7l)
depends=()
makedepends=(binutils bash yasm)

# the following fields should be uncommented in release tarballs and in
# libk build scripts submitted to the AUR or maybe eventually the Arch
# community repositories.

validpgpkeys=(
	BA8B6CB87AAF25B4F771C34CD8B3128C48456885
	1AA9AC700870CC08C8561BF9C24B9CD04DC6AE7F
)


build() {
	export os=lin library=both
	case $(uname -m) in
		# i have no idea why, but the "arch" environment variable name
		# appears tainted somehow, and gets blanked between here and
		# the call to the build script. ugly hack but it works

Added global/cc-invoke.m4 version [02c091706a].

















































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
_libk_shebang_
define(quot,"'"'$1'"'")dnl
# generated from /global/cc-invoke.m4 by install.sh

if test "$(echo -n)" = "-n"; then
	say() { echo $@' \c'; }
else
	say() { echo -n $@' '; }
fi

libk_libs() {
	if test "$static" != 1; then
		say quot(_libk_libdir_/kboot.o) quot(-L`'_libk_libdir_) -lk
	else
		say quot(_libk_libdir_/libk.a)
	fi
}

libk_cflags() {
	say quot(-I`'_libk_incdir_)
}

libk_static() {
	say _libk_libdir_/libk.a
}

libk_gcc() {
	say -ffreestanding -nostdlib 
}

libk_clang() {
	say -ffreestanding -nostdlibinc
}

usage() {
	echo "usage: $0 [flags]"
	echo "    $0 prints compiler flags necessary to compile libk programs."
	echo "    in general, you will need three kinds of flag sets:"
	echo "        linkage flags tell the compiler where to find libk binary libraries"
	echo "        for the final linking stage."
	echo "            --libs -l  : emit linkage flags"
	echo "            --static -s: modify emitted flags for static linking"
	echo "        compilation flags tell the compiler where to find headers."
	echo "            --cflags -c: emit compilation flags"
	echo "        compatibility flags set various compiler-specific options needed to"
	echo "        compile programs without the traditional C standard library."
	echo "            --gcc -g  : emit gcc-style compat flags"
	echo "            --clang -C: emit clang-style compat flags"
	echo "    $0 handles quoting automatically."
	exit 64
}

for a in $@; do
	case $a in
		*help|-h) usage ;;
		*newlines|-n)
			say() {
				for l in $@; do
					echo $l
				done
			};;
		*libs|-l)   fns="$fns libk_libs"   ;;
		*cflags|-c) fns="$fns libk_cflags" ;;
		*gcc|-g)    fns="$fns libk_gcc" ;;
		*clang|-C)  fns="$fns libk_clang" ;;
		*static|-s) static=1 ;;
	esac
done

for f in $fns; do
	$f
done

Modified install.sh from [bca498cfb3] to [973646497d].

5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
..
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53










54
# linux directory hierarchy on systems where this doesn't make sense.

check prefix 'a directory to install to'
build="${build:-out}"

bindir="${bindir:-$prefix/bin}"
libdir="${libdir:-$prefix/lib}"
incdir="${incdir:-$prefix/include}"
sharedir="${sharedir:-$prefix/share}"


say "commencing install"
say " - prefix: $prefix"
say " - destinations:"
say "   - binaries → $bindir"
say "   - libraries → $libdir"
say "   - headers → $incdir"
................................................................................
say "installing binaries"
# *.testbin files should not be installed
install -Dm755 -t "$bindir" "$build/kgraft.attach"

# Includes
say "installing headers"
for inc in "$build"/k/*; do
	install -Dm644 -t "$incdir/k" "$inc"
done

# Documentation
say "installing documentation"
for man in "$build"/doc/man/*; do
	install -Dm644 -t "$sharedir/man" "$man"
done
for html in "$build"/doc/html/*; do
	install -Dm644 -t "$sharedir/doc/libk/html" "$html"
done
for pdf in "$build"/doc/pdf/*; do
	install -Dm644 -t "$sharedir/doc/libk/pdf" "$pdf"
done










say "install complete"







|

>







 







|













>
>
>
>
>
>
>
>
>
>

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
..
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# linux directory hierarchy on systems where this doesn't make sense.

check prefix 'a directory to install to'
build="${build:-out}"

bindir="${bindir:-$prefix/bin}"
libdir="${libdir:-$prefix/lib}"
incdir="${incdir:-$prefix/include/k}"
sharedir="${sharedir:-$prefix/share}"
shebang="${shebang:-#!/usr/bin/env bash}"

say "commencing install"
say " - prefix: $prefix"
say " - destinations:"
say "   - binaries → $bindir"
say "   - libraries → $libdir"
say "   - headers → $incdir"
................................................................................
say "installing binaries"
# *.testbin files should not be installed
install -Dm755 -t "$bindir" "$build/kgraft.attach"

# Includes
say "installing headers"
for inc in "$build"/k/*; do
	install -Dm644 -t "$incdir" "$inc"
done

# Documentation
say "installing documentation"
for man in "$build"/doc/man/*; do
	install -Dm644 -t "$sharedir/man" "$man"
done
for html in "$build"/doc/html/*; do
	install -Dm644 -t "$sharedir/doc/libk/html" "$html"
done
for pdf in "$build"/doc/pdf/*; do
	install -Dm644 -t "$sharedir/doc/libk/pdf" "$pdf"
done

say "building libk-config utility"
m4 >"$bindir/libk-config" \
	-D"_libk_bindir_=$bindir" -D"_libk_libdir_=$libdir" \
	-D"_libk_incdir_=$incdir" -D"_libk_sharedir_=$sharedir" \
	-D"_libk_shebang_=$shebang" \
	global/cc-invoke.m4

chmod +x "$bindir/libk-config"

say "install complete"