# $Id: pmkfile 1989 2007-05-23 20:25:50Z coudercd $
# pmkfile for pmk

SETTINGS {
	LANG="C"
	TARGET = ("Makefile.pmk", "compat/config.h.pmk", "tests/Makefile.pmk")
}

SWITCHES {
	sw_usermode = FALSE
}

IF(sw_usermode) {
	DEFINE {
		# override prefix
		PREFIX = "\\$(HOME)"
		CONFDIR = "\\$(PREFIX)/.pmk"
		SBINDIR = "\\$(PREFIX)/bin"
		DATADIR = "\\$(CONFDIR)"
	}
}

IF(!sw_usermode) {
	DEFINE {
		CONFDIR = "\\$(SYSCONFDIR)/pmk"
		SBINDIR = "\\$(PREFIX)/sbin"
		DATADIR = "\\$(PREFIX)/share/\\$(PREMAKE)"
	}
}

DEFINE {
	PACKAGE = "pmk"
	BINDIR = "\\$(PREFIX)/bin"
	MANDIR = "\\$(PREFIX)/man"
	MAN1DIR = "\\$(MANDIR)/man1"
	MAN5DIR = "\\$(MANDIR)/man5"
	MAN8DIR = "\\$(MANDIR)/man8"
	PRIVSEP_USER = "nobody"
	VERSION = "0.9.3"
	INSTALL = "./pmkinstall"
}

# check alternate privsep user
CHECK_VARIABLE(var_privsep) {
	REQUIRED = FALSE
	NAME = "PRIVSEP_USER"
}

# if not defined fall to default user
IF(!var_privsep) {
	DEFINE {
		PRIVSEP_USER = "nobody"
	}
}


#
# binary checks
#

CHECK_BINARY(binary_cpp) {
	NAME = "cpp"
	VARIABLE = "CPP"
}

CHECK_BINARY(binary_as) {
	NAME = "as"
	VARIABLE = "AS"
}


# check _Bool type
CHECK_TYPE(type__bool) {
	REQUIRED = FALSE
	NAME = "_Bool"
}

# check type bool
CHECK_TYPE(c_type_bool) {
	REQUIRED = FALSE
	NAME = "bool"
	HEADER = "stdbool.h"
}

# check type gid_t
CHECK_TYPE(c_type_gid_t) {
	REQUIRED = FALSE
	NAME = "gid_t"
	HEADER = "sys/types.h"
}

# check type blkcnt_t
CHECK_TYPE(c_type_blkcnt_t) {
	REQUIRED = FALSE
	NAME = "blkcnt_t"
	HEADER = "sys/types.h"
}

# check type long long
CHECK_TYPE(c_type_long_long) {
	REQUIRED = FALSE
	NAME = "long long"
}

# check type unsigned long long
CHECK_TYPE(c_type_unsigned_long_long) {
	REQUIRED = FALSE
	NAME = "unsigned long long"
}

# check type long double
CHECK_TYPE(c_type_long_double) {
	REQUIRED = FALSE
	NAME = "long double"
}

# check type intmax_t
CHECK_TYPE(c_type_intmax_t) {
	REQUIRED = FALSE
	NAME = "intmax_t"
	HEADER = "stdint.h"
}

# check type mode_t
CHECK_TYPE(c_type_mode_t) {
	REQUIRED = FALSE
	NAME = "mode_t"
	LANG = "C"
	HEADER = "sys/types.h"
}

# check type ptrdiff_t
CHECK_TYPE(c_type_ptrdiff_t) {
	REQUIRED = FALSE
	NAME = "ptrdiff_t"
	HEADER = "stddef.h"
}

# check type size_t
CHECK_TYPE(c_type_size_t) {
	REQUIRED = FALSE
	NAME = "size_t"
	LANG = "C"
	HEADER = "sys/types.h"
}

# check type uid_t
CHECK_TYPE(c_type_uid_t) {
	REQUIRED = FALSE
	NAME = "uid_t"
	LANG = "C"
	HEADER = "sys/types.h"
}

# check type wchar_t
CHECK_TYPE(c_type_wchar_t) {
	REQUIRED = FALSE
	NAME = "wchar_t"
	HEADER = "wchar.h"
}

# check type wint_t
CHECK_TYPE(type_wint_t) {
	REQUIRED = FALSE
	NAME = "wint_t"
	HEADER = "wchar.h"
}

# check header ctype.h
CHECK_HEADER(c_header_ctype_h) {
	REQUIRED = FALSE
	NAME = "ctype.h"
	LANG = "C"
	FUNCTION = ("isblank")
}

# check header dirent.h
CHECK_HEADER(c_header_dirent_h) {
	REQUIRED = FALSE
	NAME = "dirent.h"
}

# check header libgen.h
CHECK_HEADER(c_header_libgen_h) {
	REQUIRED = FALSE
	NAME = "libgen.h"
	FUNCTION = ("basename", "dirname")
}

# check header stdarg.h
CHECK_HEADER(c_header_stdarg_h) {
	REQUIRED = FALSE
	NAME = "stdarg.h"
}

# check header stdio.h
CHECK_HEADER(c_header_stdio_h) {
	REQUIRED = FALSE
	NAME = "stdio.h"
	FUNCTION = ("snprintf", "vsnprintf")
}

# check header stdlib.h
CHECK_HEADER(c_header_stdlib_h) {
	REQUIRED = FALSE
	NAME = "stdlib.h"
	FUNCTION = ("free", "malloc")
}

# check header string.h
CHECK_HEADER(c_header_string_h) {
	REQUIRED = FALSE
	NAME = "string.h"
	LANG = "C"
	FUNCTION = ("strlcat", "strlcpy", "strdup", "memcpy")
}

# check header sys/param.h
CHECK_HEADER(c_header_sys_param_h) {
	REQUIRED = FALSE
	NAME = "sys/param.h"
	LANG = "C"
}

# check header sys/wait.h
CHECK_HEADER(c_header_sys_wait_h) {
	REQUIRED = FALSE
	NAME = "sys/wait.h"
	LANG = "C"
	SUBHDR = ("sys/type.h")
}

# check header unistd.h
CHECK_HEADER(c_header_unistd_h) {
	REQUIRED = FALSE
	NAME = "unistd.h"
	LANG = "C"
	FUNCTION = ("mkstemps")
}

# check library gen
CHECK_LIB(c_library_gen) {
	REQUIRED = FALSE
	NAME = "gen"
	LANG = "C"
	FUNCTION = ("basename", "dirname")
}

# check library m
CHECK_LIB(c_library_m) {
	REQUIRED = FALSE
	NAME = "m"
	FUNCTION = ("isinf", "isnan")
}

