Compare commits
4 Commits
33ff253d52
...
be80075e95
Author | SHA1 | Date |
---|---|---|
![]() |
be80075e95 | |
|
4c2cfc54ac | |
![]() |
0f625a86ee | |
![]() |
8e1397f5a2 |
31
Makefile
31
Makefile
|
@ -17,9 +17,13 @@ ifeq ($(ARCH),$(filter $(ARCH),arm64))
|
||||||
override ARCH = aarch64
|
override ARCH = aarch64
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LIBDIR := /lib
|
prefix = /usr
|
||||||
INCLUDEDIR := /usr/include
|
libdir = ${prefix}/lib
|
||||||
PKGCONFIGDIR := /usr/lib/pkgconfig
|
shared_libdir = ${libdir}
|
||||||
|
static_libdir = ${libdir}
|
||||||
|
includedir = ${prefix}/include
|
||||||
|
pkgconfigdir = ${prefix}/lib/pkgconfig
|
||||||
|
|
||||||
CFLAGS ?= -ggdb3 -O2 -Wall
|
CFLAGS ?= -ggdb3 -O2 -Wall
|
||||||
CPPFLAGS := -Iinclude -Iarch/${ARCH} -Iarch/common
|
CPPFLAGS := -Iinclude -Iarch/${ARCH} -Iarch/common
|
||||||
ifneq ($(shell uname),Darwin)
|
ifneq ($(shell uname),Darwin)
|
||||||
|
@ -79,8 +83,8 @@ else
|
||||||
endif
|
endif
|
||||||
LIBUCONTEXT_STATIC_NAME = libucontext.a
|
LIBUCONTEXT_STATIC_NAME = libucontext.a
|
||||||
LIBUCONTEXT_PC = libucontext.pc
|
LIBUCONTEXT_PC = libucontext.pc
|
||||||
LIBUCONTEXT_PATH = ${LIBDIR}/${LIBUCONTEXT_SONAME}
|
LIBUCONTEXT_PATH = ${shared_libdir}/${LIBUCONTEXT_SONAME}
|
||||||
LIBUCONTEXT_STATIC_PATH = ${LIBDIR}/${LIBUCONTEXT_STATIC_NAME}
|
LIBUCONTEXT_STATIC_PATH = ${static_libdir}/${LIBUCONTEXT_STATIC_NAME}
|
||||||
LIBUCONTEXT_HEADERS = \
|
LIBUCONTEXT_HEADERS = \
|
||||||
include/libucontext/libucontext.h \
|
include/libucontext/libucontext.h \
|
||||||
include/libucontext/bits.h
|
include/libucontext/bits.h
|
||||||
|
@ -89,8 +93,8 @@ LIBUCONTEXT_EXAMPLES = \
|
||||||
LIBUCONTEXT_POSIX_STATIC_NAME = libucontext_posix.a
|
LIBUCONTEXT_POSIX_STATIC_NAME = libucontext_posix.a
|
||||||
LIBUCONTEXT_POSIX_C_SRC = libucontext_posix.c
|
LIBUCONTEXT_POSIX_C_SRC = libucontext_posix.c
|
||||||
LIBUCONTEXT_POSIX_OBJ = ${LIBUCONTEXT_POSIX_C_SRC:.c=.o}
|
LIBUCONTEXT_POSIX_OBJ = ${LIBUCONTEXT_POSIX_C_SRC:.c=.o}
|
||||||
LIBUCONTEXT_POSIX_PATH = ${LIBDIR}/${LIBUCONTEXT_POSIX_SONAME}
|
LIBUCONTEXT_POSIX_PATH = ${shared_libdir}/${LIBUCONTEXT_POSIX_SONAME}
|
||||||
LIBUCONTEXT_POSIX_STATIC_PATH = ${LIBDIR}/${LIBUCONTEXT_POSIX_STATIC_NAME}
|
LIBUCONTEXT_POSIX_STATIC_PATH = ${static_libdir}/${LIBUCONTEXT_POSIX_STATIC_NAME}
|
||||||
|
|
||||||
ifeq ($(FREESTANDING),yes)
|
ifeq ($(FREESTANDING),yes)
|
||||||
LIBUCONTEXT_POSIX_NAME =
|
LIBUCONTEXT_POSIX_NAME =
|
||||||
|
@ -119,8 +123,9 @@ ${LIBUCONTEXT_SONAME}: ${LIBUCONTEXT_NAME}
|
||||||
|
|
||||||
${LIBUCONTEXT_PC}: libucontext.pc.in
|
${LIBUCONTEXT_PC}: libucontext.pc.in
|
||||||
sed -e s:@LIBUCONTEXT_VERSION@:${LIBUCONTEXT_VERSION}:g \
|
sed -e s:@LIBUCONTEXT_VERSION@:${LIBUCONTEXT_VERSION}:g \
|
||||||
-e s:@LIBUCONTEXT_LIBDIR@:${LIBDIR}:g \
|
-e s:@LIBUCONTEXT_SHARED_LIBDIR@:${shared_libdir}:g \
|
||||||
-e s:@LIBUCONTEXT_INCLUDEDIR@:${INCLUDEDIR}:g $< > $@
|
-e s:@LIBUCONTEXT_STATIC_LIBDIR@:${static_libdir}:g \
|
||||||
|
-e s:@LIBUCONTEXT_INCLUDEDIR@:${includedir}:g $< > $@
|
||||||
|
|
||||||
MANPAGES_SYMLINKS_3 = \
|
MANPAGES_SYMLINKS_3 = \
|
||||||
libucontext_getcontext.3 \
|
libucontext_getcontext.3 \
|
||||||
|
@ -204,13 +209,13 @@ clean: docs_clean
|
||||||
install: all
|
install: all
|
||||||
install -D -m755 ${LIBUCONTEXT_NAME} ${DESTDIR}${LIBUCONTEXT_PATH}
|
install -D -m755 ${LIBUCONTEXT_NAME} ${DESTDIR}${LIBUCONTEXT_PATH}
|
||||||
install -D -m664 ${LIBUCONTEXT_STATIC_NAME} ${DESTDIR}${LIBUCONTEXT_STATIC_PATH}
|
install -D -m664 ${LIBUCONTEXT_STATIC_NAME} ${DESTDIR}${LIBUCONTEXT_STATIC_PATH}
|
||||||
ln -sf ${LIBUCONTEXT_SONAME} ${DESTDIR}${LIBDIR}/${LIBUCONTEXT_NAME}
|
ln -sf ${LIBUCONTEXT_SONAME} ${DESTDIR}${shared_libdir}/${LIBUCONTEXT_NAME}
|
||||||
for i in ${LIBUCONTEXT_HEADERS}; do \
|
for i in ${LIBUCONTEXT_HEADERS}; do \
|
||||||
destfn=$$(echo $$i | sed s:include/::g); \
|
destfn=$$(echo $$i | sed s:include/::g); \
|
||||||
install -D -m644 $$i ${DESTDIR}${INCLUDEDIR}/$$destfn; \
|
install -D -m644 $$i ${DESTDIR}${includedir}/$$destfn; \
|
||||||
done
|
done
|
||||||
install -D -m644 ${LIBUCONTEXT_PC} ${DESTDIR}${PKGCONFIGDIR}/${LIBUCONTEXT_PC}
|
install -D -m644 ${LIBUCONTEXT_PC} ${DESTDIR}${pkgconfigdir}/${LIBUCONTEXT_PC}
|
||||||
if [ -n ${LIBUCONTEXT_POSIX_NAME} ]; then \
|
if [ -n "${LIBUCONTEXT_POSIX_NAME}" ]; then \
|
||||||
install -D -m755 ${LIBUCONTEXT_POSIX_NAME} ${DESTDIR}${LIBUCONTEXT_POSIX_PATH}; \
|
install -D -m755 ${LIBUCONTEXT_POSIX_NAME} ${DESTDIR}${LIBUCONTEXT_POSIX_PATH}; \
|
||||||
install -D -m644 ${LIBUCONTEXT_POSIX_STATIC_NAME} ${DESTDIR}${LIBUCONTEXT_POSIX_STATIC_PATH}; \
|
install -D -m644 ${LIBUCONTEXT_POSIX_STATIC_NAME} ${DESTDIR}${LIBUCONTEXT_POSIX_STATIC_PATH}; \
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
scdoc = find_program('scdoc', required: true)
|
||||||
|
|
||||||
|
custom_target(
|
||||||
|
'libucontext.3',
|
||||||
|
output: 'libucontext.3',
|
||||||
|
input: 'libucontext.scd',
|
||||||
|
command: [ scdoc ],
|
||||||
|
feed: true,
|
||||||
|
capture: true,
|
||||||
|
install: true,
|
||||||
|
install_dir: get_option('mandir') / 'man3'
|
||||||
|
)
|
||||||
|
|
||||||
|
if meson.version().version_compare('>=0.61.0')
|
||||||
|
foreach link : [ 'get', 'make', 'set', 'swap' ]
|
||||||
|
install_symlink('libucontext_' + link + 'context.3',
|
||||||
|
pointing_to: 'libucontext.3',
|
||||||
|
install_dir: get_option('mandir') / 'man3'
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
endif
|
|
@ -4,9 +4,17 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <libucontext/bits.h>
|
#include <libucontext/bits.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
int libucontext_getcontext(libucontext_ucontext_t *);
|
int libucontext_getcontext(libucontext_ucontext_t *);
|
||||||
void libucontext_makecontext(libucontext_ucontext_t *, void (*)(), int, ...);
|
void libucontext_makecontext(libucontext_ucontext_t *, void (*)(), int, ...);
|
||||||
int libucontext_setcontext(const libucontext_ucontext_t *);
|
int libucontext_setcontext(const libucontext_ucontext_t *);
|
||||||
int libucontext_swapcontext(libucontext_ucontext_t *, const libucontext_ucontext_t *);
|
int libucontext_swapcontext(libucontext_ucontext_t *, const libucontext_ucontext_t *);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
libdir=@LIBUCONTEXT_LIBDIR@
|
libdir=@LIBUCONTEXT_SHARED_LIBDIR@
|
||||||
|
static_libdir=@LIBUCONTEXT_STATIC_LIBDIR@
|
||||||
includedir=@LIBUCONTEXT_INCLUDEDIR@
|
includedir=@LIBUCONTEXT_INCLUDEDIR@
|
||||||
|
|
||||||
Name: libucontext
|
Name: libucontext
|
||||||
Version: @LIBUCONTEXT_VERSION@
|
Version: @LIBUCONTEXT_VERSION@
|
||||||
Description: ucontext library implementation (standalone)
|
Description: ucontext library implementation (standalone)
|
||||||
Libs: -L${libdir} -lucontext
|
Libs: -L${libdir} -L${static_libdir} -lucontext
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
project(
|
project(
|
||||||
'libucontext',
|
'libucontext',
|
||||||
'c',
|
'c',
|
||||||
meson_version : '>=0.55.0',
|
meson_version : '>=0.59.0',
|
||||||
default_options: ['c_std=gnu11', 'default_library=both'],
|
default_options: ['c_std=gnu11', 'default_library=both'],
|
||||||
version : run_command('head', files('VERSION')).stdout()
|
version : run_command('head', files('VERSION')).stdout()
|
||||||
)
|
)
|
||||||
|
@ -144,9 +144,8 @@ endif
|
||||||
# Docs
|
# Docs
|
||||||
# ====
|
# ====
|
||||||
|
|
||||||
# TODO: meson.build for docs
|
if not meson.is_subproject() and get_option('docs')
|
||||||
if not meson.is_subproject()
|
subdir('doc')
|
||||||
#subdir('docs')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ==========
|
# ==========
|
||||||
|
|
|
@ -4,3 +4,5 @@ option('export_unprefixed', type : 'boolean', value : true,
|
||||||
description: 'Export POSIX 2004 ucontext names as alises')
|
description: 'Export POSIX 2004 ucontext names as alises')
|
||||||
option('cpu', type : 'string', value : '',
|
option('cpu', type : 'string', value : '',
|
||||||
description: 'Target CPU architecture for cross compile')
|
description: 'Target CPU architecture for cross compile')
|
||||||
|
option('docs', type : 'boolean', value : false,
|
||||||
|
description: 'Build and install man pages')
|
||||||
|
|
Loading…
Reference in New Issue