# $Id: pmkfile 1922 2006-10-26 20:25:32Z coudercd $ # pmkfile for pmk # set target file SETTINGS { LANG="C" TARGET=("compat/config.h.pmk","Makefile.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 { BINDIR = "\\$(PREFIX)/bin" MANDIR = "\\$(PREFIX)/man" MAN1DIR = "\\$(MANDIR)/man1" MAN5DIR = "\\$(MANDIR)/man5" MAN8DIR = "\\$(MANDIR)/man8" PRIVSEP_USER = "nobody" PACKAGE = "pmk" 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 # # XXX TODO : check stuff for C99, C89 and CC CHECK_BINARY(binary_cc) { NAME = "cc" VARIABLE = "CC" } CHECK_BINARY(binary_cpp) { NAME = "cpp" VARIABLE = "CPP" } CHECK_BINARY(binary_as) { NAME = "as" VARIABLE = "AS" } # # type checks # # check _Bool type CHECK_TYPE(type__bool) { REQUIRED = FALSE NAME = "_Bool" } # check blkcnt_t type CHECK_TYPE(type_blkcnt_t) { REQUIRED = FALSE NAME = "blkcnt_t" HEADER = "sys/types.h" } # check long long type CHECK_TYPE(type_long_long) { REQUIRED = FALSE NAME = "long long" } # check unsigned long long type CHECK_TYPE(type_unsigned_long_long) { REQUIRED = FALSE NAME = "unsigned long long" } # check long double type CHECK_TYPE(type_long_double) { REQUIRED = FALSE NAME = "long double" } # check intmax_t type CHECK_TYPE(type_intmax_t) { REQUIRED = FALSE NAME = "intmax_t" HEADER = "stdint.h" } # check ptrdiff_t type CHECK_TYPE(type_ptrdiff_t) { REQUIRED = FALSE NAME = "ptrdiff_t" HEADER = "stddef.h" } # check wchar_t type CHECK_TYPE(type_wchar_t) { REQUIRED = FALSE NAME = "wchar_t" HEADER = "wchar.h" } # check wint_t type CHECK_TYPE(type_wint_t) { REQUIRED = FALSE NAME = "wint_t" HEADER = "wchar.h" } # # header checks # # checking stdbool.h CHECK_HEADER(header_stdbool_h) { REQUIRED = FALSE NAME = "stdbool.h" } # checking libgen.h CHECK_HEADER(header_libgen_h) { REQUIRED = FALSE NAME = "libgen.h" FUNCTION = ("dirname", "basename") } # # procedure checks # # checking strlcpy() and strlcat() in string.h CHECK_HEADER(header_string_h) { REQUIRED = FALSE NAME = "string.h" FUNCTION = ("strlcpy","strlcat") } # checking strdup in string.h CHECK_HEADER(function_strdup) { REQUIRED = FALSE NAME = "string.h" FUNCTION = ("strdup") } # checking vsnprintf and snprintf in stdio.h CHECK_HEADER(header_stdio_h) { REQUIRED = FALSE NAME = "stdio.h" FUNCTION = ("vsnprintf", "snprintf") } # checking isblank in ctype.h CHECK_HEADER(function_isblank) { REQUIRED = FALSE NAME = "ctype.h" FUNCTION = ("isblank") } # checking mkstemps in unistd.h CHECK_HEADER(function_mkstemps) { REQUIRED = FALSE NAME = "unistd.h" FUNCTION = ("mkstemps") } # # library checks # # check dirname and basename in libgen CHECK_LIB(library_gen) { REQUIRED = FALSE NAME = "gen" FUNCTION = ("dirname", "basename") LIBS = "LGEN_FLAGS" }